2014-04-18 96 views
0

我有一個小橫槓,從一側到另一側的設備。 當用戶點擊這個欄時,我想讓她成長起來。所有測試,我做了酒吧增長向下,或者當我改變origin.y和大小。高速酒吧太快到新的位置,然後增長到底部的正確位置。我無法制作出平滑的動畫。UIView成長動畫

示例代碼:

__weak typeof(self) weakSelf = self; 

int sizeToGrow = 100; 
CGRect barFrame = CGRectMake(weakSelf.frame.origin.x, 
          weakSelf.frame.origin.y - sizeToGrow, 
          weakSelf.frame.size.width, 
          weakSelf.frame.size.height + sizeToGrow); 

[UIView animateWithDuration:0.7 
         delay:0 
        options: UIViewAnimationOptionCurveEaseOut 
       animations:^{ 
        weakSelf.frame = barFrame; 
       } 
       completion:^(BOOL finished){ 
        NSLog(@"Done!"); 
       }]; 
+0

你嘗試'UIViewAnimationOptionCurveLinear'呢? – Taum

+0

是啊,我試過所有動畫選項= S – tschleuss

回答

0

通過使病程長,應該使動畫更平緩。

嘗試大約2.0f秒的值。

嘗試沒有選項,這樣,動畫將是線性的:

[UIView animateWithDuration:0.7 
         delay:0 
        options:0 
       animations:^{ 
        weakSelf.frame = barFrame; 
       } 
       completion:^(BOOL finished){ 
        NSLog(@"Done!"); 
       }]; 
+0

我試過了。但上面那段2秒的代碼使得酒吧快速向下增長,然後緩慢向上移動。非常奇怪的行爲。 – tschleuss

+0

它的工作,謝謝..我也意識到真正的問題是在我的layoutSubviews方法一起生長一個漸變層,這個錯誤發生在漸變層上,而不是在UIView – tschleuss