繁体   English   中英

从UITableView删除单元格时调用heightForRowAtIndexPath

[英]Calling heightForRowAtIndexPath when deleting cells from UITableView

我正在调用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;

}

任何帮助将不胜感激! 谢谢

- (void)tableView:(UITableView *)tableView commitEditingStyle: UITableViewCellEditingStyle)editingStyle 
       forRowAtIndexPath:(NSIndexPath *)indexPath 
{
    if (editingStyle == UITableViewCellEditingStyleDelete) 
    {
       [tableView reloadTable];
    }   
}

并且您可以更改一个属性,该属性将告诉您想要合适的高度,并从heightForRowAtIndexPath中读取其值

您的问题是,如果单元格中的标签的numberOfLines为0(可能是这样,以便您的单元格可以展开),那么当删除幻灯片插入时,标签将再次展开,从而导致难看的重叠。 一个有价值的替代方法是在插入删除幻灯片时截断文本。为此,您需要在制作单元格时设置行数。

cell.textLabel.numberOfLines = textLabelheight/textLabelFontSize;

您可能已经知道textLabelHeight和textLabelFontSize,这是因为您在调整单元格高度时已经解决了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM