轻按时UIScrollView contentOffset重置

时间:2018-12-30 23:38:30

标签: swift uiscrollview

我有一个UIScrollView,可在每次点击视图时重置其contentOffset

这在这里得到证明:https://gyazo.com/c8fb5c0fa5b6d53acf45c809dcb5b251

我尝试过的事情

  1. 禁用键盘关闭
  2. 检查isDragging上的scrollViewDidScroll并重置内容偏移量(如果为假)。这导致跳动行为。
  3. 阅读this question并没有帮助。

您可以在这里自己进行测试:https://github.com/willbishop/scrollviewwizardry

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果这不是您想要的结果,则可以关闭分页:

scrollView.isPagingEnabled = false

如果您想使用分页

分页用于在ScrollView中的多个视图之间捕捉,通常每个子视图都是ScrollView边界的大小。由于您已启用了具有垂直滚动功能的分页,并且ScrollView的内容高度小于两个“页面”高度,因此发生了来自分页的意外结果。

根据您的情况,如果将ScrollView中的每个视图设置为等于ScrollView的高度,并且ScrollView contentSize高度等于其子视图的组合高度,则分页可以正常工作,并且在点击时不会重置内容偏移:< / p>

scrollView.frame.size.height = view.frame.height
subView1.frame.size.height = view.frame.height
subView2.frame.size.height = view.frame.height
scrollView.contentSize.height = subView1.frame.height + subView2.frame.height

当ScrollView停止滚动时,它将在显示两个视图之间切换。您还可以使用“ peekAmount”,其中第二个视图显示在底部,同时仍滚动到顶部的“页面”,只要您的ScrollView contentSize的高度等于ScrollView边界高度的两倍(即两页)。 / p>