iOS-tableview的在UIViewController上Frame设置出现的显示问题

传统的直接创建UITableViewController,tableview的大小已经设置好了,这里要说的是在自定义控制器(UIViewController)上面覆盖一个cell列表。

不带导航栏:
tableview在自定义控制器(继承UIViewController)上面frame大小一般设置和屏幕大小一样,tableview上下滚动没什么影响,可以正常滚动。

带导航栏:
如果带导航栏的控制器,tableview的Frame大小需要考虑从MyViewController(自己创建的控制器,后面就用这个不再注释)的view的什么位置开始。

  • 如果从(x == 0,y == 0)开始,那么就不需要用
 self.automaticallyAdjustsScrollViewInsets = NO;

这句代码了,不需要,向上滚动结束后底部的显示不会受影响。显示效果如图 img1

iOS-tableview的在UIViewController上Frame设置出现的显示问题_第1张图片
img1.png
  • 如果加上,会出现tableview的frame从导航栏下方开始,上部64的高度内容会导航栏被遮住显示不出,很显然这不是我们想要的。显示效果如图 img2
iOS-tableview的在UIViewController上Frame设置出现的显示问题_第2张图片
img2.png

结论: 加上 self.automaticallyAdjustsScrollViewInsets = NO;继承于UIScrollView的控件 不会 向下滚动64的高度。

如果从(x == 0,y == 64)开始,那么就需要用加上 self.automaticallyAdjustsScrollViewInsets = NO; 不加会出现一段64高度的空白,如图 img3

iOS-tableview的在UIViewController上Frame设置出现的显示问题_第3张图片
img3.png

带tabBar的

当使用了tabBar后会发现tableView向上滚动到底部松手,会发现tableView底部的cell被tabBar盖着,这是设置self.automaticallyAdjustsScrollViewInsets = NO;是没有效果的。

解决方法:[_displayTableview setContentInset:UIEdgeInsetsMake(0, 0, 49, 0)]; 设置滚动后停留在tabBar上面。

******** * * * * * 未完待续 ***********

你可能感兴趣的:(iOS-tableview的在UIViewController上Frame设置出现的显示问题)