如果有办法检测UILabel
是否有换行符,我想在填写UITableViewCell
的{{1}}中包含的多个UITableView
后检测到。因为我喜欢动态设置它的帧。我需要这样做,因为我有一个UILabel
在另一个之上,而另一个之下的UILabel必须与每一行的距离相同。
我只找到UILabel
的属性numberOfLines
,我意识到根据设备(iPhone 6,6 Plus和其他设备),UILabel
的宽度会发生变化。所以它直接影响到UITableViewCell
空间。我可以计算UILabel
的长度,并根据它,根据这个长度更改下面UILabel
的框架,但我不喜欢这样。
任何帮助?
由于
答案 0 :(得分:1)
您无需检测换行符即可执行此操作。你应该使用自动布局。您应该在顶部标签的底部和底部标签的顶部之间设置一个垂直间距约束 - 无论标签扩展到什么尺寸,都会给它们一个固定的间距。
答案 1 :(得分:1)
我会尝试用给定的字体测试给定文本的高度。通过这种方式,您将知道文本占用了多少行(当然,如果有换行符但您不知道)。首先,您必须计算文本的大小:
CGRect rect = [yourStrign boundingRectWithSize:CGSizeMake(yourLabelWidth, MAXFLOAT)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName: yourFont}
context:nil];
现在,要知道你需要进行分割的行数:
return ceil(rect.size.height / yourFont.lineHeight);