У меня есть UILabel
, в котором показано значение int
. Я хочу, чтобы значение было в тысячах, таких как 1000, тогда метка должна показывать 1k и 2k для 2000 и далее. Как это можно достичь?UILabel для отображения 1k для int value 1000 и 2k для 2000 и т. Д.
ответ
Как насчет этого?
int myNum = 12345;
NSLog(@"%.1f K", myNum/1000);
Это не плохо для самообразования. но создает пробел между номером и K. –
Если вы хотите округлить его до первой десятичной точки. вы можете использовать: 'round (10 * myNum)/10' –
@HermannKlecker:' создает пробел между числом и K', вы говорите о пространстве? –
Существует два способа, или три.
1st Вы делаете это программно, прежде чем устанавливать значение в метке.
2nd Вы расширите UILabel установщиком для значения int, которое форматирует и устанавливает соответствующее строковое значение.
3rd Подкласс UILabel и добавление setter для значений int. Это делает форматирование и устанавливает соответствующую строку. Расширение - это немного меньше работы, но подклассификация позволяет перезаписать обычный сеттер, чтобы вы могли выбросить исключение или все, что захотите.
Все три имеют одну общую черту: вам нужно будет делать форматирование программно. (int деление на 1000, а затем использовать обычный формат строки)
Расширение или подклассы UILabel
делает решение многоразовым.
@Wain: Я пытался использовать NSNumberFormatter, но напрасно. –
что вы хотите за 2345? 2,3 K или 2K или 2,345K? –
@MugheesMusaddiq: опубликуйте то, что вы пробовали ... –