日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ios html高度自适应,iOS UILabel高度自适应终结篇

發布時間:2024/7/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ios html高度自适应,iOS UILabel高度自适应终结篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

釋放雙眼,帶上耳機,聽聽看~!

網上大部分的boundingRectWithSize和sizeWithFont 計算出來的寬高在某些有特殊情況下(如鏈接中有n等等)計算出來的還是有偏差不準,此時用NSAttributedString和label的attributedText計算會迎刃而解

1.給model的.h文件添加一個NSAttributedString屬性

/**?? ?帶有屬性的(特殊文字會高亮顯示顯示表情) */

@property (nonatomic, copy) NSAttributedString *attributedText;

2..m重寫text的set方法

//重寫set

- (void)setMessageStr:(NSString *)messageStr

{

_messageStr = messageStr;

//計算出attributedText

NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:messageStr];

[attrString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:16] range:NSMakeRange(0, messageStr.length)];

_attributedText = attrString;

}

3.cell.m文件

//用attributedText解決有時高度計算不準的bug

self.contentL.attributedText = privateLetterMyModel.attributedText;

//最終計算出來的準確的size

CGSize frame = [self.contentL.attributedText boundingRectWithSize:CGSizeMake(ScreenWidth - 120, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin context:nil].size;

4.viewController中計算cell高度

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

TestModel *model = self.dataArr[indexPath.row];

CGSize frame = [CalculateSize sizeForNoticeTitle:model.messageStr font:[UIFont systemFontOfSize:16] maxW:? ScreenWidth - 120];

CGSize frame = [model.attributedText boundingRectWithSize:CGSizeMake(ScreenWidth - 120, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin context:nil].size;

return frame.height ;

}

5.從服務器用mdel.text獲取數據(以為重寫了setText方法所以會自動獲取attributedText)

總結

以上是生活随笔為你收集整理的ios html高度自适应,iOS UILabel高度自适应终结篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。