![](https://images2015.cnblogs.com/blog/398888/201607/398888-20160719123603669-71721310.jpg)
计算出来的高度会少一行的高度,最后一行会显示不全。减掉padding会解决这个问题。
let padding = self.reviewText.textContainer.lineFragmentPadding let actualWidth = DishReviewViewController.fullWidth - padding * 2 var height = UXHelper.calculateHeightToFitAttributedString(reviewText, actualWidth) static func calculateHeightToFitAttributedString(content: NSAttributedString, CGFloat) -> CGFloat { return self.calculateSizeToFitAttributedString(content, width, height: CGFloat(FLT_MAX)).height } static func calculateSizeToFitAttributedString(content: NSAttributedString, CGFloat, height: CGFloat) -> CGSize { return content.boundingRectWithSize(CGSizeMake(width, height), options: [NSStringDrawingOptions.TruncatesLastVisibleLine, NSStringDrawingOptions.UsesLineFragmentOrigin], context:nil).size }