2013-07-30 40 views
0

我最近在對象中添加了一個方法,該方法負責對我正在使用NSNumberFormatter返回字符串的遊戲進行評分。我剛剛收到了163,930,640的分數,並且以這種方式顯示在一個地方。但在另一個地方,在文本標籤上,它顯示爲163,930,6...。我很確定所有的數字都是在主動遊戲中顯示的,但是當它停止更新時,它會切換到有省略號。下面是我如何創建標籤:什麼是NSNumberFormatter添加elipsis?

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,並且標籤放置在放置的位置,所以我可以增加尺寸。另一方面,我將添加一項功能,將標籤移動到更具限制性的空間中。無論如何,我真正想知道的是什麼觸發了elipsis。

我使用的格式是NSNumberFormatterDecimalStyle

+0

這不是'NSNumberFormatter'問題,而是'UILabel' lineBreakMode'問題。要麼讓標籤更大,要麼字體更小。 – danielbeard

+0

謝謝。我想我會將'adjustsFontSizeToFitWidth'屬性和'numberOfLines'設置爲1.我還將增加寬度。感謝您指導我使用'UILabel'而不是'NSNumberFormatter'。我正在吠叫錯誤的樹。如果你做出這個答案,我會給你信用。 –

+0

已添加爲答案。 – danielbeard

回答

1

這是一個UILabellineBreakMode問題,而不是NSNumberFormatter問題。文本被截斷,因爲您的標籤不夠大,無法顯示整個文本。要麼讓標籤更大,要麼字體更小。