【发布时间】:2022-12-10 01:54:49
【问题描述】:
我认为此视图中有 tableView。这个视图在 UIViewController 的底部,还有另一个视图在它的顶部。但是我将 tableView View 的顶部锚点设置到屏幕的顶部,我可以在需要时更改它 - 请参见屏幕截图
我想当 tableView 滚动时,顶部锚点减少。
为此,我在包含TableView 的UIView 中做到了这一点
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let offset = scrollView.contentOffset.y
scrollView.bounces = false
eventHandler?(.scrollViewDidScroll(offset: offset))
}
有了这个eventHandler,我将偏移量发送给父级UIViewController
然后使用这个函数来减少topAnchor
private func handleOffsetScrolling(offset: CGFloat) {
let constant = taskViewHeight - offset
if constant > 0 {
todosTableTopAnchor.constant = taskViewHeight - offset
view.layoutIfNeeded()
}
}
taskViewHeight是顶部第二个视图的高度。它按预期运行良好,但在减少 topAnchor 期间,tableView 也在滚动,我想防止这种情况发生。我的意思是 tableView 不应该滚动,直到视图到达顶部然后滚动。
当再次滚动到 tableView 的顶部时,它应该增加顶部锚点并将 tableView 视图移动到其原始位置。
我只想防止 tableView 在增加和减少顶部锚点期间滚动。
有什么办法吗? 谢谢
【问题讨论】:
-
你想要高度对绿色的看法要改变——要“挤”吗?或者你想让它向上滑出视线吗?
-
向上滑动视图,绿色的会在蓝色的下面
-
你在故事板中布置这个吗?还是通过代码?
标签: ios swift uitableview