[英]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.