最近优化工程,遇到一个很棘手的问题,就是uitableview的内容视图下移,如图所示
我左右两个tableview设置的起始坐标是一样的,但是相对于右边tableview而言,左边的tableview的内容视图明显下移了20,后面的蓝色为设置的tableview的背景色,红色块是第一个cell,后来想的解决办法是设置contentoffset,这个方法第一次进入这个页面是可以的,但是从其它页面切换回来的时候,会出现tableview的内容视图先上移到(0,0)的位置,然后又下移到如图所示位置,于是又通过万能的google,知道了这是ios7的特性,iOS7在Conttoller中新增了这个属性: automaticallyAdjustsScrollViewInsets,当设置为YES时(默认YES),如果视图里面存在唯一一个UIScrollView或其子类View,那么它会自动设置相应的内边距,这样可以让scroll占据整个视图,又不会让导航栏遮盖,我们设置 automaticallyAdjustsScrollViewInsets这个属性为no,就可以解决这个问题,当然也可以通过修改UIViewController的 edgesForExtendedLayout这个属性来实现。
![ios7 uitableview内容视图下移 - Ameast - Dream](http://img1.ph.126.net/SvGm5zryB_z2-_vfhlPXVg==/6597699786821099257.jpg)
我左右两个tableview设置的起始坐标是一样的,但是相对于右边tableview而言,左边的tableview的内容视图明显下移了20,后面的蓝色为设置的tableview的背景色,红色块是第一个cell,后来想的解决办法是设置contentoffset,这个方法第一次进入这个页面是可以的,但是从其它页面切换回来的时候,会出现tableview的内容视图先上移到(0,0)的位置,然后又下移到如图所示位置,于是又通过万能的google,知道了这是ios7的特性,iOS7在Conttoller中新增了这个属性: automaticallyAdjustsScrollViewInsets,当设置为YES时(默认YES),如果视图里面存在唯一一个UIScrollView或其子类View,那么它会自动设置相应的内边距,这样可以让scroll占据整个视图,又不会让导航栏遮盖,我们设置 automaticallyAdjustsScrollViewInsets这个属性为no,就可以解决这个问题,当然也可以通过修改UIViewController的 edgesForExtendedLayout这个属性来实现。
self
.edgesForExtendedLayout =
UIExtendedEdgeNone
;
关于详细的介绍,可以参考http://www.vinqon.com//codeblog/?detail/11109