2012-07-29 20 views
2

我想在文本更改時動畫我的UILabel。對於某些情況:我有一個標籤,裏面有當前的溫度(比如說57º),我想爲它製作動畫,所以它從0º到57º都向上計數。下面是一個視頻,顯示我想要的內容:http://www.youtube.com/watch?v=mXfOvGflVWw(在國家地理公園的iPhone和iPad應用程序中,在統計菜單中找到)如果任何人都可以指出我如何做到這一點的正確方向,那就太好了。我會使用像NSTimer,但這些值是動態的...在iOS上動態設置動態整數值?

謝謝!

回答

3

當然不是最有效的,但一個非常簡單的方法來做到這一點,而不需要額外的實例變量:

NSInteger fromValue = 0; 
NSInteger toValue = 57; //In this example toValue has to be greater than fromValue 
NSString *suffix = @"°"; 
NSTimeInterval interval = 0.016; //Adjust for different animation speed 
NSTimeInterval delay = 0.0; 
for (NSInteger i = fromValue; i <= toValue; i++) { 
    NSString *labelText = [NSString stringWithFormat:@"%i%@", i, suffix]; 
    [myLabel performSelector:@selector(setText:) withObject:labelText afterDelay:delay]; 
    delay += interval; 
} 
+0

謝謝,這做到了完美。你是什​​麼意思,它不是最有效的方式(只是有點好奇:P)?再次感謝! – sridvijay 2012-07-29 19:35:44

+0

好吧,有一些開銷,因爲所有的中間值都是一次計算和計劃的,而你只需要用計時器計算當前值。我不會推薦這個長時間動畫(超過3秒左右),但對於簡短的事情,它應該沒問題。 – omz 2012-07-29 20:25:55

+0

感謝您的解釋,這只是一個簡短的動畫,到目前爲止我還沒有得到任何性能問題。再次感謝。 – sridvijay 2012-07-29 20:29:57