从 UIScrollView 上的特定位置开始

Posted

技术标签:

【中文标题】从 UIScrollView 上的特定位置开始【英文标题】:Start on specific place on UIScrollView 【发布时间】:2016-06-25 18:28:11 【问题描述】:

我想知道是否有办法让 UIScrollview 居中,如果你愿意的话。让我解释一下:我制作了一个 ScrollView 并将其连接到一些视图控制器,以便我可以向后滑动,就像在 snapchat 中一样。我有 3 个视图控制器。我想知道是否有一种方法可以从中心视图控制器(Viewcontroller 2 或“中间”视图控制器)开始,而不是总是从最左边开始。谢谢你的帮助。

【问题讨论】:

您可以将滚动视图的contentOffset 设置为“中间”视图控制器的视图框架的原点。 【参考方案1】:

将滚动视图的 contentOffset.x 值设置为 viewController 宽度的倍数(很可能是屏幕宽度)。

scrollView.contentOffset = CGPointMake(yourViewControllerWidth, 0)

其中 contentOffset.x = 0 一直在左侧,将其设置为视图控制器的宽度会将滚动视图移动到下一个视图控制器的开头。

【讨论】:

使用这种方法确实有效,但是我不得不使用宽度。我将它设置为宽度(600)并在最后一个视图控制器上打开,然后我将它切成两半(300)以在它之前的视图控制器上开始,但它落在第 2 和第 3 之间。基本上有效的数字是 206.5,但我认为这不是打开它的安全方法,但从技术上讲它确实可以完成工作。

以上是关于从 UIScrollView 上的特定位置开始的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 将元素从它们的设置位置移动

如何在页面上的特定滚动位置启动功能?

UIStackView 在 UIScrollView 位置

UI整理-----part4--UIScrollView

触摸开始后 UIScrollview 位置移动

UI Scroll View 内的视图上的触摸事件