UINavigationController布局Y值64px问题
来源:互联网 发布:mmd动作数据制作 编辑:程序博客网 时间:2024/06/01 10:44
背景:iOS7之前控制器的self.view的Y的0点是在Navgationbar的底部开始的. iOS7之后,苹果推行全屏布局控制器的self.view的Y的0点是屏幕顶部.然而有时候还是会遇到y之前从0开始的,突然又从64开始了,下面介绍一些改变此属性的情况。
第一坑:如果你的self.view的第一个视图是scrollView类视图. eg: 如果你把一个tableView的Y 约束设置为距离self.view.Y 为64.看起来很和谐,刚好是navgationbar 44 + 状态栏20 = 64 的距离.在storyboard上看上去一切没有问题. 当你跑起来发现tableview的里面的cell Y值多了64.
因为iOS7之后多了一个新特性(automaticallyAdjustsScrollViewInsets),当控制器的self.view的第一个视图是scroview类视图时. 会自动调整scrollView视图里面的子视图的的Y值往下移64点.也就是说tableview的Y值还是屏幕的顶部0点,而cell自动下调了64.想想是不是很贴心.怕你的cell的内容被navgationbar挡住了.fuck 加上之前设置的距离 64加上自动调整的64 就成了 128.
经测试storyboard设置y的约束为距离 top layout guide.bottom为0 也一样会造成这个效果.
解决方法
- 在控制器里设置 self.automaticallyAdjustsScrollViewInsets = NO;
- 在storyboard 取消
- 设置tableView.Y 距离self.view.Y 为0
第三坑: 经测试设置控制器的self.edgesForExtendedLayout = UIRectEdgeNone;也会导致self.view Y原点下移64. 导致跟iOS6时代一样Y原点是在Navgationbar的下面.
- UINavigationController布局Y值64px问题
- 使用UINavigationController 布局多64 少64的问题
- UINavigationController的popViewControllerAnimated问题
- UINavigationController的popViewControllerAnimated问题
- UINavigationController的popViewControllerAnimated问题
- UINavigationController的popViewControllerAnimated问题
- UINavigationController的popViewControllerAnimated 问题
- UINavigationController的popViewControllerAnimated问题
- UINavigationController手势问题
- android布局单位px,dip
- 关于ax+by=c的解x,y的min(|x|+|y|)值问题
- 问题 Y Fibonacci数列
- 问题 Y: 字母图形
- 小 Y 的问题
- 小Y的问题
- 问题 Y: 大小写转换
- UINavigationController的横屏问题
- 继承UINavigationController的问题----UITabBarController
- LCD显示图片的函数-ARM体系-2440
- CodeIgniter框架隐藏index.php
- 实现Bootstrap中select的重置功能
- 产品经理——(二)四月规划
- Sqlserver 数据库还原失败-不能重写日志文件
- UINavigationController布局Y值64px问题
- encodeURIComponent
- 使用Jenkins进行Android自动打包
- js实现数字从1动态递增到10
- 8.15-30题目归档
- 自然语言处理学习(二):标签问题和隐马尔科夫模型2.1-2.3
- pig-hive-elasticsearch
- Android进阶#(3/12)保证APP流畅的关键因素——多线程_Android中的消息机制
- 文章标题