我正在尝试调整表格视图最后一行的高度。在尝试查找最后一行的索引时,我似乎遇到了某种递归循环。在我的heightForRowAtIndexPath:
方法中,我有以下内容:
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
CGFloat height = 60;
NSInteger lastSectionIndex = [tableView numberOfSections] - 1;
NSInteger lastRowIndex = [tableView numberOfRowsInSection:lastSectionIndex] - 1; // BLOWS UP!
if ((indexPath.section == lastSectionIndex) && (indexPath.row == lastRowIndex)) {
height = 44;
}
return height;
}
如果我稍微调整一下代码,它就可以了。
NSInteger lastRowIndex = [self tableView:tableView numberOfRowsInSection:lastSectionIndex] - 1; // WORKS!
任何Objective-C / iOS大师都可以对这里发生的事情有所了解吗?为什么一种语法比另一种更有效?它们不是完全相同的方法吗?
您可以在此处查看代码,了解相关信息:https://github.com/phungkytown/chapter8_gold
非常感谢任何帮助!
答案 0 :(得分:0)
我建议不要使用tableView委托获取部分和行数,但直接从数据源获取此信息。