我正在开发的应用程序有问题。
我用自定义单元格创建了一个UITableView。在单元格中,我使用方法bezierPathWithRoundedRect:
当我在App中加载表格时图像是正确的,直到我在桌子上快速滚动。我认为异步加载/编辑图像有问题,但我不知道如何解决它。如果我在单元格中使用简单的UIImageView而不是UIView,一切都正常。 我在这里发现了非常类似的问题,但没有UIView类和Data Core加载......
这是我的单元格的代码:
- (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)的实现,用于绘制带有用户图像的圆形rect:
- (void)drawRect:(CGRect)rect
{
// Draving code
UIBezierPath *icon = [UIBezierPath bezierPathWithRoundedRect:self.bounds cornerRadius:12];
[[UIColor greenColor] setFill];
UIRectFill(self.bounds);
[immagine drawInRect:self.bounds];
}
感谢您的帮助!
答案 0 :(得分:1)
尝试添加[inmagine setNeedsDisplay]以强制重绘自定义视图
答案 1 :(得分:0)
也许你应该在单元格为空时重新分配
UITableViewCell *cell = [presentTableView dequeueReusableCellWithIdentifier:cellIdentifier];
if(cell==nil){
cell = [[UITableView alloc] initWith...]
}