【问题标题】:Detect UITextView scroll location检测 UITextView 滚动位置
【发布时间】:2012-12-07 20:14:15
【问题描述】:

我正在尝试实现一种条款和条件页面的形式,其中“继续”按钮仅在用户滚动到 UITextView 底部时才启用。到目前为止,我已将我的类设置为 UIScrollView 委托并实现了以下方法:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    NSLog(@"Checking if at bottom of UITextView");
    CGPoint bottomOffset = CGPointMake(0,self.warningTextView.frame.size.height);
    //if ([[self.warningTextView contentOffset] isEqualTO:bottomOffset])
    {
    }    
}

我已经评论了 if 语句,因为我不确定如何检查 UITextView 是否在底部。

【问题讨论】:

    标签: ios cocoa uitextview uitextviewdelegate


    【解决方案1】:

    这个问题的 Swift 版本:

    func scrollViewDidScroll(_ scrollView: UIScrollView) {
    
        if scrollView.contentOffset.y >= scrollView.contentSize.height - scrollView.frame.size.height {
    
            print( "View scrolled to the bottom" )
    
        }
    }
    

    【讨论】:

      【解决方案2】:

      这应该可以解决。有用。我正在使用它。

      - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 
      {
          float bottomEdge = scrollView.contentOffset.y + scrollView.frame.size.height;
          if (bottomEdge >= scrollView.contentSize.height) 
          {
              // we are at the end
          }
      }
      

      【讨论】:

      • 好方法。不过,在使用浮点值时,我会添加一个误差范围。
      【解决方案3】:

      UITextView 是 UIScrollView 的子类。因此,您使用的 UIScrollView 委托方法在使用 UITextView 时也可用。

      您应该使用scrollViewDidScroll,而不是使用scrollViewDidEndDecelerating,因为滚动视图可能会停止滚动而不会减速。

      - (void)scrollViewDidScroll:(UIScrollView *)scrollView
      {
          if (scrollView.contentOffset.y >= scrollView.contentSize.height - scrollView.frame.size.height)
          {
              NSLog(@"at bottom");
          }
      }
      

      【讨论】:

      • 谢谢欧文,我今晚会试试这个,如果成功(或不成功)更新!詹姆斯问题:你在你的例子中提到了 scrollView - 如果我引用我的 UITextView.contentOffSet.y 等有关系吗?
      • 你所关心的scrollView是变量名,你可以随便叫它,只要你把方法名里的也改一下。例如,您可以将其命名为textView,并将方法名称更改为- (void)scrollViewDidScroll:(UIScrollView *)textView。或者,您可以直接引用您的 UITextView,并将 if 行更改为 if (self.warningTextView.contentOffset.y >= self.warningTextView.contentSize.height - self.warningTextView.frame.size.height)
      猜你喜欢
      • 1970-01-01
      • 2013-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-05
      • 2016-01-05
      • 1970-01-01
      相关资源
      最近更新 更多