ios 7 uitableviewcell绘图更改

时间:2013-09-24 09:39:23

标签: uitableview drawing ios7 heightforrowatindexpath

我在iOS 7上遇到了自定义单元格绘图的问题(在iOS 6和5上工作正常)。

在heightForRowAtIndexPath上,我返回的高度小于每个部分最后一行的单元格的实际高度,因为我需要最后一个单元格与下一部分的标题重叠。

Apple似乎在iOS 7上进行了绘图改进,因为只有从heightForRowAtIndexPath返回的高度正在绘制,因此我的单元格将在底部被剪切。

任何想法都将受到赞赏。

2 个答案:

答案 0 :(得分:0)

这是我要做的......

-(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];
}

答案 1 :(得分:0)

我有同样的问题和情况(点击较低高度的最后一个单元格来添加更多数据)。我没有研究为什么会这样,但有些东西对我有用。我使用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"]];
}

并取而代之。希望对你也有帮助。