如何使用按钮在 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 移动?

如何在 ScrollView 内的 LinearLayout 底部放置按钮

Kivy - 如何在 ModalView 内向 ScrollView 添加多个按钮?

如何在 iPhone SDK 中单击按钮时水平滚动 ScrollView

以编程方式在 ScrollView 中的 UIButton

如何禁用 ScrollView 项目上的多个按钮颜色选择?