【发布时间】:2019-11-15 06:31:05
【问题描述】:
我已经检查了为什么我的 UITableView 一整天都表现得如此奇怪的所有可能性。最后,现在我注意到了一些奇怪的事情。我需要一些帮助来确定我注意到的是否属实,或者问题可能出在其他地方。
所以在 tableView(_:didSelectRowAt:) 中,我想在调整所有单元格的高度后滚动到特定的单元格。 (我正在增加所有单元格的高度。)
这是我的 scrollViewDidScroll(_) 方法主体的一个相关的小部分,它负责决定屏幕部分的哪一部分被点击(我需要这个来让其他东西工作):
public func scrollViewDidScroll(_ scrollView: UIScrollView) {
let touchLocation = scrollView.panGestureRecognizer.location(in: containerView)
let touchX = touchLocation.x
print("X: \(touchX)")
.
.
.
}
现在在我的 didSelectRowAt 中,当我调用 scrollToRow 时:
tableView.scrollToRow(at: indexPath, at: .top, animated: false)
我得到这个作为输出:
X:132.0 (旧触摸 x)
X:130.66665649414062 (滚动停止时的旧触摸 x)
X:188.66665649414062 (新触摸 x 的点击)
X:188.66665649414062 (不知道为什么再次打印)
但是现在当我执行 scrollToRow 时:
tableView.scrollToRow(at: indexPath, at: .top, animated: true)
X:160.3333282470703
X:160.3333282470703 (新的触摸 x 的点击)
X:177.66665649414062
X:177.66665649414062
X:177.66665649414062
X:177.66665649414062
X:177.66665649414062
X:177.66665649414062
X:177.66665649414062
X:177.66665649414062
X:177.66665649414062
X:177.66665649414062
.
.
.
174 次 .
.
.
X:177.66665649414062
这很奇怪。有人可以解释为什么会发生这种情况吗?
【问题讨论】:
标签: ios swift uitableview uitableviewautomaticdimension