今天在写项目的时候遇到一个坑,计算cell高度的时候是英文的时候会出现高度不够的情况

代码是这么写的
let content = comment.content as NSString
let rect = content.boundingRectWithSize(
CGSizeMake(screenWidth - 50, CGFloat.max),
options: [.UsesLineFragmentOrigin, .UsesFontLeading],
attributes: [NSFontAttributeName: font13pt],
context: nil)
return rect.height + 55
网上查了boundingRectWithSize
各种问题也没能解决,最后想到了使用AutoLayout
实现cell
的自适应,iOS7
的方法这里就不说明了,iOS8
只需要一句代码
self.tableView.estimatedRowHeight = 80
不过需要注意的是AutoLayout
的设置,要让contentView
知道怎么撑开,所以需要设置上下边界的约束。之前代码:
self.contentView.addConstraints(
NSLayoutConstraint.constraintsWithVisualFormat(
"V:|-13-[nameLabel]-9-[contentLabel]",
options: NSLayoutFormatOptions(),
metrics: nil,
views: viewsDictionary))
需要加上下边界的约束
self.contentView.addConstraints(
NSLayoutConstraint.constraintsWithVisualFormat(
"V:|-13-[nameLabel]-9-[contentLabel]-10-|",
options: NSLayoutFormatOptions(),
metrics: nil,
views: viewsDictionary))

网友评论
P.S https://github.com/SnapKit/SnapKit