Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 自动布局变换层_Ios_Swift_Ios8_Autolayout - Fatal编程技术网

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,以便处理此问题。添加了我的解决方案@马特里特,这基本上就是我说的-图层成为视图的主图层,因此自动布局适用。