如何通过手指获取 UIScrollView 分页?

Posted

技术标签:

【中文标题】如何通过手指获取 UIScrollView 分页?【英文标题】:How can I get UIScrollView paging by finger? 【发布时间】:2013-12-27 22:30:02 【问题描述】:

我在 UIScrollView 中有 5 个视图(视图 1、视图 2、视图 3、视图 4、视图 5),它们通过手指滑动捕捉到。

问题:如果我设置 pagingEnable = YES,我不能滚动超过 1 个视图。当我设置 pagingEnable = NO 时,滚动没有使当前视图居中。

任务:我需要用手指控制滚动浏览所有视图,并且

如果我点击视图 如果我停止滚动 如果滚动自行停止 我需要当前视图居中,就像 pagingEnable 是 YES 一样。

我找到了这个答案,但它并没有真正帮助。

PagingEnabled for multiple pages in UIScrollView

How can I let UIScrollView (pagingEnabled) to move 1.2 page each time?

【问题讨论】:

【参考方案1】:

您应该考虑实现委托回调:

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset

  *targetContentOffset = // calculate the required offset to have the scrollview centered

【讨论】:

以上是关于如何通过手指获取 UIScrollView 分页?的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 在分页时确定 scrollViewDidEndDragging 上的滚动方向

用两个手指使用 UIScrollView 的自定义容器

如何加快 UIScrollView 中的滚动速度? [关闭]

如何通过在 ViewPager 中用手指滑动来禁用分页但仍然能够以编程方式滑动?

如何在 UIScrollView 或等效中实现 touchesEnded

如何在uiscrollview中双击缩放和两个手指缩放uiimage