tableview的注意事项
2016-02-28 本文已影响462人
明月钓无痕
由于继承的控制器是UIViewController,需要对界面重新进行布局.
![](https://img.haomeiwen.com/i1362628/57d57e626ed5d2d7.png)
当控制器被推出之后出现的结果是如下图所示:
![](https://img.haomeiwen.com/i1362628/81ee49c272de40fa.png)
可以看出,tableview向上偏移了64.这就挺郁闷的,难道约束加的有问题.因为约束加的是到顶部的距离为0.
为了保证显示正确(如下图所示的情况):
![](https://img.haomeiwen.com/i1362628/6b074438d988f00a.png)
解决方案一:
在初始化view时添加两句代码
// public var automaticallyAdjustsScrollViewInsets: Bool // Defaults to YES
// 这个是scrollview自动调整.当scrollview是第一个view时,系统会自动调整,否则不会自动调整64
automaticallyAdjustsScrollViewInsets = false
// 去掉自动调整后,我们可以手动将tableview的contentInset调整64,就能完成我们的需求
tableView.contentInset = UIEdgeInsets(top: 64, left: 0, bottom: 0, right: 0)
需要注意的是automaticallyAdjustsScrollViewInsets这个属性是调整ScrollView的,也就是说继承了UIScrollview的都可能会出现这种问题
解决方案二:
先看一下在xib中添加的顺序,
![](https://img.haomeiwen.com/i1362628/2d98478155d42f0b.png)
这种解决方案就是,将tableview和view的添加顺序换一下,也而已达到上述效果,这样就不需要再添加代码了.
**附: **
当有tabBarController时,推出下一个界面时,我们要隐藏tabbar,最好的方式是设置一下属性
hidesBottomBarWhenPushed = true