Swift
let text = "用于管理内容的绘制有关的对象显示在一个滚动视图应该瓦片的内容的子视图,以便没有视图超过屏幕的大小。当用户在滚动滚动视图,这个对象应该添加和删除子视图是必要的。"
//创建NSMutableAttributedString
let attributesstring = NSMutableAttributedString.init(string: text)
//创建NSMutableParagraphStyle
let paraghStyle = NSMutableParagraphStyle()
//设置行距(同样着这里可以设置行号,间距,对其方式)
paraghStyle.linespacing = 10
//添加属性,设置行间距
attributesstring.addAttributes([NSParagraphStyleAttributeName : paraghStyle],range: NSMakeRange(0,text.characters.count))
label.attributedText = attributesstring
//设置换行模式
label.lineBreakMode = NSLineBreakMode.ByTruncatingTail
label.contentMode = UIViewContentMode.Top
//**把String转换成Nsstring,为了使用boundingRectWithSize方法计算实际行高**
let text: Nsstring = Nsstring(CString: text.cStringUsingEncoding(NSUTF8StringEncoding)!,encoding: NSUTF8StringEncoding)!
let attributes = [NSFontAttributeName:label.font]
//用Nsstring的boundingRectWithSize方法
let size = text.boundingRectWithSize(CGSizeMake(UIScreen.mainScreen().bounds.width - 60,CGFloat(MAXFLOAT)),options: NsstringDrawingOptions.UsesLineFragmentOrigin,attributes: attributes,context: nil).size
label.text = attributesstring.string
print(size)
OC
Nsstring *text = @"用于管理内容的绘制有关的对象显示在一个滚动视图应该瓦片的内容的子视图,以便没有视图超过屏幕的大小。当用户在滚动滚动视图,这个对象应该添加和删除子视图是必要的。";
NSMutableAttributedString *attibutesstring = [[NSMutableAttributedString alloc] initWithString:text];
NSMutableParagraphStyle *paraghStyle =[[NSMutableParagraphStyle alloc] init];
[paraghStyle setLinespacing:10];
[attibutesstring addAttribute:NSParagraphStyleAttributeName value:paraghStyle range:NSMakeRange(0,text.length)];
label.attributedText = attibutesstring;
label.lineBreakMode = NSLineBreakByTruncatingTail;
[label setContentMode:UIViewContentModetop];
NSDictionary *attribute = @{NSFontAttributeName:label.font,NSParagraphStyleAttributeName:paraghStyle};
//boundingRectWithSize取代了sizeWithFont方法
CGSize labelSize = [text boundingRectWithSize:size options: NsstringDrawingTruncatesLastVisibleLine |NsstringDrawingUsesLineFragmentOrigin | NsstringDrawingUsesFontLeading attributes:attribute context:nil].size;
NSLog(@"%@",NsstringFromCGSize(labelSize));
原文地址:https://www.jb51.cc/swift/323355.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。