【问题标题】:Scrolling with two UITableView in a single touch一键滚动两个 UITableView
【发布时间】:2020-12-06 10:41:34
【问题描述】:

我有一个奇怪的设计场景,我使用了两个 UITableviews - 一个在顶部,另一个在底部,顶部的一个在另一个单元格内。

最初,Tableview 的 scroll 均已启用。

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

tableView1.isScrollEnabled = false

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

有什么方法可以让我一键滚动到底部的tableview?

提前致谢!

【问题讨论】:

  • 为什么你不能使用两个部分的单一表格视图??
  • 可能会推荐使用 UIGesturerRecognizer。确定 tableView 的内容偏移会有点复杂,但 UIGestureRecognizer 具有定期调用的函数并输出拖动的瞬时距离,您可以将其与原始 tableView 偏移匹配,然后知道何时禁用较小的 tableView 上的滚动。

标签: ios swift uitableview uiscrollview uikit


【解决方案1】:

您可以在 UIScrollView 中同时获取 UITableView,并将以下类分配给这两个 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)
}}

【讨论】:

  • 其实第二个tableview在第一个tableview的单元格内。
  • 不过,你可以用这个
  • 好的。让我试试。我会让你知道。如果在这方面需要任何帮助,请回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-22
  • 2011-05-22
  • 1970-01-01
相关资源
最近更新 更多