2015-09-17 7 views
3

У меня есть UILabel, в котором показано значение int. Я хочу, чтобы значение было в тысячах, таких как 1000, тогда метка должна показывать 1k и 2k для 2000 и далее. Как это можно достичь?UILabel для отображения 1k для int value 1000 и 2k для 2000 и т. Д.

+0

@Wain: Я пытался использовать NSNumberFormatter, но напрасно. –

+0

что вы хотите за 2345? 2,3 K или 2K или 2,345K? –

+1

@MugheesMusaddiq: опубликуйте то, что вы пробовали ... –

ответ

6

Как насчет этого?

int myNum = 12345; 
NSLog(@"%.1f K", myNum/1000); 
+0

Это не плохо для самообразования. но создает пробел между номером и K. –

+0

Если вы хотите округлить его до первой десятичной точки. вы можете использовать: 'round (10 * myNum)/10' –

+1

@HermannKlecker:' создает пробел между числом и K', вы говорите о пространстве? –

0

Существует два способа, или три.

1st Вы делаете это программно, прежде чем устанавливать значение в метке.

2nd Вы расширите UILabel установщиком для значения int, которое форматирует и устанавливает соответствующее строковое значение.

3rd Подкласс UILabel и добавление setter для значений int. Это делает форматирование и устанавливает соответствующую строку. Расширение - это немного меньше работы, но подклассификация позволяет перезаписать обычный сеттер, чтобы вы могли выбросить исключение или все, что захотите.

Все три имеют одну общую черту: вам нужно будет делать форматирование программно. (int деление на 1000, а затем использовать обычный формат строки)

Расширение или подклассы UILabel делает решение многоразовым.