如何使用按钮在 ScrollView Controller 中强制“滚动”?
Posted
技术标签:
【中文标题】如何使用按钮在 ScrollView Controller 中强制“滚动”?【英文标题】:How can I force a "scroll" in UIScrollViewController by using a button? 【发布时间】:2019-09-03 15:17:04 【问题描述】:我的 UI 包含 3 个视图控制器的滚动视图,类似于 snapchat 布局。但是,我的一个视图是地图,我希望用户能够滚动并与地图完全交互。 所以我需要一个按钮来强制“滚动”发生,以便在单击时将屏幕返回到另一个视图控制器。
我尝试过只展示该视图控制器并更改内容偏移量。
@objc func goBack()
let mainVC = scrollView.mainVC
self.present(mainVC, animated: false, completion: nil)
scrollView.contentSize = CGSize(width: self.view.frame.width * 3,
height: self.view.frame.size.height)
scrollView.contentOffset.x = view.frame.width
我在 ViewController 中使用 goBack() 作为函数来使 scrollView 强制滚动。
【问题讨论】:
【参考方案1】:您需要使用scrollRectToVisable
并提供框架,可以这样做,width * 3
可以根据滚动视图中的屏幕位置进行更改:
let frame = scrollView.frame
frame.origin.x = frame.size.width * 3
frame.origin.y = 0
scrollView.scrollRectToVisible(frame, animated: true)
但这应该可以完成工作。
【讨论】:
以上是关于如何使用按钮在 ScrollView Controller 中强制“滚动”?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ScrollView 内的 LinearLayout 底部放置按钮
Kivy - 如何在 ModalView 内向 ScrollView 添加多个按钮?