Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 仅为一个方向启用反弹UITableView_Ios_Objective C_Uitableview - Fatal编程技术网

Ios 仅为一个方向启用反弹UITableView

Ios 仅为一个方向启用反弹UITableView,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我如何允许UITableView在到达底部而不是顶部时反弹。基本上,我添加了一个UIImageView作为我的TableView的部分标题,但是当前如果我在顶部拉,在我的UIImageView和我的UINavigationBar之间有一个丑陋的空间 我看了这个,但我真的不明白解决办法。有人介意详细说明一下吗 您链接到的问题有两种不同的解决方案。作为表视图的代理,您已经是滚动视图代理,因此您可以实现如下内容(这是在其他问题中未标记为正确的答案…): contentOffset是帧原点(0,0)与第

我如何允许
UITableView
在到达底部而不是顶部时反弹。基本上,我添加了一个
UIImageView
作为我的
TableView的
部分标题,但是当前如果我在顶部拉,在我的
UIImageView
和我的
UINavigationBar
之间有一个丑陋的空间


我看了这个,但我真的不明白解决办法。有人介意详细说明一下吗

您链接到的问题有两种不同的解决方案。作为表视图的代理,您已经是滚动视图代理,因此您可以实现如下内容(这是在其他问题中未标记为正确的答案…):


contentOffset是帧原点(0,0)与第一个单元格原点之间的距离

最初,contentOffset为零。如果已滚动到列表顶部(向下拖动手指),则contentOffset将为负数。如果已向下滚动列表(第一个单元格位于帧上方),则contentOffset将为正值

#pragma mark - UIScrollViewDelegate 
-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGFloat maxOffset = (scrollView.contentSize.height - scrollView.frame.size.height);
    CGFloat originOffset = 0;
    // Don't scroll below the last cell.
    if (scrollView.contentOffset.y >= maxOffset) {
        scrollView.contentOffset = CGPointMake(scrollView.contentOffset.x, maxOffset);

    // Don't scroll above the first cell.
    } else if (scrollView.contentOffset.y <= originOffset) {
        scrollView.contentOffset = CGPointZero;
    }
}
#pragma标记-UIScrollViewDelegate
-(无效)scrollViewDidScroll:(UIScrollView*)scrollView{
CGFloat maxOffset=(scrollView.contentSize.height-scrollView.frame.size.height);
CGFloat originOffset=0;
//不要滚动到最后一个单元格下方。
如果(scrollView.contentOffset.y>=maxOffset){
scrollView.contentOffset=CGPointMake(scrollView.contentOffset.x,maxOffset);
//不要在第一个单元格上方滚动。

}else if(scrollView.contentOffset.y-huh,我得到以下错误:二进制表达式('CGPoint'(也称为'struct CGPoint')和'int')的操作数无效。你知道这意味着什么吗?是的,这意味着我遗漏了2个字符。你不能将
CGPoint
int
进行比较……啊,我明白了=)此解决方案几乎可以完美地工作。如果我非常快速地向上加速,它会在背景下闪烁一点。有没有办法防止这种情况发生?10是一个任意值,您可以根据滚动视图的内容大小将其变大。您也可以使用不同的委托方法进行检查(如
ScrollViewDiEndDraging:WillDecreate:
)。对于向下投票,我们深表歉意,但这种解决方案更好,因为在这个实现中,在更改bounce属性之前,视图仍然会在顶部稍微滚动。基本上,不需要操纵bounce属性
#pragma mark - UIScrollViewDelegate 
-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGFloat maxOffset = (scrollView.contentSize.height - scrollView.frame.size.height);
    CGFloat originOffset = 0;
    // Don't scroll below the last cell.
    if (scrollView.contentOffset.y >= maxOffset) {
        scrollView.contentOffset = CGPointMake(scrollView.contentOffset.x, maxOffset);

    // Don't scroll above the first cell.
    } else if (scrollView.contentOffset.y <= originOffset) {
        scrollView.contentOffset = CGPointZero;
    }
}