码迷,mamicode.com
首页 > 其他好文 > 详细

UIViewController 自动调整 TableView ContentInset失败问题

时间:2015-08-03 06:47:46      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:

  1. 背景介绍

    开发过程中经常会碰到ViewController里面放一个 TableView 这样的布局。ios7之后,导航不再占用视图的尺寸,iOS默认 edgesForExtendedLayout 为 UIRectEdgeAll 。


    那也就是说默认情况下是视图是可以全屏布局的。point(0,0) 变成了整个屏幕的最左上角,而不是从导航下面开始算。

    当然你也可以设置edgesForExtendedLayout 为其他枚举值,改变View 的边缘延伸区域。

    那么问题来了......

  2. 问题描述

    拖一个tableview 铺满VC的View,显示出来会被导航挡住64像素的高度吗?

    答案是正常情况下不会, 因为VC 具有 AdjustScrollViewInset属性,默认就是会自动调整子scrollview的contentInset, 让其显示内容不被NavigationBar 及 tabbar 遮挡。

    技术分享技术分享

    这是正常情况,妹子显示完整。但是这只是你的tableview作为最底层 subview 的情况

    技术分享

    如果tableview 不是作为View 的第一层子视图会怎样?

    技术分享技术分享

    在View和tableview 之间加了个view, 妹子的头被遮住了,发现AdjustScrollViewInset属性 马上失效了,勾选了也没用。

  3. 解决方案

    看来AdjustScrollViewInset属性有效也是有前提的,必须是scorllview 作为 VC 的最底层视图,当然你如果是tableviewController 不会出现这种问题。

    有多种办法可以解决这个问题 

    1、让tableview 重新回到最底层,代码布局的可以 sendToBack

      2、 手动调整tableview的 inset.top

        技术分享

参考:http://stackoverflow.com/a/19129292/4408376


UIViewController 自动调整 TableView ContentInset失败问题

标签:

原文地址:http://my.oschina.net/carson6931/blog/486774

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!