忍者ブログ

佐崎司と愉快な仲間達

ゲーム、アニメ、CG、iOS開発など思いついたことを記事にしています。 管理人が3人いますので、記事にまとまりはないと思います。 iPhoneアプリのレビュー依頼も受け付けています。

scrollsToTopが効かない場合の対応方法

わか

UIScrollviewにはscrollsToTopプロパティがあり、ステータスバーをタップすると一番上までスクロールする機能があります。デフォルトはYESです。
また、UIScrollviewは「UITableView、UIWebView、UICollectionView、UITextView」のsubviewsに含まれます。
今回、scrollsToTopがYESなのにステータスバーをタップしても一番上に移動しなかったので原因と対応方法を記載します。

・原因
アクティブなビューに複数のUIScrollviewが存在し、scrollsToTopがYESの場合、どれか一つのUIScrollviewだけがスクロールの対象になるようです(おそらく階層的に一番下のUIScrollview)。

・対応
一番上にスクロールさせたいUIScrollviewのみscrollsToTopをYESに設定し、他はNOに設定すれば良い。

また他の原因として、何かのviewがステータスバーの領域とかぶっている場合も効きません。
UIScrollViewはsubviewsで内包されている場合が多いため、実装時に気付きにくいです。
備忘録でした。

拍手[0回]

PR