2
我正在動畫自定義UIView以展開,如下面的gif(紅色視圖)所示。 單擊打開/關閉按鈕時,我想讓左側圖標垂直位於其俯視圖的中央。如下圖所示,只要我點擊按鈕,圖標就會彈出到動畫完成後的位置。 這個按鈕也是一樣,但是它不像它被暫時隱藏起來一樣顯而易見。動畫UIView的子視圖不會在動畫期間保持其約束
我也希望中間的UILabel
能夠動畫它的大小,而不是一點擊'關閉'就彈出到最小高度。
在故事板中我已經設置了圖標和按鈕來將中心與超級視圖對齊,這對我來說似乎是實現我想要的正確方法。我會假設,當我爲超級視圖設置動畫時,子視圖在動畫期間保持居中,但是他們立即移動到將會正確的點,但動畫完成後。
我的動畫代碼:
UIView.animateWithDuration(0.4, animations: {() -> Void in
var rect = self.frame; //The current frame, to change
let oldHeight = self.frame.size.height as CGFloat
let newSize = self.sizeForBanner() //Get the CGSize for the big banner.
if(self.isBig) //Animate to big size
{
//Put the new height and origin for the large version of the view
rect.size.height = newSize.height;
rect.origin.y -= (rect.size.height - oldHeight)
}else{ //Animate to small size
//Put the new height and origin for the small version of the view
rect.size.height = self.minimalHeight;
rect.origin.y += oldHeight-rect.size.height
}
//Set the new variables
self.frame = rect;
}) { (Bool) -> Void in
//Completion
}
如何/我該怎麼改變,使圖標和按鈕時,上海華動畫留中心..
你解決它?我面臨着同樣的問題... –
@AviTsadok是的,我認爲是這樣!我現在沒有這裏的代碼,但我可以稍後再查看,並將其寫爲答案。我認爲這是啓用'view.clipsToBounds'(或稱之爲)和其他一些變量。並且一定要有你的約束 – Sti
@AviTsadok其實,我沒有這個代碼了。我們最終使用了稍微不同的設計,但並不是因爲這個問題。我相當肯定,我設法通過改變約束來改變這個工作,並改變了一些值,比如'clipsToBounds'等等。我記得當我意識到我必須在* superview *中將'clipsToBounds'設置爲'true'而不是實際視圖(或者其他方式,或者某種東西)時,會出現一個'aha'時刻。重要的是哪個物體具有這些特性,這與我所想的相反。祝你好運,並對不起:) – Sti