【问题标题】:Enable UITableView scrolling during a scroll in UIScrollView在 UIScrollView 滚动期间启用 UITableView 滚动
【发布时间】:2018-01-31 22:26:46
【问题描述】:

我在UIScrollView 中有一个UITableView

表格视图如下所示:

private(set) lazy var tableView: UITableView = {
    let tableView = UITableView(frame: CGRect.zero, style: .plain)
    tableView.separatorStyle = .none
    tableView.showsVerticalScrollIndicator = false
    tableView.rowHeight = 70
    tableView.backgroundColor = .blue
    tableView.bounces = false
    tableView.alwaysBounceVertical = false
    tableView.isScrollEnabled = false
    return tableView
}()

如您所见,我已禁用表格视图中的滚动,因为我希望它与 UIScrollView 内的其余视图一起滚动。不过,我想要实现的是在UIScrollView 达到一定偏移量时启用tableView 的滚动,因此我在scrollViewDidScroll 委托方法中有它:

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    if scrollView.contentOffset.y >= 160 {
        self.view.tableView.isScrollEnabled = true
    }
}

上述方法部分有效。刚刚启用滚动的UITableView 不会滚动,除非我将手指从屏幕上移开并再次开始滚动。

任何想法如何获得所需的行为?

【问题讨论】:

    标签: ios iphone swift uitableview uiscrollview


    【解决方案1】:

    重要提示:您不应在 UIScrollView 对象中嵌入 UIWebView 或 UITableView 对象。如果这样做,可能会导致意外行为,因为两个对象的触摸事件可能会混淆并错误处理。

    【讨论】:

    • 它记录在苹果文档中。所以你需要避免这样做。
    猜你喜欢
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    • 2013-08-01
    • 2020-11-05
    • 2019-11-07
    相关资源
    最近更新 更多