【发布时间】:2012-05-10 18:09:19
【问题描述】:
我正在创建一个包含 8 页的 UIscroll 视图。每个页面都是另一个视图控制器类,具有添加到此滚动视图的一些功能。
在加载应用程序时,当我将屏幕从一页滚动到另一页时,应用程序运行良好。 但是当我将 ipad 旋转到不同的界面方向时,会调用 UIScrollView 委托方法 - ScrollViewDidScroll,并且当前屏幕(页面)会滚动到上一个屏幕。调试让我认为滚动功能是与设备旋转同时调用的。
如何停止/防止在旋转时调用“ScrollViewDidScroll”委托方法,以便仅执行旋转功能(即不应将屏幕移至上一个)?
我尝试了提供的不同解决方案,但几乎没有帮助
我是 xcode 开发的新手。
【问题讨论】:
-
@JacquesCousteau 谢谢,我会注意的。
-
@zombie007 你有什么解决办法吗?我面临同样的问题..
-
@neeraj 经过大量探索以找到(体面的)解决方案后,我想出了一个解决方法——我创建了一个全局变量来维护页码。当滚动方法完成执行(旋转后)时,我设置了滚动视图偏移量 w.r.t 所需页面的偏移量。这个页码是从我的全局变量中获得的。
-
@zombie007 其实我找到了更好的解决方案。在
setContentOffset:方法中,iOS其实是在改变scrollView的bounds属性的来源。所以我刚刚为 UIScrollView 添加了一个类别,其中一个名为customSetContentOffset:的方法会将scrollView.bounds的原点设置为所需的内容偏移量。这不会进行任何回调,当然还会更改内容偏移量。 -
@neeraj 您的解决方案听起来不错,虽然我自己没有尝试过。这是您解决问题的方法吗 P.S:请原谅我迟到的回复,因为我不是该网站的常客。
标签: ios ipad cocoa-touch uiscrollview