gpt4 book ai didi

ios - 可以向上滚动具有几行的 Swift TableView

转载 作者:行者123 更新时间:2023-11-28 06:32:37 25 4
gpt4 key购买 nike

我有这个 TableView ,在某些情况下它只包含几行,甚至只有一行。它的问题在于,即使我有一行,它也允许我向下滚动并且该行隐藏在顶部。

它几乎从屏幕上消失了,就好像它下面有东西要显示一样。我无法禁用滚动,因为我已经下拉刷新。

如果我缺少某个设置,有什么想法吗?或者如果我没有足够的行来覆盖整个屏幕,我怎么不允许向下滚动?

最佳答案

实际上,您的情况有点棘手,因为:

我首先想到的解决方案是 myTableView.alwaysBounceVertical = false

这将为您完成这项工作,但您的问题是您有一个 UIRefreshControl() 并将 alwaysBounceVertical 设置为 false将禁用滚动到顶部以显示 refreshController。

所以,应该手动完成,如下:

1-UIScrollViewDelegate 实现 scrollViewDidScroll 方法。

2-检查其中的滚动方向。

3- 如果滚动方向向下,检查 tableView 的内容大小是否大于其高度,即检查 tableView 包含的单元格是否大于其高度。

4-如果第 3 步的输出为假,则禁用滚动,否则,启用滚动。

5- 添加 dispatch_after 以重新启用 tableView 滚动。

它是这样的(注意:Swift 2 代码。):

private var lastContentOffset: CGFloat = 0
// 1
func scrollViewDidScroll(scrollView: UIScrollView) {
// 2
if (self.lastContentOffset > scrollView.contentOffset.y) {
print("scrolling up")
}
else if (self.lastContentOffset < scrollView.contentOffset.y) {
print("scrolling down")

// 3 and 4
myTableView.scrollEnabled = myTableView.contentSize.height > myTableView.frame.size.height ? true : false

// 5

// delaying is half a second
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(NSEC_PER_MSEC) * 500), dispatch_get_main_queue(), { () -> Void in
self.myTableView.scrollEnabled = true
})
}
}

希望这是适合您的情况的解决方案。

关于ios - 可以向上滚动具有几行的 Swift TableView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39918515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com