AutoLayout转换CALayer

时间:2015-05-07 17:49:54

标签: ios swift ios8 autolayout

我的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。

由于图层是动态的并且响应事件,因此我使用通知中心将事件传递给图层。

0 个答案:

没有答案