减少弹跳UITableView

时间:2011-04-05 07:52:34

标签: iphone cocoa-touch ios uitableview

是否有可能以某种方式降低UITableView顶部或末尾的弹跳高度

谢谢

5 个答案:

答案 0 :(得分:2)

您可以在contentOffset方法中检查并设置scrollViewDidScroll属性:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{    
    if (scrollView.contentOffset.y <= -100)
    {
        CGPoint offset = scrollView.contentOffset;
        offset.y = -100;
        scrollView.contentOffset = offset;
    }    
}

答案 1 :(得分:1)

我对此表示怀疑。滚动视图的弹性是一个实现细节,UIScrollView类似乎没有显示允许您调整它的属性。

答案 2 :(得分:1)

通过UIScrollView属性bounces完全禁用它。这几乎是一件好事。

答案 3 :(得分:1)

作为René Fischer的补充,请遵循完整的代码,以减少顶部和底部的反弹。

Swift版本:

override func scrollViewDidScroll(scrollView: UIScrollView) {

    var offset = scrollView.contentOffset;

    if (offset.y < bounceLimit) {
        offset.y = bounceLimit;
        scrollView.contentOffset = offset;
    }

    let offsetY = scrollView.contentSize.height - scrollView.bounds.height - offset.y
    if (offsetY < bounceLimit) {
        offset.y = scrollView.contentOffset.y - (bounceLimit + abs(offsetY));
        scrollView.contentOffset = offset;
    }
}

Obj-C版本:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGPoint offset = scrollView.contentOffset;

    if (offset.y <= -100)
    {
        offset.y = -100;
        scrollView.contentOffset = offset;
    }

    CGFloat offsetY = scrollView.contentSize.height - scrollView.bounds.height - offset.y

    if (offsetY < bounceLimit) {
        offset.y = offset.y - (bounceLimit + abs(offsetY));
        scrollView.contentOffset = offset;
    }
}

注意:表格的高度(contentSize.height)应至少为设备屏幕高度减去反弹限制。

答案 4 :(得分:-1)

您不能禁用或启用滚动视图的反弹属性