0

私は最近、NSNumberFormatter を使用して文字列を返すために取り組んでいるゲームのスコアリングを処理するメソッドをオブジェクトに追加しました。のスコアを受け取りました163,930,640。このように 1 か所に表示されます。しかし、別の場所のテキスト ラベルでは、 として表示され163,930,6...ます。アクティブなゲームプレイ中にすべての数字が表示されたと確信していますが、更新が停止すると省略記号に切り替わりました。ラベルの作成方法は次のとおりです。

self.scoreLabel = [[UILabel alloc] init];
self.scoreLabel.hidden = YES;
self.scoreLabel.text = @"0";
self.scoreLabel.frame = [self scoreFrame];
self.scoreLabel.textAlignment = NSTextAlignmentCenter;
self.scoreLabel.backgroundColor = [UIColor clearColor];
self.scoreLabel.font = [UIFont fontWithName:@"Marker Felt" size:36.0];
[self.scoreLabel setTextColor:[UIColor greenColor]];
[self.solutionBackgroundView addSubview:self.scoreLabel];

問題は、フレーム (表示されていない方法で 200 に設定) が小さすぎることでしょうか? より大きなフレームで初期化するように scoreFrame を変更することもできますが、最大値がどのくらいになるかがわからないため、適切なサイズがどのくらいになるかわかりません。

未知のサイズに対応するために適切なサイズにするにはどうすればよいですか? スコアは 1 秒間に 10 回更新されるため、sizeToFit を使用することが適切な解決策になるかどうかはわかりません。私は textAlignmentCenter を使用していて、ラベルが配置された場所の中央にあるので、サイズを大きくすることができたと思います。一方、ラベルをより制限されたスペースに移動する機能を追加します。いずれにせよ、私が本当に知りたいのは、省略を引き起こしているものです。

私が使用している形式はNSNumberFormatterDecimalStyle.

4

1 に答える 1

1

これはUILabel lineBreakMode問題ではなくNSNumberFormatter問題です。ラベルがテキスト全体を表示するのに十分な大きさでないため、テキストが切り詰められています。ラベルを大きくするか、フォントを小さくします。

于 2013-07-31T15:11:13.540 に答える