6

Objective-C には、「読み込み中」という UILabel があります。0.5 秒ごとに文字列に「.」が追加されます。ドットが 3 つになるまで、最初からやり直します。私が直面している問題は、文字列が中央にあり、各ドットが表示されると文字列がジャンプすることです。文字列がジャンプする理由は、UILabel が正しい空白をトリミングし続けるためです。

これは現在起こっていることの例です。

+------------+
|  Loading   |
+------------+
|  Loading.  |
+------------+
| Loading..  |
+------------+
| Loading... |
+------------+

そして、これが私がしたいことです。

+------------+
| Loading    |
+------------+
| Loading.   |
+------------+
| Loading..  |
+------------+
| Loading... |
+------------+

UILabel の幅を広げて左揃えにすることはオプションではありません。これはテキストで行う必要があります。

このリンクを見つけましたが、まだわかりません。

私が現在持っているのはこれです。

[NSString stringWithFormat:@"%-3.3s", [@"" UTF8String]];
[NSString stringWithFormat:@"%-3.3s", [@"." UTF8String]];
[NSString stringWithFormat:@"%-3.3s", [@".." UTF8String]];
@"...";
4

3 に答える 3

4

テキストがラベルで機能する方法は、トリミングなどの標準的な書式設定情報によって書式設定されます。ios に制御させたくない場合。attributedTextをプログラムで設定できます。これはフォーマットを通過しません。これに関するアップルのドキュメントは次のとおりです

attributedText ラベルによって表示されるスタイル付きテキスト。

@property(nonatomic,copy) NSAttributedString *attributedText 考察 このプロパティはデフォルトでは nil です。このプロパティに新しい値を割り当てると、テキスト プロパティの値も同じ文字列データに置き換えられますが、書式設定情報はありません。さらに、新しい値を割り当てると、font、textColor、およびその他のスタイル関連のプロパティの値が更新され、属性付き文字列の位置 0 から始まるスタイル情報が反映されます。

基本的に、uilabel の attributedtext を "Loading " に設定します。

于 2013-10-02T21:13:34.250 に答える
1

これを見てください

解決策は、末尾の可視文字を追加し、それらを透明に設定することです。

于 2014-03-20T01:46:07.217 に答える