【问题标题】:reduce bouncing UITableView减少弹跳 UITableView
【发布时间】:2011-04-05 07:52:33
【问题描述】:

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

谢谢

【问题讨论】:

    标签: iphone cocoa-touch ios uitableview


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      必须通过UIScrollView 属性bounces 完全禁用它。这几乎是一个开或关的事情。

      【讨论】:

        【解决方案3】:

        我怀疑。滚动视图的弹性是一个实现细节,UIScrollView 类似乎没有公开让您调整它的属性。

        【讨论】:

          【解决方案4】:

          除了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) 至少应为设备屏幕高度减去弹跳限制。

          【讨论】:

            【解决方案5】:

            你不能改变滚动视图的弹跳属性,你可以禁用或启用

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-02-18
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多