使用自动布局动画包含子视图的视图
这是设置:
_vAbout
) _ctrBottomAboutView
) 我正在使用此代码来动画:
_ctrBottomAboutView.constant = -100;
[UIView animateWithDuration:0.5 animations:^{
[_vAbout layoutIfNeeded];
}
我的问题是: 只要视图中有任何子视图,动画就不起作用 。 但是,如果视图没有孩子,则动画可以正常工作。
你有任何解决方案的想法? 我已经尝试了一切:添加和删除约束而不是修改常量值,在Interface Builder的子视图中添加约束...
经过一些实验,从一个空的项目开始实验,这是我发现的:
鉴于A的观点,我们想要动画和B超视图
layoutIfNeeded
消息的视图是拥有该约束的视图,这一点非常重要。 NSLayoutAttributeWidth
和NSLayoutAttributeHeight
,约束的所有者实际上是A,但在所有其他情况下,拥有约束的视图是B 然而
[A layoutIfNeeded]
,它将起作用 viewDidLoad
上启动动画,我们可以调用[A layoutIfNeeded]
并且它将起作用 上一篇: Animate a view containing subviews with autolayout
下一篇: What is the correct way to prepare dataset for machine learning?