iOS開發(fā)中UILabel單行、多行文本計(jì)算高度、寬度的技巧

  • 首先來看單行文本的問題:對(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];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容