修改contentEdgeInset后,UINavigationBar下的UITableView滚动指示器

Fry*_*Fry 6 objective-c uitableview uiscrollview uinavigationcontroller ios

我有一个UINavigationController可以显示UICollectionView或中的数据UITableView.iOS 7会自动调整UIScrollView视图层次结构中创建的第一个滚动视图插入.

所以,UICollectionView是好,但我必须设置contentEdgeInsetUITableView.这一行之后

self.tableView.contentInset = UIEdgeInsetsMake(44.0f, 0.0f, 0.0f, 0.0f);

内容UITableView显示得很好,但滚动指示器不会停在UINavigationBar,但继续下面.

如何解决此问题并在开始时停止滚动指示UINavigationBar

在此输入图像描述

Vin*_*yne 12

您还可以设置scrollIndicatorInsets如下:

self.tableView.scrollIndicatorInsets = UIEdgeInsetsMake(44.0f, 0.0f, 0.0f, 0.0f);
Run Code Online (Sandbox Code Playgroud)

顺便说一句,在iOS 7上,你应该使用[self.topLayoutGuide length]而不是硬编码44.0f像素.从iOS 7过渡指南:

topLayoutGuide和bottomLayoutGuide属性指示视图控制器视图中顶部或底部条边的位置.

  • 如果你在-viewDidLoad中调用它,那么它可能会返回零.最好的办法是在-viewDidLayoutSubviews中检查它并在那里设置你的插图. (2认同)