動態計算UITableviewcell高度

2022-08-14 05:39:11 字數 1559 閱讀 2838

**自:

在ios開發中,我們少不了和uitableview打交道,因為uitableview也是uikit中最複雜的乙個控制項了。在使用uitableview的過程中,uitableviewcell也是必不可少的,頁面列表形式的展示可謂是各種各樣,相信不少童鞋們也曾為複雜的頁面布局困惑過,其中比較難的也就數cell的高度自適應了,也就是說cell的高度是根據內容來動態計算的。

1.不使用autolayout的時候,計算cell的高度:

//返回cell的的高度

- (cgfloat)tableview:(uitableview *)tableview heightforrowatindexpath:(nsindexpath *)indexpath

//動態計算cell的高度

- (cgfloat)heightforrowwithmodel:(photoinfo *)photoinfo

/*根據傳過來的文字內容、字型大小、寬度和最大尺寸動態計算文字所占用的size

* text 文字內容

* fontsize 字型大小

* maxsize size(寬度,1000)

* return size (計算的size)

*/- (cgsize)labelautocalculaterectwith:(nsstring*)text fontsize:(cgfloat)fontsize maxsize:(cgsize)maxsize

; cgsize labelsize;

//如果是ios6.0

if (![text respondstoselector:@selector(boundingrectwithsize:options:attributes:context:)])

//如果系統為ios7.0

else

labelsize.height=ceil(labelsize.height);

labelsize.width=ceil(labelsize.width);

return labelsize;

}

2.使用autolayout,- (cgsize)systemlayoutsizefittingsize:(cgsize)targetsize這個方法就能搞定。不過,首先要在xib上布局cell。

//返回cell高度

- (cgfloat)tableview:(uitableview *)tableview heightforrowatindexpath:(nsindexpath *)indexpath

//動態計算cell的高度

- (cgfloat)heightforcell:(systemmsginfo *)data

效果圖:

UITableView的cell 動態 定義 高度

首先在uitableview 的 方法中算出每個cell 的真實高度,然後設定便ok。如下 html view plain copy uitableviewcell tableview uitableview tableview cellforrowatindexpath nsindexpath i...

UITableView 詳細講解

建立 uitableview datatable uitableview alloc initwithframe cgrectmake 0,0,320,420 datatable setdelegate self datatable setdatasource self self.view adds...

UITableView 詳細講解

建立 uitableview datatable uitableview alloc initwithframe cgrectmake 0,0,320,420 datatable setdelegate self datatable setdatasource self self.view adds...