[英]Animate a view containing subviews with autolayout
这是设置:
_vAbout
) _ctrBottomAboutView
) 我正在使用此代码进行动画处理:
_ctrBottomAboutView.constant = -100;
[UIView animateWithDuration:0.5 animations:^{
[_vAbout layoutIfNeeded];
}
我的问题是: 只要视图中有任何子视图,动画就不起作用 。 但是,如果视图没有子项,则动画可以正常工作。
你知道解决方案吗? 我已经尝试了一切:添加和删除约束而不是修改常量值,在Interface Builder上向子视图添加约束...
经过一些空的项目从地面开始的一些实验,这是我发现的:
鉴于我们希望动画的视图和B的超级视图
layoutIfNeeded
消息的视图是拥有约束的视图,这一点非常重要。 NSLayoutAttributeWidth
和NSLayoutAttributeHeight
的情况下,约束的所有者实际上是A,但在所有其他情况下,拥有约束的视图是B 然而
[A layoutIfNeeded]
,它会工作 viewDidLoad
上启动动画,我们可以调用[A layoutIfNeeded]
,它会工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.