scrollToRowAtIndexPathに関する注意点

UITableViewに「scrollToRowAtIndexPath:atScrollPosition:animated:」というメソッドがあります。これに関して、一つはまったのでメモしておきます。

同メソッドを使って画面が表示された時に、選択されている行に箇所に移動するという処理を書いていましたが、今までは「viewDidLoad」に書いていました。これだと、iOSのバージョンによっては例外を投げることがありました(例外発生を確認したのは4.0。4.3だと例外発生せず)。恐らく、同メソッドを呼んだとき、スクロール対象であるtableViewの読み込みが完了していなかったのだと思われます。

これを解決するために、「scrollToRowAtIndexPath:atScrollPosition:animated:」の場所を「viewDidLoad」から「viewWillAppear」に変更しました。これで、例外を投げなくなりました。

この記事が役に立った場合、シェアしていただけると励みになります!!