7

UITableViewの中にあるアプリケーションがありますがUIView、これもまたの中にあるUIScrollViewので、階層は次のようになります。

UIScrollView-> UIView->UITableView

私の中のデータUITableViewは正しく入力されています。

さて、私の問題は、をスクロールするとUITableViewUIScrollView'sデリゲートメソッドが呼び出されることです。scrollViewDidEndDecelerating:scrollViewDidEndDragging::

この動作を望まないのですが、この動作を停止するにはどうすればよいですか?

どなたか助けてください、よろしくお願いします!!!

4

2 に答える 2

9

UITableViewDelegateはUIScrollViewDelegateを拡張します。したがって、デリゲートメソッドの呼び出し。

これを停止するtableView.tag = 1000;には、tableViewを割り当てるときに設定し、UIScrollViewDelegateメソッド(scrollViewDidEndDecelerating: and scrollViewDidEndDragging::)でこれを最初に追加します。

if(scrollView.tag == 1000)
    return;
于 2012-07-10T10:19:03.527 に答える
3

UITableViewはUIScrollViewを継承しているためです。つまり、UIScrollViewのすべてのプロパティと動作が表示されます。これが必要ない場合は、1つのことを行ってください。

ページに別のスクロールビューがあると仮定します。

viewDidLoadまたはからXIB(XIBにテーブルビューがある場合)、テーブルビューのタグを設定します。

コードでは、

self.objYourTableView.tag = 101;

次に、スクロールビューデリゲートで

- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
  {
       if(!(scrollView.tag == 101))
       {
          // Go for your code to run.
       }
  }

テーブルビューで呼び出された場合にコードがスキップされるようにします。他の場合は完璧に動作します。これがお役に立てば幸いです。

于 2012-07-10T10:19:27.090 に答える