2015-07-09 45 views
0

我正在使用masonry autolayout的項目,並且我在動畫中遇到了一些問題,所以我必須做的事情是讓一個抽屜出現從屏幕的頂部開始,將出現一個動畫,因此容器視圖的內容(可以是1視圖或多個視圖)是使用石匠視圖添加的,我的問題是當我調試視圖時,我得到的框架始終是Frame(0 0; 0 0)y因爲我需要應用動畫我需要框架來捕獲容器視圖的高度,有沒有一種方法來獲得正確的框架或它是一個特定的如何使用動畫和自動佈局?xcode masonry沒有設置正確的框架

回答

0

嘗試捕獲viewDidLayoutSubviews中幀的高度爲UIViewControllerlayoutSubviewsUIView

要爲AutoLayout動畫應用,你必須重新設置約束這樣的:

// tell constraints they need updating 
[self setNeedsUpdateConstraints]; 

// update constraints now so we can animate the change 
[self updateConstraintsIfNeeded]; 

[UIView animateWithDuration:0.4 animations:^{ 
    [self layoutIfNeeded]; 
}]; 

和更新或改造updateConstraints的約束。

另請參閱:https://github.com/SnapKit/Masonry/blob/master/Examples/Masonry%20iOS%20Examples/MASExampleUpdateView.m

+0

非常感謝,它真的幫助我。 – user9898

+0

爲什麼不接受這個答案? :) – user3480295