我還有很長的文字,我需要在一行中顯示。文字太長,無法放入UITextField對象。我正在尋找一種從右向左動畫文本(或uitextfield對象本身)的方法。我曾在一些iPhone應用程序中看到過,但不知道如何去做。動畫文本到左的UITextField
的想法是,如果文本是大適合,慢慢地滾動它向左使用戶可以讀取它。
不知道如何可以做到這一點?
謝謝!
我還有很長的文字,我需要在一行中顯示。文字太長,無法放入UITextField對象。我正在尋找一種從右向左動畫文本(或uitextfield對象本身)的方法。我曾在一些iPhone應用程序中看到過,但不知道如何去做。動畫文本到左的UITextField
的想法是,如果文本是大適合,慢慢地滾動它向左使用戶可以讀取它。
不知道如何可以做到這一點?
謝謝!
你可以使用像布萊恩·斯托蒙特的AutoScrollLabel的解決方案有更多的討論here。
AutoScrollLabel *marquee = [[AutoScrollLabel alloc] initWithFrame:marqueeFrame];
[view addSubview:marquee];
[marquee setScrollSpeed:16.8];
marquee.text = @"My long text";
[marquee readjustLabels];
[marquee scroll]; //This line is the one that actually starts the scrolling
這是很老了,但是我現在在一家船運應用程序中使用它:
包括你需要做大致如下之後。
切向相關,但不是必需的,這是動畫文本類AUIAnimatedText它允許你喜歡動畫的大小和彩色文本的其他屬性。
視圖中的UIView beginAnimations這正是我一直在尋找。謝謝! – bneupaane 2012-04-13 17:49:02
我還沒有做過這樣的事,但我認爲你可以做到這一點壓倒一切的textRectForBounds:法(UITextField documentation),並使用的NSTimer。在計時器你應該叫setNeedsDisplay文本字段的方法。
有一個解決方案,但不是我的最愛.. 如果你有AutoScrollLabel * marqueeLabel在你的viewController然後設置其文本的viewController的viewWillAppear中的方法: -
marqueeLabel.text = marqueeLabel.text;
我沒有發現了除此之外的其他事物 此外,如果您有這個問題,然後嘗試在你的iPhone/iPod使用多任務處理,當你將再次打開應用程序..你不會找到marqueeLabel動畫..對於在AutoScrollLabel類commonInit添加語句: -
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(readjustLabels) name:UIApplicationWillEnterForegroundNotification object:nil];
,並在該類中的dealloc多加一個聲明
[[NSNotificationCenter defaultCenter] removeObserver:self];
現在有一個下拉更換爲UILabel
將照顧這:
https://github.com/cbpowell/MarqueeLabel
概述:MarqueeLabel是當標籤的文本跨出可用寬度一個UILabel子類,增加了滾動字幕效果。標籤的滾動方向和速度/速率也可以被指定。所有標準的UILabel屬性(它的意義)都可以在MarqueeLabel中使用,它的行爲就像UILabel一樣。
我不是MarqueeLabel的作者或任何與作者有關的作者。
查找下動畫觀點或動畫與塊 – 2012-04-13 05:48:43