2014-02-22 15 views
0

我想動畫化UILabel標題的變化,即使標題的字符串與前一個相同。 我的代碼:Animate UIlabel設置標題,即使我設置相同的字符串

[self.firstletterbutton setTitle:goodletter forState:UIControlStateNormal]; 
       [self.secondletterbutton setTitle:badletter1 forState:UIControlStateNormal]; 
       [self.thirdletterbutton setTitle:badletter3 forState:UIControlStateNormal]; 

如果我改變一個UIButton標題它與「閃光」的動畫。但是,如果我將標題更改爲相同的字符串,則不會生成動畫。我如何強制動畫?

+1

沒有在任何情況下,沒有動畫。 'title'不是一個可動畫的屬性。 – matt

+0

看看這個例子。 「基本的動畫標籤,不斷改變文本數組的文本」http://code4app.net/ios/Animate-Label/5212fd426803fa5227000001 – Sport

+0

我希望,有一個更簡單的解決方案。我只是不想爲此編寫龐大的代碼。 – user3341586

回答

1

在iOS7之前title沒有動畫,但在iOS 7中,它似乎在更改時添加了Flash動畫。一種可能性可能是首先將標題設置爲空白,然後再將其設置爲相同的值以模擬更改。如果這會導致不必要的閃爍,您也可以嘗試暫時向標題添加一些非打印字符(找到合適的人作爲練習讀者)。

或者,你可以嘗試做一個完全不同的過渡,例如,喜歡的東西:

[UIView transitionWithView:self.firstletterbutton duration:0.3 options:UIViewAnimationOptionTransitionFlipFromBottom animations:^{ 
    [self.firstletterbutton setTitle:goodletter forState:UIControlStateNormal]; 
} completion:nil]; 
+0

不是。如果您更改一個UIButton標題,並且其代碼具有動畫效果(如果使用「flash」),則默認爲默認值。但是,如果我將標題更改爲相同的(因爲隨機函數給出了相同的文本,它沒有問題),它不是動畫。這個標題沒有任何閃光。 – user3341586

+0

@ user3341586你是對的,它已在iOS 7中更改。答案已更新。 – Arkku

+0

我收到以下錯誤消息:對於selector'transitionWithView:duration:options:animations:'沒有認識類方法。我的代碼:[[UIView transitionWithView:self.firstletterbutton duration:0.3 options:UIViewAnimationOptionTransitionFlipFromBottom animations:^ {self.firstletterbutton setTitle:jobetu forState:UIControlStateNormal]; completion:nil;}]在我問起之前,我已經想好了你的第一個解決方案,但它不起作用。變化是快速的,沒有任何閃光/閃爍。 – user3341586