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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

uilabel 自行撑开高度_UILabel文本高度计算的那些事儿

發布時間:2023/12/15 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 uilabel 自行撑开高度_UILabel文本高度计算的那些事儿 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 計算文本在一行高度內的寬度

// 段落樣式

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];

paragraphStyle.lineSpacing = 6.0;

// 清除掉換行符(或者還要清除空白符,這個看自己需求)

// 要處理掉換行符,否則得不到正確的高度

NSString *intro = [self.columnDict.head.intro copy]; // 這個數據就是文本

intro = [intro stringByReplacingOccurrencesOfString:@"\r" withString:@""];

intro = [intro stringByReplacingOccurrencesOfString:@"\n" withString:@""];

CGRect introRect = [intro boundingRectWithSize:CGSizeMake(CGFLOAT_MAX, 20)

options:0 attributes:@{

NSFontAttributeName:font(14),

NSParagraphStyleAttributeName:paragraphStyle

} context:nil];

CGFloat width = introRect.size.width;

// 如果width是小數,小數部分的寬度不會被渲染,不夠一個像素,所以最好向上取整

width = ceil(width);

boundingRectWithSize的第一個參數是CGSize. 一般會設置寬度固定,高度CGFLOAT_MAX來獲取在這種顯示寬度內的文本高度;或者設置寬度CGFLOAT_MAX,高度固定,來獲取某個高度內的文本寬度。比如上邊的一行高度內,文本有多長

2. 固定寬度,行數的文本高度(沒有設置行間距的情況下)

UILabel *label = [[UILabel alloc] init];

label.numberOfLines = 2;

label.text = self.columnDict.head.intro;

[label sizeToFit];

CGFloat height = label.bounds.size.height;

利用一個UILabel對象,來獲取渲染后的文本size,高度。

假設固定行數為2行,如果文本內容比較多,就可以直接用下邊的fontLineHeight * 2來設置高度(歡迎高手指正)

3. 固定寬度,行數的文本高度(有設置行間距的情況下)

CGFloat fontLineHeight = _descLabel.font.lineHeight; // 不同系統,字體下高度會和字號大小不同

// 2行,行間距6

CGFloat height = fontLineHeight * 2 + 6;

// 1行,行間距6

CGFloat height = fontLineHeight + 6;

以上兩種情況,假設一開始設定高度為2行,但是文本只有一行的時候,那么就直接使用fontLineHeight這個高度來設置Label的高度

4. 固定寬度,純粹獲取文本高度

CGRect introRect = [intro boundingRectWithSize:CGSizeMake(kScreenWidth, CGFLOAT_MAX)

options:0 attributes:@{

NSFontAttributeName:font(14),

NSParagraphStyleAttributeName:paragraphStyle

} context:nil];

CGFloat height = introRect.size.height;

kScreenWidth是一個獲取屏幕寬度的宏定義

boundingRectWithSize方法介紹:

size

限制最大寬高, 雖然是自適應, 但是需要限制最大的寬度和高度

options

一個枚舉, 繪制自定義方式字符串的選項,可以互相組合。例如:

NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading

enum {

NSStringDrawingTruncatesLastVisibleLine = 1 << 5,

NSStringDrawingUsesLineFragmentOrigin = 1 << 0,

NSStringDrawingUsesFontLeading = 1 << 1,

NSStringDrawingUsesDeviceMetrics = 1 << 3,

};typedef NSInteger NSStringDrawingOptions;

NSStringDrawingTruncatesLastVisibleLine :

如果文本內容超出指定的矩形限制,文本將被截去并在最后一個字符后加上省略號 . 如果三選項沒有選擇, 忽略此選項

NSStringDrawingUsesLineFragmentOrigin :

整個文本將以每行組成的矩形為單位計算整個文本的尺寸

NSStringDrawingUsesFontLeading :

以字體間的行距(leading,行距:從一行文字的底部到另一行文字底部的間距。)來計算高度

NSStringDrawingUsesDeviceMetrics :

計算布局時使用圖像符號邊界, 而不是排版的邊界

attributes

應用于字符串的文本樣式字典屬性

context

控制如何調整字間距和縮放。對象包含的信息將用于文本繪制。該參數可為 nil

返回值

返回一個矩形CGRect, 這個矩形為文字所占的矩形

總結

以上是生活随笔為你收集整理的uilabel 自行撑开高度_UILabel文本高度计算的那些事儿的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 久久无码性爱视频 | 亚洲成人av免费 | 精品人伦一区二区 | 久热中文字幕 | 亚洲妇女无套内射精 | 久久久久久av无码免费看大片 | 97视频免费 | 噜噜噜噜私人影院 | 国产激情一区二区三区在线观看 | 老女人性视频 | 国产成人自拍一区 | 丰满的女人性猛交 | 懂色av懂色av粉嫩av分享吧 | 亚洲女人天堂色在线7777 | 欧美日韩中文字幕在线视频 | 欧美日韩在线视频一区二区 | 久青草影院 | 北条麻妃99精品青青久久 | 香蕉av一区二区 | 国产1区在线| 中文亚洲av片不卡在线观看 | 三级免费看 | 精品国产乱子伦 | 久视频在线观看 | 欧美日韩激情视频 | 国产在线www | 欧美性xxxxx极品娇小 | 天天干天天弄 | 中文字幕免费在线看线人动作大片 | 中文字幕在线观看国产 | 国产精品久久9 | 娇小的粉嫩xxx极品 国产精品人人爽人人爽 | 成人a在线观看 | 99精品一级欧美片免费播放 | 美女黄站| 国产成人高清视频 | 久久青青草原亚洲av无码麻豆 | 鲁一鲁一鲁一鲁一av | 青青操在线观看 | 女同互舔视频 | 久久女同 | 国产精品欧美激情 | 精品无码人妻少妇久久久久久 | 美足av电影| 色窝av | 精品国产欧美 | 金8天国av | 欧美国产日韩在线视频 | 久久亚洲一区二区三区四区五区 | 亚洲天堂精品在线 | 久久久一区二区三区四区 | 国产精品呻吟久久 | 国产在视频线精品视频 | 色屋视频| 呦女精品 | 亚洲av久久久噜噜噜噜 | 国产美女在线看 | 成人av在线网| 精品国产18久久久久久 | 99久久精品国产一区二区三区 | av三级 | 少妇99| 亚洲射色 | 免费在线一区二区三区 | 精品国产一区在线观看 | 亚洲久久久久久久 | 伊人avav | 国产精自产拍久久久久久蜜 | 亚洲国产mv | 久久亚洲激情 | 奇米影视第四色7777 | 国产美女三级无套内谢 | 日本韩国欧美一区二区三区 | 久久深夜 | 精品国产伦一区二区三区免费 | 91精品久久久久久久久久入口 | 国产一级二级 | 天天舔天天射天天干 | 亚洲爆乳无码一区二区三区 | 可以看av的网站 | 99久久久精品免费观看国产 | 人妻少妇偷人精品久久久任期 | 国产偷人视频 | 中文字幕一区二 | av毛片在线 | 日韩成人午夜电影 | 98精品视频 | 免费大片av| 杨贵妃颤抖双乳呻吟求欢小说 | 欧美丰满老妇性猛交 | av色图片 | 精品免费看| 欧美中字 | 小镇姑娘国语版在线观看免费 | 男女乱淫| 三级网站免费看 | 性欢交69国产精品 | 91精品久久久久久久久中文字幕 | 国产精品久久久久久久成人午夜 |