我的UIView
的帧大小取决于AutoLayout约束。
在该尺寸更改视图中,有一个完整尺寸(背景)CALayer
。
当设备旋转时,我希望背景图层的框架在旋转时与父视图一起动画。
问题是,size
传递的viewWillTransitionToSize
属于视图之前应用了AutoLayout约束。
如何处理背景图层调整大小动画才能正常工作?
在此代码示例中,self.background
是附加到嵌套视图的图层:
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
coordinator.animateAlongsideTransition({context in
self.background.bounds.size = size
}, completion: nil)
}
谢谢。
解决方案:
我在视图中实现了类函数layerClass
,返回自定义CALayer
- 因此系统会处理AutoLayot。
由于图层是动态的并且响应事件,因此我使用通知中心将事件传递给图层。