如何找出截断的UILabel文本的宽度
我有UILabel,其中包含动态文本。有时文字太长而无法显示,因此自动截断。如何找出截断文本的可见部分的宽度?如何找出截断的UILabel文本的宽度
sizeThatFits返回未截断文本的长度,所以目前我只能检测到截断时间。需要知道多少可见,包括这三个点。有小费吗?
说明:当文本被截断时,它通常比UILabel宽度短。
机器人K是正确的。
如果我是你,我会做到以下几点:
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 24)];
label.text = @"this is some really long text that i want in a small label";
[view addSubview:label];
CGSize size = [label.text sizeWithFont:label.font constrainedToSize:label.frame.size
lineBreakMode:label.lineBreakMode];
这应该给你一个值小于200(考虑到受限的最大尺寸和截断法)。
我不明白为什么宽度会不同,UILabel的宽度,如果文本被截断。无论如何,您可以使用sizeWithFont:constrainedToSize:
来计算具有给定字体但限于“约束大小”的字符串的大小。
因为截短文本的宽度可能更小!不会问,如果它与UILabel宽度相同。字体大小固定为15,但会检查sizeWithFont是否会给sizeThatFits以外的东西。 – JOM 2010-10-11 06:20:01
UILabel宽度205,单排。 sizeThatFits是291,sizeWithFont:constrainedToSize是163,sizeWithFont:constrainedToSize:lineBreakMode是203,sizeWithFont:forWidth:lineBreakMode是203. Thanx用于指出“163”和“203”解决方案之间的区别! – JOM 2010-10-11 09:30:40
机器人K适合多行的情况,但我的问题是单行。你是提到lineBreakMode的人,此外它也是一个通用的解决方案。感谢名单! – JOM 2010-10-11 09:27:49