9

アプリケーションで scrollViewDidScroll デリゲートを使用しています。

しかし、多くの場合、スクロールを開始しなくても、このデリゲートが呼び出され、多くの問題が発生します。特定のスクロール ビューの contentSize が設定されている場合でも、その時点でこのデリゲートも呼び出されると聞きましたscrollViewDidScroll

このデリゲートが呼び出されるさまざまなシナリオは何ですか。これを制御する手順は何ですか?

これを処理するパラメータを設定できますか?

4

5 に答える 5

9

scrollDidScroll:ビューが読み込まれて調整されたときに自動的に起動するのを防ぐためにUIScrollView delegate、すべてのビューがviewDidLayoutSubviews. それは私にとってうまくいっています。

- (void)viewDidLayoutSubviews {
    // add table view delegate after the views have been laid out to prevent scrollViewDidScroll
    // from firing automaticly when the view is adjusted on load, which makes the tab bar disappear 
    self.tableView.delegate = self;
} 
于 2015-01-05T16:55:12.443 に答える
5

関連する

scrollViewDidScroll:スクロール境界が変更されるたびに呼び出されます。これは、スクロール中および開始時に呼び出されることを意味します。代わりに、scrollViewWillBeginDragging:を試してみてください。

于 2012-07-25T18:22:25.493 に答える
4

scrollViewDidScrollは、方向が変更されたときにも呼び出されます。これはここから知りました。これが私が直面していた問題でした。そして今、私の問題はこの投稿で解決しました。

于 2012-07-27T19:04:07.293 に答える
1

このメソッドで UICollectionView、UITableView デリゲートを設定します

override func viewDidLayoutSubviews() {
     super.viewDidLayoutSubviews()
     // This method is called only after all subviews are laid
}
于 2018-04-06T10:34:23.003 に答える