这是我的故事:
我的IUTableViewCell
大小有问题。当我添加几个单元格时,单元格会自动调整大小。
任何答案都将不胜感激:)
我的代码要调整大小:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPathInCellTable:(NSIndexPath *)indexPath {
CustomCell *cell = (CustomCell*) [self tableView:tableView
cellForRowAtIndexPath:indexPath];
CGSize size;
// SIZE HEIGHT TEXT
size = [cell.color.text sizeWithAttributes:
@{NSFontAttributeName:
[UIFont systemFontOfSize:12.0f]}];
// SIZE HEIGHT FOR CELL
CGRect frame = [cell frame];
frame.size.height += size.height;
[cell setFrame:frame];
// SIZE HEIGHT IMG
CGRect frame = [cell.img frame];
frame.size.height = 69;
frame.size.width = 69;
[cell.img setFrame:frame];
if (indexPath.row == 0) [self setHeightTableView:0];
_tableHeightConstraint.constant += cell.frame.size.height;
return cell.frame.size.height;
}
有一些截图:
我第一次添加一个单元格一切都很好
对于第二个单元格来说一切都很好
问题来了
答案 0 :(得分:1)
您调用CustomCell
*cell = (CustomCell*) [self tableView:tableView
cellForRowAtIndexPath:indexPath];
获取一个单元格,这是错误的,因为还没有创建单元格(所以它是零)。在创建单元格之前调用tableView:heightForCell:atIndexPath:
。最好的解决方案是使用一个模块来保存单元所需的高度或进行类似的计算
答案 1 :(得分:0)
使用原型单元格来获取大小而不是使用tableView:cellForRowAtIndexPath: