我有一个UIView
含有两个UILabels
,以显示字符串。
首先UILabel
有固定的大小,如果绳子太长,容纳不下UILabel
,我想在第一个中显示最大字符数UILabel
,并在第二个中显示字符串的其余部分UILabel
.
但要做到这一点,我必须知道第一个中显示的字符串的确切部分UILabel
,由于字符串和换行符的随机性,这并不容易。
那么,有没有办法让第一个中显示的文本UILabel
,没有字符串的截断部分?
if ([_infoMedia.description length] > 270) {
NSRange labelLimit = [_infoMedia.description rangeOfString:@" " options:NSCaseInsensitiveSearch range:NSMakeRange(270, (_infoMedia.description.length - 270))];
_descTop.text = [_infoMedia.description substringToIndex:labelLimit.location];
_descBottom.text = [_infoMedia.description substringFromIndex:(labelLimit.location+1)];
} else {
_descTop.text = _infoMedia.description;
_descBottom.text = @"";
}
好吧,这是一个迟到的答案,但也许它可以帮助某人。上面的代码大致是我在我的应用程序中使用的解决方案。
_descTop 是我的第一个标签,_descBottom 是第二个标签。 270 是一个常数,相当于略小于我的第一个标签 _descTop 中显示的平均最大字符数。我手动计算了它,尝试了许多不同的字符串,也许有更好的方法可以做到这一点,但这效果还不错。
如果我要显示的字符串 (_infoMedia.description) 大于 270 个字符,则在 270 个字符限制的情况下,我将隔离前 270 个字符加上字符串中下一个单词的末尾(通过搜索下一个空格)会在单词中间切断字符串。然后我将字符串的第一部分放入第一个标签中,将第二部分放入第二个标签中。
如果没有,我只将字符串的全局性放在第一个标签中。
我知道这是一个蹩脚的解决方案,但它确实有效,而且我没有找到更好的方法来做到这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)