主要有两行代码,分别写在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" ; |
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效果: