- 首先來看單行文本的問題:對(duì)于單行文本來說,計(jì)算CGSize就比較簡(jiǎn)單了,這里直接上代碼了,如下:
NSString *content = @"歡迎來到北京";
CGSize size =[content sizeWithAttributes:@{NSFontAttributeName:_label.font}];
這個(gè)方法要特別注意,就是Label的字體要在添加視圖之前就設(shè)置好,如果在這個(gè)方法里編輯字體大小,尺寸會(huì)有偏差,這點(diǎn)沒查到是什么原因,希望各位解答一下,謝謝。
- 最后來看多行文本的顯示:
首先UILabel的numberOfLines設(shè)置為0,其次通過
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context
方法來計(jì)算CGSize,具體代碼如下:
UILabel *titleLabel = [UILabel new];
titleLabel.font = [UIFont systemFontOfSize:14];
NSString *titleContent = @"親,歡迎您通過以下方式與我們的營銷顧問取得聯(lián)系,交流您再營銷推廣工作中遇到的問題,營銷顧問將免費(fèi)為您提供咨詢服務(wù)。";
titleLabel.text = titleContent;
titleLabel.numberOfLines = 0;//多行顯示,計(jì)算高度
titleLabel.textColor = [UIColor lightGrayColor];
CGSize titleSize = [titleContent boundingRectWithSize:CGSizeMake(kScreen_Width, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14]} context:nil].size;
titleLabel.size = titleSize;
titleLabel.x = 0;
titleLabel.y = 0;
[self.view addSubview:titleLabel];