检测Textview滚动和Tableview滚动

时间:2017-07-17 11:01:12

标签: ios objective-c uitableview

我在UIView中有一个TextView和一个Tableview。我试图检测滚动是textview滚动还是tableview滚动?有任何代码吗?感谢您提前提供任何帮助:)

6 个答案:

答案 0 :(得分:1)

UITextView& UITableView都是使用UIScrollView

实现的

您可以识别哪个控件滚动&实施UIScrollViewDelegate

的方向
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {

    if ([scrollview isKindeOfClass: [UITextView Class]]) {
       //UITextView
    } else if ([scrollview isKindeOfClass: [UITableView Class]]) {
      // UITableView
    }

    // Identifying direction 
    CGPoint point = [scrollView.panGestureRecognizer translationInView:scrollView.superview];
    if (point.y > 0) {
        // Dragging down
    } else {
        // Dragging up
    }
}

答案 1 :(得分:1)

使用func scrollViewDidScroll(_ scrollView: UIScrollView)委托并检查。设置UITextViewDelegateUITableViewDelegate并签入方法

示例

目标C

 - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if scrollView == tableView {

      }
     if scrollView == textView {

      }
    }

Swift 3.0

 func scrollViewDidScroll(_ scrollView: UIScrollView) {
        if scrollView == tableView {

        }
        if scrollView == textView {

        }
    }

答案 2 :(得分:0)

UIScrollViewUITableView中已嵌入UITextView Reference

- (void)scrollViewDidScroll:(UIScrollView *)scrollView;

答案 3 :(得分:0)

UITableViewDelegate符合UIScrollViewDelegate,因此您只需要实现这些方法 - scrollViewWillBeginDragging和-scrollViewDidScroll

   - (void) scrollViewDidScroll:(UIScrollView *)scrollView {
   if (scrollView == myTableView){
   // Your logic here.....
    }
    if (scrollView == textView)
    {  // Your logic here..
    }
    }

答案 4 :(得分:0)

UITableView& UITextView是UIScrollview的子类。滚动 UITableView 时,您将获得所有 UIScrollView 。您可以在此处获得UIScrollView method的列表。

答案 5 :(得分:0)

UITextViewUITableView都是UIScrollView子类,因此它们都会触发UIScrollViewDelegate方法。

假设__scrollView__textView分别是UIScrollViewUITextView

覆盖UIScrollViewDelegate方法

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
      if ( scrollView ==  __scrollView ) {
            // UIScrollView is scrolled
      }else if ( scrollView ==  __textView ){
            // UITextView is scrolled
      }
}