2015-09-17 29 views
3

我有UILabel其中int值显示,我希望如果值是1000像1000那么标签应该显示2000和以后的1k和2k。这怎么能实现?UILabel显示1k为int值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 您可以通过一个setter来扩展UILabel,以便进行格式设置并设置合适的字符串值。

3rd 您继承UILabel并为int值添加setter。这样做的格式并设置适当的字符串。 扩展是少一点工作,但子类允许覆盖常规setter,以便您可以抛出异常或任何你想要的。

这三者有一个共同点:您必须以编程方式进行格式设置。 (int除以1000,然后使用常规字符串格式)

扩展或子类化UILabel使解决方案可重用。