通常在UITableView中,最后UITableViewCell不允许向上滚动,我想允许最后一个UITableViewCell直到它到达第一行。
我知道的一种方法是向UITableView添加空页脚,但我无法弄清楚需要多少空间才能允许最后一行滚动页脚。
编辑:向UITableView添加空的footerview确实对我有用
答案 0 :(得分:3)
我不确定这个,但我认为它可能有助于依赖于contentInset以及最后一个单元格高度是否已知
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
CGRect temrect=CGRectMake(0, scrollView.contentSize.height-3, scrollView.frame.size.width, 3);
// here i am expecting the height of the last row is atleast 3 and
for (UIView *temv in scrollView.subviews)
{
if (CGRectIntersectsRect(temrect, temv.frame)) // check ing for intersection
{
CGFloat bottomInset = scrollView.frame.size.height - temv.frame.size.height;
scrollView.contentInset = UIEdgeInsetsMake(0, 0 , bottomInset, 0);
break;
}
}
}
注意:如果表视图框架高度大于表视图contentsize,则不适用。仅当temrect参数与单元格相交时才适用
希望有所帮助
答案 1 :(得分:0)
设置contentInsets
CGFloat bottomInset = tableView.frame.size.height - heightOfLastCell;
tableView.contentInsets = UIEdgeInsetsMake(0, 0 , bottomInset, 0);
答案 2 :(得分:0)
一个简单的:
创建一个UITableView
关闭设置的变量并在您想要向外滚动时重置。
一个简单的例子将向您展示
@property (nonatomic) CGPoint tblOffSet;
- (void) keyboardOpen:(UIView *)view {
self.tblOffSet = self.tblView.contentOffset;
}
- (void) keyboardClose {
[UIView animateWithDuration:0.3f animations:^{
[self.tblView setContentOffset:self.tblOffSet];
}];
}