2013-07-30 2 views
0

Недавно я добавил метод к объекту, который заботится о подсчете в игру, над которой я работаю, чтобы вернуть строку, используя NSNumberFormatter. Я только что получил оценку 163,930,640, и он отображается таким образом в одном месте. Но в другом месте, на текстовой метке, отображается как 163,930,6.... Я уверен, что все цифры были отображены во время активного игрового процесса, но он переключился на получение elipsis, когда он переставал быть обновленным. Вот как я создаю ярлык:Что такое 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, а метка сосредоточена там, где она размещена, я мог бы просто увеличить размер. С другой стороны, я добавлю функцию, чтобы переместить ярлык в пространство, которое является более ограничительным. Во всяком случае, то, что я действительно хочу знать, это то, что вызывает эллипсис.

Формат, который я использую, - NSNumberFormatterDecimalStyle.

+0

Это не проблема 'NSNumberFormatter', а проблема' lineBreakMode' 'UILabel'. Либо сделайте ярлык больше, либо уменьшите шрифт. – danielbeard

+0

Спасибо. Я думаю, что я установил свойство 'adjustsFontSizeToFitWidth' и' numberOfLines' равным 1. Я также немного увеличу ширину. Спасибо, что направили меня на 'UILabel', а не на' NSNumberFormatter'. Я лаял неправильное дерево. Если вы ответите, я дам вам кредит. –

+0

Добавлено как ответ. – danielbeard

ответ

1

Это вопрос UILabellineBreakMode, а не вопрос NSNumberFormatter. Текст усекается, потому что ваш ярлык недостаточно велик, чтобы отобразить весь текст. Либо сделайте ярлык больше, либо уменьшите шрифт.