iOS 视图控制器的高级特性与故事板应用
1. 状态栏、特性与尺寸调整
1.1 状态栏外观委托
父视图控制器可以通过重写以下属性,将状态栏外观的控制权委托给子视图控制器:
- childForStatusBarStyle
- childForStatusBarHidden
例如, UITabBarController 就采用了这种方式,自定义的父视图控制器也能实现相同的功能。
1.2 特性集合继承
容器视图控制器参与特性集合的继承。父视图控制器可以通过 setOverrideTraitCollection(_:forChild:) 方法,向子视图控制器“谎报”环境信息。该方法的第一个参数是 UITraitCollection ,它会与继承的特性集合合并,并传递给指定的子视图控制器。
以下是一个示例,展示如何在 iPad 应用中,让子视图控制器以为自己处于 iPhone 环境:
let vc = // 要作为子视图控制器使用的视图控制器
self.addChild(vc) // 自动调用 "will" 方法
let tc = UITraitCollection(horizontalSizeClass: .compact)
self.setOverrideTraitCollection(tc, forChild: vc)
vc.view.frame = // 设置视图框
超级会员免费看
订阅专栏 解锁全文
1020

被折叠的 条评论
为什么被折叠?



