【问题标题】:Change UIScrollView scroll speed更改 UIScrollView 滚动速度
【发布时间】:2011-01-02 07:36:20
【问题描述】:

在我的应用程序中,我有一个扩展 UIScrollView 并在用户滚动时填充其内容的视图。但是,如果用户滚动得太快,则 UIScrollView 中填充的视图不会按时创建,您实际上可以看到 UIScrollView 的背景。发生这种情况的原因是因为我在 layoutSubviews 中执行此延迟加载似乎不会在每次更改 contentOffset 属性时被调用。

如果你慢慢滚动 UIScrollView,你不会遇到我上面描述的问题,并且内容加载速度足够快。

我能想到的解决这个问题的唯一方法是,当用户从屏幕上抬起手指时,UIScrollView 的滚动速度不会超过特定速度。

只是让您知道更改 decelerationRate 属性不是我的解决方案。 DecelerationRate 告诉 UIScrollView 在用户抬起手指后需要多快停止滚动。

【问题讨论】:

  • 为什么不/不能像苹果在地图和 Safari 应用程序中所做的那样,只为卸载的内容显示抽象背景?
  • 我当然可以这样做,但在这个应用程序中看起来一点也不好看。
  • 你找到解决方案了吗?
  • 你有解决方案吗

标签: uiscrollview performance scroll


【解决方案1】:

scroll.pagingEnabled = YES;

【讨论】:

    【解决方案2】:

    我遇到了完全相同的问题。我用两种方法(iOS 8.3,Swift 1.2)解决了它:

    1. 准备

      • 将滚动视图委托添加到您的班级:

        class myCustomClassName:UIViewController,UIScrollViewDelegate
        {
        }
        
      • 让我的班级成为滚动视图的代表:

        self.myScrollView.delegate = self
        
      • 添加了我获取 contentOffset(滚动位置)的委托方法:

        func scrollViewDidScroll(scrollView: UIScrollView)
        {
            //some code...
        }
        
    2. 添加了“内容范围”和布尔检查是否已经添加了数据:

      func scrollViewDidScroll(scrollView: UIScrollView)
      {
          //Total products = TP
          if self.useScrollViewDynamicLoading
          {
              var scrollPosition:CGFloat = scrollView.contentOffset.y
              switch scrollPosition
              {
                  case 200.0...300.0:
                  //TP = 24
                  if self.checkIfProductsInGivenRangeHaveAlreadyBeenAdded(18)
                  {
                      loadProductsForProductRange(12)
                  }
                  case 600.0...700.0:
                  //TP = 36
                  if self.checkIfProductsInGivenRangeHaveAlreadyBeenAdded(24)
                  {
                      loadProductsForProductRange(18)
                  }
              }
              ....
      
    3. viewDidLoad() 中更改了滚动视图的减速率:

      self.myScrollView.decelerationRate = 0.5
      

    【讨论】:

      猜你喜欢
      • 2011-08-14
      • 1970-01-01
      • 2013-02-17
      • 1970-01-01
      • 1970-01-01
      • 2015-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多