UITmageView.image在UITableViewCell中更新延迟

时间:2013-10-16 04:04:21

标签: ios uitableview

任何人都可以解释iOS上的以下观察行为(特别是iOS7):

我有一个自定义的UITableViewCell类。为简单起见,这里是类的相关方法,包括layoutSubviews:

// CustomCell.h
@interface CustomCell : UITableViewCell {
   UITextView *textView;
   UIImageView *backgroundImage;
}
@property (nonatomic, retain) UITextView *textView;
@property (nonatomic, retain) UIImageView *backgroundImage;
@end

// CustomCell.m
- (void) layoutSubviews
{
  [super layoutSubviews];
  if (self.message.isIncoming) 
  {
    self.textView.textColor = [UIColor whiteColor];
    self.backgroundImage.image = [UIImage imageNamed:@"incomingImage.png"];  
  }
  else 
  {
    self.textView.textColor = [UIColor blackColor];
    self.backgroundImage.image = [UIImage imageNamed:@"outgoingImage.png"];  
  }
}

以下是如何设置:

- (UITableViewCell *)tableView:(UITableView *)theTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    Message *chatMessage = [messages objectAtIndex:indexPath.row];
    CustomCell *cell = (CustomCell*)[theTableView dequeueReusableCellWithIdentifier:CELL_IDENTIFIER forIndexPath:indexPath];
    [cell setMessage:chatMessage];
    return cell;
}

textView和backgroundImage的内容和定位都在其他地方完成,并且在100%的时间内正确完成。

任何人都可以解释我会看到带有whiteText的传入消息但使用outgoingImage背景的情况吗?然后一秒钟后,背景正确更新到incomingImage,用户看到背景更改。

基本上我看到一个单元格在文本正确且textColor正确的地方重复使用,但有时候backgroundImage不正确。我想知道在应用UIImageView的.image属性时是否存在某种延迟?我知道layoutSubviews被调用了,因为如果不是textColor则不正确。它只是UIImageView的图像属性,有时可能不正确或不立即更新。

请注意,textView和backgroundImage都是自定义视图,我已添加为自定义UITableViewCell的contentView的子视图

0 个答案:

没有答案