【问题标题】:Detect UIScrollview scrolling past bottom检测 UIScrollview 滚动到底部
【发布时间】:2012-09-25 19:41:56
【问题描述】:

我正在尝试创建类似于 Reeder 的功能,如果您在滚动视图中滚动到内容的下方或上方,您就会被引入新内容。

我以为我正在使用 scrollViewWillEndDragging:withVelocity:targetContentOffset:

但是,这只是停留在底部。

有什么方法可以检测你是滚动到底部还是顶部(这是垂直滚动条开始变小的时候)

谢谢!

【问题讨论】:

  • 为什么不检查 scrollviewDidScroll 中的 contentOffset 并且当内容偏移量超出您的底部/顶部时,向滚动视图添加新内容,并增加内容大小
  • 这就是诀窍。我通过获取 contentOffset 的值来解决它 - 滚动视图内容大小 - 滚动视图高度:float diff = scrollView.contentOffset.y -(scrollView.contentSize.height-scrollView.frame.size.height); if(diff>30){ //做需要做的事情 }

标签: objective-c ios cocoa-touch uiscrollview uiscrollviewdelegate


【解决方案1】:

发表评论作为答案:

检查scrollviewDidScroll 中的contentOffset,当contetOffset 超出您的底部/顶部时,向滚动视图添加新内容,并增加内容大小

【讨论】:

    【解决方案2】:

    也许更好的解决方案是这样的:

    -(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
    
        if (targetContentOffset->y == 0 && scrollView.contentOffset.y < - someOffset) { //use someOffset if you dont want to reload immedeately on scroll to top
            //dragged past top
        }
    
        if (targetContentOffset->y == scrollView.contentSize.height && scrollView.contentOffset.y > scrollView.contentSize.height + someOffset) { 
            //dragged past bottom
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      相关资源
      最近更新 更多