ios - 如何防止同时滚动多个 UIScrollView 对象?

标签 ios objective-c swift uiscrollview

这是我的情况: 我有 2 个 UIScrollView 对象。它们都启用了水平滚动。它们的帧不重叠。两个对象都是同一 View 的 subview :

 ..................................................
 |                                                |
 |                      UIView                    |
 |                                                |
 |                                                |
 |    ........................................    |
 |    |                                      |    |
 |    |             UIScrollView 1           |    |
 |    |                                      |    |
 |    |......................................|    |
 |                                                |
 |    ........................................    |
 |    |                                      |    |
 |    |             UIScrollView 2           |    |
 |    |                                      |    |
 |    |......................................|    |
 |                                                |
 |................................................|

问题是它们都可以同时滚动。
如果已经开始在第二个对象中滚动,如何防止第一个 UIScrollView 对象滚动?

最佳答案

func scrollViewDidScroll(scrollView: UIScrollView) {
    [tableView1, tableView2].forEach { if scrollView != $0 { $0.scrollEnabled = false } }
}

func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
    [tableView1, tableView2].forEach { $0.scrollEnabled = true }
}

func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) {
    [tableView1, tableView2].forEach { $0.scrollEnabled = true }
}

您可能需要对其进行微调,因为仍有一些问题需要考虑。


本来我想用:

tableView2.scrollEnabled = scrollView == tableView1

但有时它仍然会滚动(也许在实际设备上不会),所以我使用第二种方法来检查滚动何时结束。

关于ios - 如何防止同时滚动多个 UIScrollView 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35389686/

相关文章:

ios - 解析 - callFunctionInBackground 在 [__NSTaggedDate UTF8String] 上使应用程序崩溃 - 但当我提交应用程序时却没有崩溃

ios - Mailcore 2 错误 "The certificate for this server is invalid."iOS

iOS:复制属性

ios - 为 Xamarin iOS 创建 Aviary SDK 绑定(bind)

objective-c - 如何从 UITableViewCell 推送 View

ios - SwiftUI 中的后缘和前缘是什么意思?

iphone - tableView:commitEditingStyle:forRowAtIndexPath:导致断言失败

objective-c - 表格 View 单元格选择在转换前缓慢消失

ios - 删除 objective-c 中的特殊字符

ios - 从按钮删除 TableView 中的一行