2

我有一个带有UITableView(样式:分组)的 xib,还有一些UITableViewCells在 xib 上连接为插座集合。

我以与Table View Programming Guide (The Technique for Static Row Content)tableView:cellForRowAtIndexPath:中描述的方式非常相似的方式返回这些单元格。

然后我有另一个IBOutlet高度不同的单元格,以及一个用于切换标志并始终重新加载同一行的按钮(reloadRowsAtIndexPaths:withRowAnimation:)。

cellForRowAtIndexPath对于该确切行,返回出口集合中的一个正常单元格或该特殊单元格(取决于标志)。

heightForRowAtIndexPath还获取相应单元格的高度并使用相同的“逻辑”返回它,我已经将其 NSLogged 至死;

现在发生的情况是,每次我按下按钮时,第一行和最后一行的高度都会增加一个像素!任何人都可以想到发生了什么?

我上传了一个示例项目:http ://www.mediafire.com/?sc22v0c6w11b4l6

4

2 回答 2

1

更换:

return (UIView *)[self.cells objectAtIndex:indexPath.row] bounds].size.height;

经过

return 30;

解决您的问题。

我认为您的较大单元格的重绘会修改整个表格的大小,并且由于某种原因将第一个和最后一个单元格重新计算为更大的大小。

于 2012-09-03T11:43:50.247 回答
0

仅当您的 tableViewStyle 被分组时才会发生此问题...因此您可以使用普通样式或返回硬编码值

if (indexPath.row == kBigCellRowNum && self.showTheBigCell){

    return self.bigCell.frame.size.height;

}

else{

    return 44;

}
于 2012-09-03T11:50:27.113 回答