在UIScrollView中滚动期间启用UITableView滚动

时间:2017-08-23 11:01:39

标签: ios iphone swift uitableview uiscrollview

我在UITableView

中有一个UIScrollView

表格视图如下:

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不会滚动,除非我将手指从屏幕上抬起并再次开始滚动。

任何想法如何才能获得理想的行为?

1 个答案:

答案 0 :(得分:0)

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