gpt4 book ai didi

iphone - UIScrollView 在方向更改期间在 SetContentSize 之后自动滚动到顶部 - 我怎样才能防止这种情况发生?

转载 作者:可可西里 更新时间:2023-11-01 04:54:53 25 4
gpt4 key购买 nike

我有一个 UIScrollView,其中启用了仅垂直滚动。我正在显示按钮网格(类似于照片查看器图像网格)。必须根据屏幕方向绘制不同的网格,以便使用所有屏幕空间。考虑到按钮的大小,我可以在纵向模式下每行 3 个,在横向模式下每行 4 个。

我将所有按钮重新定位在:willRotateToInterfaceOrientation:duration 中,然后在我的 UIScrollView 上调用:setContentSize:。除了在调用 SetContentSize: 之后发生的自动滚动之外,一切似乎都运行良好。换句话说,假设我是纵向的,并向下滚动列表的 3/4,当我旋转到横向时,它会自动滚动到顶部。

有趣的是,在相同的场景中,如果我向上或向下轻弹一下滚动,然后立即旋转设备, ScrollView 会正确重绘,并保留当前滚动位置!

所以,要明确一点,这里的罪魁祸首似乎是 SetContentSize:,但显然我必须调用它才能使 ScrollView 正确滚动。

关于如何保留当前滚动位置的任何想法?

谢谢!

最佳答案

您可以尝试实现 UIScrollViewDelegate 方法 scrollViewShouldScrollToTop:,它告诉调用者是否滚动到顶部。您可能必须在您的委托(delegate)中有一些标志来指示轮换是否正在进行,因为在正常情况下,您实际上可能希望能够点击状态栏并将 ScrollView 滚动到顶部。

另一方面,如果您不希望 ScrollView 自动滚动到顶部,只需实现该委托(delegate)方法并让它返回 NO。

关于iphone - UIScrollView 在方向更改期间在 SetContentSize 之后自动滚动到顶部 - 我怎样才能防止这种情况发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5666743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com