传统的直接创建UITableViewController,tableview的大小已经设置好了,这里要说的是在自定义控制器(UIViewController)上面覆盖一个cell列表。
不带导航栏:
tableview在自定义控制器(继承UIViewController)上面frame大小一般设置和屏幕大小一样,tableview上下滚动没什么影响,可以正常滚动。
带导航栏:
如果带导航栏的控制器,tableview的Frame大小需要考虑从MyViewController(自己创建的控制器,后面就用这个不再注释)的view的什么位置开始。
- 如果从(x == 0,y == 0)开始,那么就不需要用
self.automaticallyAdjustsScrollViewInsets = NO;
这句代码了,不需要,向上滚动结束后底部的显示不会受影响。显示效果如图 img1
- 如果加上,会出现tableview的frame从导航栏下方开始,上部64的高度内容会导航栏被遮住显示不出,很显然这不是我们想要的。显示效果如图 img2
结论: 加上 self.automaticallyAdjustsScrollViewInsets = NO;
继承于UIScrollView的控件 不会 向下滚动64的高度。
如果从(x == 0,y == 64)开始,那么就需要用加上 self.automaticallyAdjustsScrollViewInsets = NO;
不加会出现一段64高度的空白,如图 img3
带tabBar的
当使用了tabBar后会发现tableView向上滚动到底部松手,会发现tableView底部的cell被tabBar盖着,这是设置self.automaticallyAdjustsScrollViewInsets = NO;
是没有效果的。
解决方法:[_displayTableview setContentInset:UIEdgeInsetsMake(0, 0, 49, 0)];
设置滚动后停留在tabBar上面。
******** * * * * * 未完待续 ***********