我有一个 UIScrollView,其中启用了仅垂直滚动。我正在显示一个按钮网格(类似于照片查看器图像网格)。必须根据屏幕方向以不同方式绘制网格,以便使用所有屏幕空间。考虑到我的按钮大小,纵向每行可以容纳 3 个,横向每行可以容纳 4 个。
我将所有按钮重新定位在:willRotateToInterfaceOrientation:duration 中,然后在我的 UIScrollView 上调用:setContentSize:。除了调用 SetContentSize: 之后发生的自动滚动之外,一切似乎都运行良好。换句话说,假设我是纵向的,并且向下滚动了列表的 3/4,当我旋转到横向时,它会自动将所有内容滚动到顶部。
有趣的是,在同样的场景中,如果我向上或向下做一个小的滑动滚动,然后立即旋转设备,滚动视图会正确重绘,并保留当前的滚动位置!
因此,需要明确的是,这里的罪魁祸首似乎是 SetContentSize:,但显然我必须调用它才能使滚动视图正确滚动。
关于如何保留当前滚动位置的任何想法?
谢谢!