40、iOS 视图控制器的高级特性与故事板应用

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 = // 设置视图框
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值