问题如图,蓝色label 中的文字没有展示完全,后面还有“情。”
原因,我们使用masonry 布局的时候,宽度会有细微的误差,导致我们实际
添加的约束比我们期望的要小,就导致横向无法容下期望的文字宽度,导致无法展示完全
高度计算
添加约束
修复方法
使用frame 布局
- (void)layoutSubviews
{
[super layoutSubviews];
/*这里之所以使用frame 设置 descLabel的布局,是因为在使用maronry的时候,遇到过一个bug,
使用masonry 添加约束, descLabel 的宽度, 略小于 SCREEN_WIDTH - 60*rectScale()
导致我们计算高度使用的高度和实际展示的宽度不一致,就会造成UI问题
*/
if (!isBlankString(self.listBO.summary)) {
CGFloat sumHeight = heightForAttributeStringWithLabel(self.descLabel.attributedText, SCREEN_WIDTH - 60*rectScale(), appFont(15*rectScale(), NO));
CGFloat imagHeight = 0;
if (!isBlankString(self.listBO.pic)) {
self.descLabel.frame = CGRectMake(30 * PLUS_SCALE, CGRectGetMaxY(self.imageV.frame) + 10 * PLUS_SCALE, SCREEN_WIDTH - 60 * PLUS_SCALE, sumHeight);
} else {
self.descLabel.frame = CGRectMake(30 * PLUS_SCALE, CGRectGetMaxY(self.titleLabel.frame) + 10 * PLUS_SCALE, SCREEN_WIDTH - 60 * PLUS_SCALE, sumHeight);
}
} else {
self.descLabel.frame = CGRectMake(30 * PLUS_SCALE, CGRectGetMaxY(self.imageV.frame) + 10 * PLUS_SCALE, SCREEN_WIDTH - 60 * PLUS_SCALE, 0);
}
}
修复之后效果图