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

标签 ios iphone objective-c xcode uiscrollview

我在 UIScrollView 中有 5 个 View ( View 1、 View 2、 View 3、 View 4、 View 5),可通过手指滑动捕捉到这些 View 。

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

任务:我需要用手指控制所有 View 的滚动

  • 如果我点击 View
  • 如果我停止滚动
  • 如果滚动自己停止 我需要以当前 View 为中心,就像 pagingEnable 是 YES 一样。

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

PagingEnabled for multiple pages in UIScrollView

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

最佳答案

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

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
  *targetContentOffset = // calculate the required offset to have the scrollview centered
}

关于ios - 如何通过手指获取 UIScrollView 分页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20808676/

相关文章:

iphone - 使用 UITableView 和 paging.enabled=YES(或其他方式?)设置页面大小

ios - 使用具有约束持续时间的动画快速移动按钮并在此期间检测触摸

iphone - 难住了,从类里面检索一个字符串

iphone - 防止 View Controller 被重置 - UINavcontroller + Storyboard + Segue's

objective-c - 在扩展中实现未处理的协议(protocol)方法

ios - 在WatchKit中解析查询

ios - 从 TableView 转到导航 Controller 前面的 View

iphone - 如何测试生产推送通知?

ios - UINavigationBar 约束问题中的奇怪 UITextField 仅在 iOS 10 或更高版本上

ios - iPhone 6 plus 尺寸显示为 375.0 x 667.0?