如何在iOS 10中布置设备轮换的子视图

时间:2016-10-25 06:41:22

标签: ios rotation ios10

如何在iOS 10中布置设备轮换的子视图?

我想在旋转设备时重绘我的子视图。

2 个答案:

答案 0 :(得分:0)

添加并使用didRotateFromInterfaceOrientation方向委托方法。

要布置子视图,请使用autoresizingMask的{​​{1}}属性,

像,

UIView

来自UIView documentation

  

当视图的边界发生变化时,该视图会自动调整其大小   根据每个子视图的自动调整掩码进行子视图。

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()
    })
}