2009-07-13 31 views
3

我在我的UIView.I的頂部有一個標籤,我正在通過數組在定時器的幫助下在其上顯示一些消息。但是現在我希望這條消息以MARQUEE樣式顯示。我沒有得到任何啓動方式。任何源代碼,使用的方法,任何動畫風格,任何不同的方法。 在此先感謝如何將標語框添加到標籤

+1

是不是MARQUEE棄用?你不應該使用它。我相信你可以用JavaScript獲得相同的效果。 – 2009-07-13 10:06:31

回答

9

這裏有一個想法:

  • 設置clipsToBounds爲true UIView的,你的UILabel坐在
  • 然後開始UIViewAnimations塊(看看文檔如何使用它,它很簡單)
    • 創建它的框架設置的位置是封閉的UIView的邊界之外的新標籤
    • 設定一張標籤的位置在封閉的UIView的邊界之外的某個地方
    • 將下一個標籤的位置設置爲之前標籤以前的位置。
  • 提交動畫

這應該給你的一個標籤移動關閉屏幕和新的標籤移動屏幕上的滑動動畫。

您必須使用animationDuration屬性以及標籤和視圖的精確定位和大小屬性才能使它正確無誤,但它應該非常簡單。

4

我跟着你的想法,而我做了:

*我創建了一個容器視圖。

messageView = [[UIView alloc] initWithFrame:CGRectMake(27, 0, 235, 19)]; 
[messageView setClipsToBounds:YES];//With This you prevent the animation to be drawn outside the bounds. 

*然後,我創建了一個UILabel與要顯示的文字,並添加到我的容器視圖

lblTime = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 235, 19)]; 
[lblTime setBackgroundColor:[UIColor clearColor]]; 
[messageView addSubview:lblTime]; 

*最後我創造了這樣的功能:

- (void)sendNotification:(NSString*)txt{ 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:3.5]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionNone forView:messageView cache:YES]; 
    [lblTime setText:txt]; 
    [lblTime setTextAlignment:UITextAlignmentLeft]; 
    lblTime.frame = CGRectMake(260, 0, 258, 19); 
    [UIView commitAnimations]; 
}