gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 01:14:29 24 4
gpt4 key购买 nike

这是我的情况:我有 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com