2014-09-30 39 views

回答

1

使用NSTimer安排文本更改。例如,如果您的方法名爲changeText,則可以使用[NSTimer scheduledTimerWithTimeInterval:3.0 target:self select:@selector(changeText) userInfo:nil repeats:YES];啓動計時器,其中3.0是以秒爲單位的時間間隔。

至於動畫,你有兩個選擇。您可以讓文本淡出然後淡入,或者可以讓文本從一個字符串淡入到下一個字符串。要做到前者(在隨後淡入淡出),使用這樣的:

[UIView animateWithDuration:0.5 animations:^{ 
    textLabel.alpha = 0.0f; 
} completion:^(BOOL finished) { 
    textLabel.text = newString; 
    [UIView animateWithDuration:0.5 animations:^{ 
     textLabel.alpha = 1.0f; 
    }]; 
}]; 

這種淡出在0.5秒的文本標籤(通過設置阿爾法爲0),然後設置文本newString和消失的標籤早在

另外,有文字褪色從一個值到另一個:

CATransition *animation = [CATransition animation]; 
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
animation.type = kCATransitionFade; 
animation.duration = 1.00; 
[textLabel.layer addAnimation:animation forKey:@"kCATransitionFade"]; 
textLabel.text = newString; 
+0

謝謝你的答案。 – Diamond 2014-09-30 23:24:15

+0

@Diamond代碼進入定時器執行的函數。在我的例子中,它將被稱爲'changeText',所以你會聲明一個像' - (void)changeText {...}'方法' – ttarik 2014-09-30 23:55:10

+0

對不起,我的意思是隻有動畫代碼應該被添加到'changeText'方法。加載視圖時應該啓動計時器('viewDidLoad')。我的代碼也不包括從你的數組中選擇文本字符串 - 這也應該在'changeText'中。不過,我會指出,StackOverflow不是要求人們爲您編寫代碼塊的地方。如果您不確定Objective-C和iOS SDK基礎知識,可以查看一些初學者教程。關於定時器,動畫/淡入淡出的文本和隨機字符串有很多信息 - 在SO和其他地方。 – ttarik 2014-10-01 01:07:44