【发布时间】:2012-09-27 16:41:32
【问题描述】:
我想将UIScrollView 限制为一次只能滚动一页。
换句话说,即使用户快速滑动,我也希望将UIScrollView 限制为仅滚动一页。
有什么好办法吗?
【问题讨论】:
标签: objective-c ios uiscrollview uikit uiscrollviewdelegate
我想将UIScrollView 限制为一次只能滚动一页。
换句话说,即使用户快速滑动,我也希望将UIScrollView 限制为仅滚动一页。
有什么好办法吗?
【问题讨论】:
标签: objective-c ios uiscrollview uikit uiscrollviewdelegate
UIScrollView *myScrollView;
...
myScrollView.pagingEnabled = YES;
当设置为 YES 时,滚动视图在滚动视图的倍数处停止。
【讨论】:
如果您尚未确定滚动视图,实现此目的的一种方法是使用UIPageViewController。我正在查看我的应用程序中的一个,此功能似乎是免费提供的。
使用 UIScrollView,我想您可能想要响应 UIScrollViewDelegate 方法 - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
我在想您可以将当前的“页面”保存在一个属性中,然后在scrollViewWillEndDragging:withVelocity:targetContentOffset: 方法中您可以将目标内容偏移量修改为仅是下一页/上一页。
有一个 2012 WWDC 视频,Enhancing User Experience with Scroll Views,如果您想看到它的实际效果,它使用了这种方法。
【讨论】:
UIPageViewController,但你引用的那个方法肯定有用。
pagingEnabled设置为NO,然后使用上述方法自己创建效果。