Ios 自动布局变换层
我有一个Ios 自动布局变换层,ios,swift,ios8,autolayout,Ios,Swift,Ios8,Autolayout,我有一个ui视图,其帧大小取决于自动布局约束 在该尺寸变化视图中,有一个全尺寸(背景)CALayer。 当设备旋转时,我希望背景层的帧在旋转时与父视图一起设置动画。 问题是从视图传递的size在应用自动布局约束之前属于视图 我应该如何处理背景层大小调整动画才能正常工作 在此代码示例中,self.background是附加到嵌套视图的图层: override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator
ui视图
,其帧大小取决于自动布局约束
在该尺寸变化视图中,有一个全尺寸(背景)CALayer
。
当设备旋转时,我希望背景层的帧在旋转时与父视图一起设置动画。
问题是从视图传递的size
在应用自动布局约束之前属于视图
我应该如何处理背景层大小调整动画才能正常工作
在此代码示例中,self.background
是附加到嵌套视图的图层:
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
coordinator.animateAlongsideTransition({context in
self.background.bounds.size = size
}, completion: nil)
}
多谢各位
解决方案:
我已经在返回自定义CALayer
的视图中实现了类函数layerClass
,因此自动布局由系统处理
因为层是动态的,并且响应事件,所以我使用Notification Center将事件传递到层。您可能必须在视图上实现layoutSubviews
,以便与auto layout(自动布局也在那里工作)一起工作。当你弄明白这件事的时候告诉我。缺少图层的自动布局是一个巨大的问题。您可能希望切换到UIView而不是CALayer,以便处理此问题。添加了我的解决方案@马特里特,这基本上就是我说的-图层成为视图的主图层,因此自动布局适用。