如何在iOS 10中布置设备轮换的子视图?
我想在旋转设备时重绘我的子视图。
答案 0 :(得分:0)
添加并使用didRotateFromInterfaceOrientation
方向委托方法。
要布置子视图,请使用autoresizingMask
的{{1}}属性,
像,
UIView
当视图的边界发生变化时,该视图会自动调整其大小 根据每个子视图的自动调整掩码进行子视图。
将YourView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
更改为autoresizingMask
以外的其他人将触发None
。
因此,您可以使用以下代码使用layoutSubviews
委托方法布局子视图。
didRotateFromInterfaceOrientation
答案 1 :(得分:0)
由于didRotateFromInterfaceOrientation
在iOS 9中已被弃用,您应该使用viewWillTransition(_:_:)
方法。
这是一个例子:
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
coordinator.animate(alongsideTransition: nil, completion: { _ in
// called right after rotation transition ends
self.view.setNeedsLayout()
})
}