0
如何使用UILabel
或UIButton
元素以及在某個設定的時間範圍內更改文本的最佳方法是什麼?比如3秒鐘的內容具有淡出動畫的字符串數組集合?使用時間和動畫從字符串數組中更改UILabel/UIButton文本
如何使用UILabel
或UIButton
元素以及在某個設定的時間範圍內更改文本的最佳方法是什麼?比如3秒鐘的內容具有淡出動畫的字符串數組集合?使用時間和動畫從字符串數組中更改UILabel/UIButton文本
使用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;
謝謝你的答案。 – Diamond 2014-09-30 23:24:15
@Diamond代碼進入定時器執行的函數。在我的例子中,它將被稱爲'changeText',所以你會聲明一個像' - (void)changeText {...}'方法' – ttarik 2014-09-30 23:55:10
對不起,我的意思是隻有動畫代碼應該被添加到'changeText'方法。加載視圖時應該啓動計時器('viewDidLoad')。我的代碼也不包括從你的數組中選擇文本字符串 - 這也應該在'changeText'中。不過,我會指出,StackOverflow不是要求人們爲您編寫代碼塊的地方。如果您不確定Objective-C和iOS SDK基礎知識,可以查看一些初學者教程。關於定時器,動畫/淡入淡出的文本和隨機字符串有很多信息 - 在SO和其他地方。 – ttarik 2014-10-01 01:07:44