天天看点

iOS scrollView及其子类(UITableView等等)内容偏下

在iOS7以前,状态栏是独立于viewController之外的。从iOS7开始,viewController的view都默认全屏,包括的状态栏。

假设你的viewController中有一个UIScrollView的对象,而这个viewController又没有在UINavigationController的栈中,那么,很容易出现scrollView的内容往下偏移的情况。至于偏移了多少,我们借助reveal这个界面工具,能够轻而易举的获知。 我遇到的情况就是偏移了20个点,借助reveal,我发现scrollView的contentInset为20.

iOS scrollView及其子类(UITableView等等)内容偏下

通过设置viewController.automaticallyAdjustsScrollViewInsets = NO,可以避免这个问题。

真是不知道这个自动调整什么时候会有用,谁会做一个没有导航栏同时以scrollView铺满的界面呢?

还有一个我遇到的因为viewController.automaticallyAdjustsScrollViewInsets引起的问题。

视图层次如下。

screen

1.navigationBar

2.self.view

1.tableView

2.customTabbar

在点击表格后,push进入到另外一个viewController,在push回来的时候,表格最后一行的位子就偏下,被customTabbar挡住。

同样,设置为NO,解决。

就我遇到的这两个情形而言,viewController.automaticallyAdjustsScrollViewInsets = YES会使scrollView的inset尽量的铺满屏幕。

如果scrollView上面没有导航栏,就会自动让出20个点给状态来,如果下面没有UITabbar,就会直接铺到屏幕底部。