7

私は同じのUITableViewUIScrollView内部の両方を使用していUIViewControllerます。

私の問題は、テーブルビューまたはスクロールビューのいずれかをスクロールすると、didScrollデリゲート呼び出しが発生することです。

scrollViewDidScrollデリゲートコールの発信元を特定するにはどうすればよいですか?

4

3 に答える 3

15

デリゲートで指定された scrollView パラメータを確認してください。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if(scrollView == self.tableView) {
      // its your tableView
    }
    else if(scrollView == self.scrollView) {
      // its your scrollView
    }
}
于 2013-03-06T10:55:53.917 に答える
3

didScrollメソッドは、scrollviewを入力として受け取ります

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    if(scrollView == self.tableViewInstance){//this is  your table view}
    else {//this is your scroll view}
}

入力をチェックして、デリゲートメソッドを呼び出しているのがスクロールビューかテーブルビューかを確認できます。

于 2013-03-06T11:11:15.810 に答える
1

UIScrollViewのタグをとして0追加し、UITableViewのタグをとして追加できます1。デリゲート内でタグをチェックして、これのどれがスクロールされているかを確認し、作業を行います。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
  {
       if(scrollViewl.tag == 0) // ur in scrollView
        if(scrollViewl.tag == 1) // ur in tableView
   }
于 2013-03-06T10:55:14.510 に答える