/**
控制显示一行半的方法
@param originalContent 原内容
@param labelWidth label宽度
@return 展示的内容
*/
- (NSMutableAttributedString *)getSubContentWithOriginalContent:(NSMutableAttributedString *)originalContent andLabelWidth:(CGFloat)labelWidth{
NSAttributedString *subContent = nil;
CGFloat maxLength = labelWidth * 1.5;//设置字符串最大长度为一行半
CGFloat length = 0;
for(int i = 0; i < [originalContent length]; i++)
{
subContent = [originalContent attributedSubstringFromRange:NSMakeRange(i,1)];
// 计算宽度
CGSize size = [subContent boundingRectWithSize:CGSizeMake(MAXFLOAT, 0.0) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine context:nil].size;
length = length + size.width;
//此处截取maxLength,根据需求设置
if (length >= maxLength) {
NSMutableAttributedString *resultString = [[NSMutableAttributedString alloc] initWithAttributedString:[originalContent attributedSubstringFromRange:NSMakeRange(0, i)]];
NSAttributedString *att = [[NSAttributedString alloc] initWithString:@" ..." attributes:self.attributeStyle];
[resultString appendAttributedString:att];
return resultString;
}
}
return originalContent;
}
iOS 控制Label只显示一行半
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 一、前言 继上次本文本有行间距,当时交互有另一个需求,需要在文本最后一行省略符号放中间,只省略到最后一行的中间。如...
- 项目中遇见这个问题很蛋疼,有时候在4.4没问题,但是在7.0有问题。 也就是说有些版本会出现,有些不会。 网上的解...
- 今天写一个RecyclerView,高度却只有一行Item的高度,网上找了各种办法都解决不了,什么重写Layout...
- 下个月,你的住房公积金或将迎来调整。 一般来说,住房公积金是以上一年的7月1日至当年的6月30日为一个年度单位进行...