2009-01-10 111 views
10

對,我試圖獲得一個帶有文本的標籤(顯然已經完成),它在屏幕上滾動。在屏幕上滾動的可調整大小的UILabel

輸入到標籤的文本由UITextField和UIButton完成。這更新很好。

但我試圖讓UILabel根據文本輸入的大小來調整大小,以便整個屏幕上大量文本滾動。

這是目前的滾動標籤的代碼我有:

[lblMessage setText: txtEnter.text]; 

CABasicAnimation *scrollText; 

scrollText=[CABasicAnimation animationWithKeyPath:@"position.x"]; 
scrollText.duration = 3.0; 
scrollText.repeatCount = 10000; 
scrollText.autoreverses = NO; 
scrollText.fromValue = [NSNumber numberWithFloat:500]; 
scrollText.toValue = [NSNumber numberWithFloat:-120.0]; 

[[lblMessage layer] addAnimation:scrollText forKey:@"scrollTextKey"]; 

的問題是,有時是開始在屏幕中間滾動,有時消失之前,它已經完全acrosss了。

由於標籤只有一種尺寸,所以文字也會縮短..我不知道如何改變這種情況。

在此先感謝。

大教堂

回答

7

我相信類似的東西the solution for this question將爲這種情況下工作。

您可以將UILabel嵌入到UIScrollView中,將UIScrollView設置爲您希望一次顯示在屏幕上的最大標籤大小。 UIScrollView需要使用其showsHorizo​​ntalScrollIndicator和showsVerticalScrollIndicator屬性關閉其滾動指示器。在文字的變化,你可以做到以下幾點:

[lblMessage setText: txtEnter.text]; 
[lblMessage sizeToFit]; 
scrollView.contentSize = lblMessage.frame.size; 

接着在上面鏈接的問題描述,與框架平移動畫代碼進行平移,以成爲最右側的的UILabel的。這會導致文本在標籤上以恆定速率滾動。如果您希望標籤回滾到開頭,則可以在動畫塊的開頭使用UIView setAnimationRepeatAutoreverses:和setAnimationRepeatCount:方法。

2

標籤大小工作非常感謝!

現在,我已經把標籤放入scrollview中,我已經看到了..但我現在不確定要添加到那個確切的動畫。我嘗試了一些你給我的鏈接,但他們沒有工作。

編輯:沒關係,我已經掌握了所有現在的工作。

CGPointMake(x,x)是我需要的contentOffset。