问题描述
我有一个奇怪的设计方案,其中我使用了两个 UITableviews -一个在顶部,另一个在底部,顶部在的内部,另一个在内部。
最初,同时启用了Tableview的 scroll 。
仅,如果顶部 Tableview 向后移动向上,那么我将禁用顶部Tableview的滚动,以便使底部的View滚动。>
tableView1.isScrollEnabled = false
它可以工作,但单次触摸时,不能。我必须先删除第一触摸,然后才在第二触摸中删除底部的Tableview滚动。
谢谢!
解决方法
您可以将两个UITableView都放入一个UIScrollView中,并将以下类分配给这两个UITableView。
您不需要使用isScrollEnabled属性。
请记住也将tableView的固有大小赋予
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)
}}