iphone – 在方向更改期间,在SetContentSize之后UIScrollView自动滚动到顶部 – 我该如何防止这种情况?

iphone – 在方向更改期间,在SetContentSize之后UIScrollView自动滚动到顶部 – 我该如何防止这种情况?,第1张

概述我有一个UIScrollView,其中启用了垂直滚动.我正在显示一个按钮网格(类似于照片查看器图像网格).必须根据屏幕方向以不同方式绘制网格,以便使用所有屏幕空间.考虑到按钮的大小,我可以在纵向上每行3个,在横向上每行4个. 我重新定位了所有的按钮:willRotateToInterfaceOrientation:duration,然后在我的UIScrollView上调用:setContentSi 我有一个UIScrollVIEw,其中启用了垂直滚动.我正在显示一个按钮网格(类似于照片查看器图像网格).必须根据屏幕方向以不同方式绘制网格,以便使用所有屏幕空间.考虑到按钮的大小,我可以在纵向上每行3个,在横向上每行4个.

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

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

所以,要清楚,罪魁祸首似乎是SetContentSize:,但显然我必须调用它以使滚动视图正确滚动.

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

谢谢!

解决方法 您可以尝试实现uiscrollviewdelegate方法scrollVIEwShouldScrollTotop:,它告诉调用者是否滚动到顶部.您可能必须在代理中有一些标志,指示是否正在进行轮换,因为在正常情况下,您实际上可能希望能够点击状态栏并使滚动视图滚动到顶部.

另一方面,如果您不希望滚动视图自动滚动到顶部,只需实现该委托方法并让它返回NO.

总结

以上是内存溢出为你收集整理的iphone – 在方向更改期间,在SetContentSize之后UIScrollView自动滚动到顶部 – 我该如何防止这种情况?全部内容,希望文章能够帮你解决iphone – 在方向更改期间,在SetContentSize之后UIScrollView自动滚动到顶部 – 我该如何防止这种情况?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1081943.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存