0

我正在开发的应用程序有问题。

我用自定义单元格制作了一个 UITableView。在单元格中,我使用该方法放置了一个小 UIView 来显示用户的图像(从 Data Core 加载)bezierPathWithRoundedRect:

当我在应用程序中加载表格时,图像是正确的,直到我在表格上快速滚动。我认为图像的异步加载/编辑存在问题,但我不知道如何解决。如果我在单元格中使用简单的 UIImageView 而不是 UIView,则一切正常。我在这里发现了非常相似的问题,但没有 UIView 类和数据核心加载...

这是我的单元格的代码:

- (UITableViewCell *)tableView:(UITableView *)presentTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"FellowshipCell";
    UITableViewCell *cell = [presentTableView dequeueReusableCellWithIdentifier:cellIdentifier];

    ExpenseParticipants *participant = [self.fetchedResultsController objectAtIndexPath:indexPath];

    IconView *icon = (IconView *)[cell.contentView viewWithTag:1];
    icon.immagine = [UIImage imageWithData:participant.usrImage];


    return cell;
}

这是用于绘制带有用户图像的圆形矩形的 UIView 类(IconView.h 和 IconView.m)的实现:

- (void)drawRect:(CGRect)rect
{
    // Draving code
    UIBezierPath *icon = [UIBezierPath bezierPathWithRoundedRect:self.bounds cornerRadius:12];

    [[UIColor greenColor] setFill];
    UIRectFill(self.bounds);

    [immagine drawInRect:self.bounds];
}

感谢您的帮助!

4

2 回答 2

1

尝试添加 [inmagine setNeedsDisplay] 以强制重绘您的自定义视图

于 2013-10-24T07:14:27.787 回答
0

也许您应该在单元格为空时重新分配单元格

UITableViewCell *cell = [presentTableView dequeueReusableCellWithIdentifier:cellIdentifier];
if(cell==nil){
    cell = [[UITableView alloc] initWith...]
}
于 2013-10-24T07:19:03.683 回答