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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java精确测量文本高度_基于文本精确计算UITableViewCell的高度

發布時間:2023/11/30 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java精确测量文本高度_基于文本精确计算UITableViewCell的高度 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我正在開發一個ios應用程序,并使用autolayout我正在嘗試創建一個具有不同行高的表視圖 .

原型單元的布局如下:

我有一個主單元格(黑色)里面有一個UIView(紅色),里面有一個UILabel(藍色)

我添加的Autolayout約束如圖所示:

The UIView has the following Constraints:

80到單元格的左邊緣

從單元格的右邊緣

20

從單元格的上邊緣

15

從單元格的底部邊緣

15

The UILabel has the following Constraints:

20到UIView的左邊緣

從UIView的右邊緣

15

從UIView的上邊緣

10

從UIView的下邊緣

10

我需要UILabel根據其內部的文本大小在高度上動態 . 為此,我做了以下事情:

將UILabel的行數設置為0

將字體設置為Helvetica Neueu,大小為15(在界面構建器中)

將Lines Break設置為"Word wrap"(在界面構建器中)

在視圖Controller中,我實現了以下內容:

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

{

//get the item

ListItem *item = (ListItem*) self.items[indexPath.row];

//calculate the label size based on the item title that we will display

CGSize textSize = [item.title sizeWithFont:[UIFont fontWithName:@"HelveticaNeue" size:15.0] constrainedToSize:CGSizeMake(tableView.frame.size.width - 135.f, 9999.f) lineBreakMode:NSLineBreakByWordWrapping];

//return the height + the 50 to accomodate with the layout

return textSize.height + 50.f;

}

基本上我正在做的是獲取我需要顯示的文本(item.title),我調用 sizeWithFont 來計算我需要多少空間用于該標簽并返回它 .

在sizeWithFont方法中,我傳遞我用于 Headers [UIFont fontWithName:@"HelveticaNeue" size:15.0] 的字體,然后根據圖片約束約束計算的大小,獲取tableView的寬度并減去邊距以獲得標簽

對于寬度:我減去80(對于UIView左)和20(對于標簽左)和15(對于標簽右)和20對于UIView右)

對于高度我放9999,因為我不需要約束它來進行計算 .

在我得到所需標簽的大小后,我返回了確切的高度加上標簽的垂直邊距為15,10,10和15(總計= 50) return textSize.height + 50.f;

The problem:

雖然我正在進行精確計算,但在運行應用程序時,它并非100%精確 . 雖然大多數情況下我得到一個精確的高度,但在某些情況下(特別是當我們在標簽中有例如3行,而第3行有一個單詞時),單元格的高度僅對應于2行并且切割第三行一 . 通過試驗和錯誤增加高度可能是可能的,但它也會影響顯示良好的細胞的高度 .

所以我的問題是,我的計算錯誤是什么?當使用autolayout時,有沒有辦法根據標簽中的文本為單元格設置動態高度?

謝謝

總結

以上是生活随笔為你收集整理的java精确测量文本高度_基于文本精确计算UITableViewCell的高度的全部內容,希望文章能夠幫你解決所遇到的問題。

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