boundingRectWithSize 寬度問題

boundingRectWithSize 指定寬度,計算高度。

    NSString *text = @"收到翻到了師傅的說法,擴大說法打三等獎撒大聲但是,俯瞰風(fēng)景阿薩法上課地卡薩丁撒。";
//    NSString *text = @"11111111111111111111111111111111111111111111111111111111111111111"; 
    UIFont *font = [UIFont systemFontOfSize:16];
    NSAttributedString *attriText = [[NSAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName: font}];
    
    CGRect rect = [attriText boundingRectWithSize:CGSizeMake(223, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading context:nil];
    NSLog(@"%@", NSStringFromCGRect(rect));
    
    CGRect rect1 = [text boundingRectWithSize:CGSizeMake(223, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName: font} context:nil];
    NSLog(@"%@", NSStringFromCGRect(rect1));
    
    UILabel *contentLabel = [[UILabel alloc] initWithFrame:CGRectZero];
    contentLabel.font = font;
    contentLabel.text = text;
    contentLabel.numberOfLines = 0;
    contentLabel.textAlignment = NSTextAlignmentLeft;
    CGSize sizeToFit = [contentLabel sizeThatFits:CGSizeMake(223, MAXFLOAT)];
    NSLog(@"%@", NSStringFromCGSize(sizeToFit));

第一個打印:

2022-08-22 23:21:40.067382+0800 PodDemo[17825:431803] {{0, 0}, {212.15999999999997, 76.375}}
2022-08-22 23:21:40.067693+0800 PodDemo[17825:431803] {{0, 0}, {212.15999999999997, 76.375}}
2022-08-22 23:21:40.068116+0800 PodDemo[17825:431803] {212.33333333333334, 76.666666666666671}

第二個打?。?/p>

2022-08-22 23:24:34.479876+0800 PodDemo[17892:434661] {{0, 0}, {220.390625, 57.28125}}
2022-08-22 23:24:34.480291+0800 PodDemo[17892:434661] {{0, 0}, {220.390625, 57.28125}}
2022-08-22 23:24:34.480799+0800 PodDemo[17892:434661] {220.66666666666666, 57.333333333333336}

計算出來的矩形是個緊湊的矩形。并且還可以發(fā)現(xiàn)即使文本發(fā)生換行,它的寬度也不會等于指定的寬度,只會小于指定寬度,有時候差指定寬度10-20個pt,在UI上顯示會有瑕疵,貌似沒有好的解決辦法,因為即使等于指定寬度,但是因為剩余的空間放不下一個字符還是會換行空出。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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