主要有兩行代碼,分别寫在UITableView的兩個代理方法裡面:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath(顯示單元格的内容)
- (float )tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath(定制單元高度-所有單元格的高度都一樣)
參考代碼如下:
[代碼]c#/cpp/oc代碼:
02 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath |
05 | static NSString *cellStr = @"cell" ; |
06 | //執行個體一個myCell類的對象cell。 |
08 | CommentCell *cell = [tableView dequeueReusableCellWithIdentifier:cellStr]; |
12 | cell = [[CommentCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellStr]; |
15 | //獲得目前評論内容的高度,指派給cell,之後定制單元格高度的時候我們隻要用到cell的高,其它參數設為0對單元格的定制是不會有影響的 |
16 | [cell setFrame:CGRectMake(0, 0, 0, self.cellAddHight)]; |
[代碼]c#/cpp/oc代碼:
1 | - ( float )tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath |
3 | // 通過indexPath确定定制高度的是第幾行 |
4 | UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath]; |
6 | return 99+cell.frame.size.height; |
以上的代碼是做了注釋的是主要代碼,有了這三行,再結合我之前寫的UILabe自适應高度就能寫出如下的定制UITableView效果: