2012-04-13 12 views
2

長いテキストを1行に表示する必要があります。テキストが長すぎて、UITextFieldオブジェクトに収まりません。私は右から左にテキスト(または、uitextfieldオブジェクト自体)をアニメーション化する方法を探しています。私はいくつかのiPhoneアプリでそれを見ているが、それを行う方法を知らない。UITextFieldの右から左にテキストをアニメ化

テキストが大きければ、ゆっくりと左にスクロールして、ユーザーが読むことができるようにします。

どのようにこれを達成できますか?

ありがとうございました!

+0

UIViewでビューのアニメーション化またはアニメーション化ビューのブロック –

答えて

2

Brian Stormontの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は、サイズや色などのテキストのその他のプロパティをアニメートすることができます。

+0

を探してくださいこれはまさに私が探していたものです。ありがとうございました! – bneupaane

0

私はこのようなものを行っていないが、私はあなたがこのオーバーライドtextRectForBounds行うことができると思います。方法(UITextField documentationを)とNSTimerを使用。タイマーでは、テキストフィールドのsetNeedsDisplayメソッドを呼び出すだけです。

0

一つの解決策ではなく、本当に私のfav .. はあなたのViewControllerにAutoScrollLabel * marqueeLabelを持っているかのように、その後のViewControllerのviewWillAppearメソッドでそのテキストを設定があります: - 私は持っていない

marqueeLabel.text = marqueeLabel.text; 

それ以外は何も見つかりませんでした。 また、あなたがその問題を抱えている場合は、iphone/ipodでマルチタスクを使用してみてください。アプリケーションを再び開くときに、marqueeLabelのアニメーションが見つかりません.. commonScrollLabelクラスのcommonInitのステートメントを追加してください: -

https://github.com/cbpowell/MarqueeLabel

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(readjustLabels) name:UIApplicationWillEnterForegroundNotification object:nil]; 

も、そのクラスのdeallocをして1つの以上のステートメントを追加しますが

[[NSNotificationCenter defaultCenter] removeObserver:self]; 
0

今のドロップイン置換UILabelため、このの世話をしますあります

概要:MarqueeLabelはUILabelサブクラスであるラベルのテキストが利用できる幅をoutgrowsときのスクロールマーキー効果が追加されます。ラベルのスクロール方向と速度/レートも指定できます。すべての標準UILabelプロパティ(意味があるところ)はMarqueeLabelで使用でき、UILabelのように動作します。

私はMarqueeLabelの著者ではありません。

関連する問題