我在 iPhone 应用中使用 Splitview Controller ,仅使用 Potrait模式。
我在MasterView.swift中尝试
override func scrollViewDidScroll(scrollView: UIScrollView) {
let currentOffset = scrollView.contentOffset.y
let maximumOffset = (scrollView.contentSize.height - scrollView.frame.size.height)
if (currentOffset >= maximumOffset) {
print("call API")
}
}
问题
我的错误Tableview y内容偏移为 -64 。 即使它有导航BAR
<UITableView: 0x7f8beb046400; frame = (0 0; 375 667); clipsToBounds = YES;
autoresize = W+H; gestureRecognizers = <NSArray: 0x7f8bea56dd20>;
layer = <CALayer: 0x7f8bea565730>;
contentOffset: {0, -64};
contentSize: {600, 0}>
谢谢
帮我解决这个问题
答案 0 :(得分:2)
我得错了Tableview y内容偏移量为-64。甚至很难有导航BAR
默认情况下Const xlTextWindows = 20
属性为automaticallyAdjustsScrollViewInsets
,因此滚动视图中的内容(请记住YES
是UITableView
的子类)是偏移的,因此顶部内容显示在导航栏和状态栏下方,但可以在这些栏下方向上滚动。导航栏和状态栏的正常高度为64。
如果您没有获得所需的外观,则可能需要将UIScrollView
设置为automaticallyAdjustsScrollViewInsets
,但我通常会发现这是错误的答案。看起来您只是使用偏移量来确定何时在其他框架中调用某个方法,因此最佳答案可能是在计算是否进行调用时将偏移量考虑在内。
答案 1 :(得分:0)
我在swift中使用下面的代码来确定我的表视图何时到达底部,我希望你发现它很有用;
func scrollViewDidScroll(scrollView: UIScrollView) {
if tableView.contentSize.height >= tableView.frame.size.height {
if(tableView.contentOffset.y >=
(tableView.contentSize.height - tableView.frame.size.height)) {
//user has scrolled to the bottom
}
else {
//table view is not in bottom
}
}
}
答案 2 :(得分:-2)