57
53

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

StatusBarをタップしてもUIScrollViewが上までスクロールしない場合の対処法

Last updated at Posted at 2013-01-08

UIScrollViewのscrollsToTopがYESになっている場合、
StatusBarをタップすると上までスクロールするが、
subViewとして、scrollsToTopがYESになっている別のUIScrollViewサブクラスが含まれているとうまく動かない。

scrollsToTopはデフォルトでYESなので注意が必要。

注意するクラス

  • UIWebView
  • UITextView
  • UITableView

UIWebViewはUIScrollViewのサブクラスではないが、内部でsubViewとしてUIScrollViewを持っている。

内部でUIScrollViewを持っている場合の対処

for (UIView *view in view.subviews) {
  if ([view isKindOfClass:[UIScrollView class]]) {
    [(UIScrollView *)view setScrollsToTop:NO];
  }
}

※追記
WebViewなら以下のようにできます。
webView.scrollView.scrollsToTop = NO;

viewの階層構造をチェック

どうしても、どのviewが原因か分からない場合は、非公開メソッドを使ってviewの階層構造を出力できる。
そのまま審査提出するとリジェクトされるので注意

[view performSelector:@selector(recursiveDescription)];

参考リンク

57
53
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
57
53

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?