0

我最近向对象添加了一个方法,该方法负责对我正在开发的游戏进行评分,以使用 NSNumberFormatter 返回一个字符串。我刚刚收到 的分数163,930,640,它以这种方式显示在一个地方。但在另一个地方,在文本标签上,它显示为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 以使用更大的帧进行初始化,但我不知道最大值是多少,所以我不知道合适的大小是多少。

我将如何适当调整其大小以适应未知大小?分数每秒更新 10 次,所以我不确定使用 sizeToFit 是否是正确的解决方案。我想因为我使用的是 textAlignmentCenter,并且标签在放置的位置居中,所以我可以增加大小。另一方面,我将添加一个功能,将标签移动到更严格​​的空间。无论如何,我真正想知道的是什么触发了省略号。

我使用的格式是NSNumberFormatterDecimalStyle.

4

1 回答 1

1

这是一个UILabel lineBreakMode问题,而不是一个NSNumberFormatter问题。文本被截断,因为您的标签不够大,无法显示整个文本。使您的标签更大或字体更小。

于 2013-07-31T15:11:13.540 回答