1

1 つのビュー コントローラーに 2 つの UITableView があります (ビュー コントローラーはデリゲートです)。それらの 1 つは scrollViewWillEndDragging:withVelocity:targetContentOffset: に依存します (何らかのカスタム ページネーションを行いたい)。もう1つはpagingEnabledプロパティがYESに設定されており、初めてスクロールしようとするとXCodeから警告が表示されます

2012-09-07 16:46:39.672 test[17393:707] Stop offset can not be modified for paging scroll views

メソッドのコードは現時点では次のとおりです。

-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
    return;
}

メソッド scrollViewWillEndDragging:withVelocity:targetContentOffset: を削除すると、すべて問題ないようです。別のデリゲート (そのメソッドなし) を作成して、ページネーション デリゲートを使用して UITableView にする必要がありますか、それとも心配する必要はありませんか?

4

2 に答える 2

6

コンソールにこの警告が表示される理由はscrollViewWillEndDragging:withVelocity:targetContentOffset:、スクロール ビューでページングが有効になっている場合にメソッドが効果を発揮しないためです。ドキュメントには次のように記載されています。

スクロール ビューの pagingEnabled プロパティの値が YES の場合、このメソッドは呼び出されません。

つまり、Xcode は警告を表示しますが、@tiguero が示すように、どのテーブル ビュー (スクロール ビュー) がデリゲート メッセージを送信しているかを各デリゲート メソッドで確認することをお勧めします。

警告については、コントローラーが両方のテーブル ビューのデリゲートであり、そのうちの 1 つがページングを有効にしているため、この警告は無視できます。

于 2013-01-29T18:33:13.010 に答える
0

私はあなたがここで達成しようとしていることについて少し混乱しています。それでも、2つのUITableViewのデリゲートとして機能する同じView Controllerがある場合は、それらのデリゲートメソッドを実装し、デリゲートメソッドのパラメーターで渡されたscrollView変数をチェックして、作業しているscrollViewをチェックすることをお勧めします。

于 2012-09-07T20:04:53.080 に答える