A UIScrollView
,UITableView
的超類,可以是一個悲慘的生物。有太多的行爲被編入其中,有時看起來在紙上似乎是一個簡單的命題可能很難。除此之外,這個是一個表視圖,它變得更糟。
如果你有決心使用UITableView
的tableFooterView
屬性來做到這一點,我已經使用了有限的(非常)成功:
這些UIScrollViewDelegate
方法,您的視圖控制器可能已經表視圖的委託。
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
UIView *tableViewFooter = _tableView.tableFooterView;
CGFloat maxContentOffsetY = tableViewFooter.frame.origin.y - scrollView.frame.size.height;
if (scrollView.contentOffset.y > maxContentOffsetY){
//if (targetPoint.y > maxContentOffsetY){
[scrollView setContentOffset:CGPointMake(0, maxContentOffsetY) animated:YES];
}
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ // called when scroll view grinds to a halt
// Check offset and correct if we landed below the correct offset
UIView *tableViewFooter = _tableView.tableFooterView;
CGFloat maxContentOffsetY = tableViewFooter.frame.origin.y - scrollView.frame.size.height;
if (scrollView.contentOffset.y > maxContentOffsetY){
[scrollView setContentOffset:CGPointMake(0, maxContentOffsetY) animated:YES];
}
}
我會建議簡單地向您的視圖控制器的視圖屬性添加一個漸變。這樣,當表格滾動出屏幕時,你會看到它後面的漸變。然後你將獲得大部分你想要的免費行爲。