我正在调用heightForRowAtIndexPath来调整我的单元格。当我编辑我的表视图以删除单元格时,单元格的高度保持固定,因此单元格重叠,这不会产生非常吸引人的图像。我想知道在删除单元格时如何更改单元格的高度。
这是我目前的代码
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
Favorites *favorite = [fetchedResultsController objectAtIndexPath:indexPath];
NSString *cellText = favorite.name;
UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:17.0];
CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT);
CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
return labelSize.height + 20;
}
任何帮助将不胜感激!感谢
答案 0 :(得分:0)
- (void)tableView:(UITableView *)tableView commitEditingStyle: UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete)
{
[tableView reloadTable];
}
}
你可以改变一个告诉你想要正确高度的属性,并从heightForRowAtIndexPath读取它的值
答案 1 :(得分:0)
您的问题是,如果您的单元格中的标签numberOfLines为0(可能是您的单元格可以展开),那么当删除幻灯片时标签将再次展开,从而导致丑陋的重叠。一个有价值的替代方法是在删除幻灯片进入时截断文本。为此,您需要设置制作单元格时的行数。
cell.textLabel.numberOfLines = textLabelheight/textLabelFontSize;
您可能已经知道textLabelHeight和textLabelFontSize,因为您在调整单元格高度时已经解决了这个问题。