我在 iOS 7 上遇到了自定义单元格绘图的问题(在 iOS 6 和 5 上工作正常)。
在 heightForRowAtIndexPath 上,我返回的高度小于每个部分最后一行的单元格实际高度,因为我需要最后一个单元格与下一部分的标题重叠。
似乎 Apple 在 iOS 7 上进行了绘图改进或其他操作,因为只有从 heightForRowAtIndexPath 返回的高度正在绘制,所以我的单元格将在底部被切割。
任何想法将不胜感激。
我在 iOS 7 上遇到了自定义单元格绘图的问题(在 iOS 6 和 5 上工作正常)。
在 heightForRowAtIndexPath 上,我返回的高度小于每个部分最后一行的单元格实际高度,因为我需要最后一个单元格与下一部分的标题重叠。
似乎 Apple 在 iOS 7 上进行了绘图改进或其他操作,因为只有从 heightForRowAtIndexPath 返回的高度正在绘制,所以我的单元格将在底部被切割。
任何想法将不胜感激。
我遇到了同样的问题和情况(点击高度较低的最后一个单元格以添加更多数据)。我没有研究为什么会发生这种情况,但有些东西对我有用。我使用了来自 NSDictionary 的表格数据。它适用于 iOS6.1 及更早版本。在 iOS7 中,它导致了与您相同的错误。在 viewDidLoad 中将数据分配到单独的 NSMutableArray 解决了这个问题。所以不要在 tableview 委托方法中到处使用
[self.data objectForKey:@"offers"]
我做了
- (void)viewDidLoad {
[super viewDidLoad];
if (!tableData) tableData = [[NSMutableArray alloc] initWithArray:[self.data objectForKey:@"offers"]];
}
并全部更换。希望对你也有帮助。
嗯,这就是我会做的......
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.row == [_array_todo count]) {
// last row
return 50;
}else{
// not the last row
return 80;
}
}
还要考虑选择单元格时您在做什么....
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
sel_path = indexPath;
[self.tableView beginUpdates];
[self.tableView endUpdates];
}