2011-12-05 58 views
0

我正在使用[UIView animateWithDuration:animations:]UIButton更改爲frame.size.height0。但是,一旦動畫開始,圓角矩形和背景會立即消失,而按鈕文本則會截斷視圖邊界。如何在沒有圖像扭曲的情況下更改UIButton的高度?

我正在使用的代碼是相當簡單:

CGRect newFrame = button.frame; 
newFrame.size.height = 0; 
[UIView animateWithDuration:2.0 animations:^{ 
    button.frame = newFrame; 
}]; 

我注意到,這只是發生在我是高度設置爲0。看來,動畫開始時,該按鈕只需在最終狀態下重繪一次即可。通過將該靜態圖像從原始大小縮放到最終大小來執行動畫。由於無法看到高度爲0的按鈕,因此會導致整個圓形消失(除了按鈕上的文本以外,因爲它是不同的視圖)。

必須有更好的方法來做到這一點,所以動畫看起來不奇怪。我怎樣才能讓動畫按照我想要的方式行事?

回答

0

如果你做這樣的事情,它會更好嗎?

CGRect newFrame = button.frame; 
newFrame.size.height = 1; 

[UIView animateWithDuration:2.0 
       animations:^{button.frame = newFrame;} 
       completion:^{button.hidden = YES;}]; 

如果您使用的是系統圓角的矩形按鈕,它也可能是他們不喜歡被調整到一定水平,它可能會與自定義按鈕更好地工作。

0

爲什麼不在你的動畫中設置你的按鈕的alpha值爲0?或者你需要動畫的高度?

+0

在我的應用程序中,該按鈕出現在UITableView標題中,並且我希望按鈕下方的內容在它消失的位置向上滑動。 –

0

拍攝按鈕的圖像快照,並執行仿射變換動畫,向上旋轉該視圖或更改y比例。

相關問題