一次触摸两个UITableView即可滚动

问题描述

我有一个奇怪的设计方案,其中我使用了两个 UITableviews -一个在顶部,另一个底部,顶部在的内部,另一个在内部。

最初,同时启用了Tableview的 scroll

,如果顶部 Tableview 向后移动向上,那么我将禁用顶部Tableview的滚动,以便使底部的View滚动。>

tableView1.isScrollEnabled = false

它可以工作,但单次触摸时,不能。我必须先删除第一触摸,然后才在第二触摸中删除底部的Tableview滚动。

有什么方法可以使我一次触摸即可滚动到底部的表格视图吗?

谢谢!

解决方法

您可以将两个UITableView都放入一个UIScrollView中,并将以下类分配给这两个UITableView。

您不需要使用isScrollEnabled属性。

请记住也将tableView的固有大小赋予

Choose Intrinsic Size

class DynamicTableView: UITableView {

override var contentSize:CGSize {
    didSet {
        if contentSize == CGSize(width: UIScreen.main.bounds.size.width,height: 0.0) {
            self.separatorStyle = .none
            contentSize = CGSize(width: UIScreen.main.bounds.size.width,height: 50.0)
        } else {
            self.invalidateIntrinsicContentSize()
        }
    }
}

override var intrinsicContentSize: CGSize {
    self.layoutIfNeeded()
    return CGSize(width: UIView.noIntrinsicMetric,height: contentSize.height)
}}