在IOS7 之后viewController有一个新的属性叫做edgesForExtendedLayout,这个属性指定viewController的view边缘延伸的方向,默认情况下是UIRectEdgeAll,所以view是向四周延伸的。这是属性是针对于viewController上的self.view的。
(1)先试试看默认情况下是什么样子
view是向四周延伸的,所以view的上部分会被Navigationbar遮住。
现在将 self.edgesForExtendedLayout = UIRectEdgeNone;(具体设置那个方向,还要看每个不同的需要,我这边直接设置成None)
现在的结果是这样的
可以看出self.view的frame发生了变化。
一开始self.view的Y轴=0,高度为568(这边以iphone5的屏幕),现在的self.view的Y轴=64,高度也变成了504,相当于self.view往里面缩了64
此时布局的时候则需要从Y=0开始布局。包括Scrollview或者他的子类,如果此时设置automaticallyAdjustsScrollViewInsets测试下来发现已经不起作用了。
edgesForExtendedLayout 同样也适用于tabBar、statusBar的情况下,下面是Navigation和tabBar一起使用的情况
1.edgesForExtendedLayout = UIRectEdgeAll
2.edgesForExtendedLayout = UIRectEdgeNone
上面的情况是viewcontroller先压入Navigation,在压入tarBar。
但是如果先压入tabBar再压入Navigation的时候情况是不一样的
此时在设置edgesForExtendedLayout = UIRectEdgeNone
self.view上部分还是延伸了。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)