因为涉及到复用问题,所以可以将其cell.contentView.subviews 的 UIView remove掉。
然后在初始化cell中的UIView时给其:
UIImageView *_rightDrivesingImageView = (UIImageView*)[cell.contentViewviewWithTag:1007];
以上两步就可以去掉cell中图片与文字交替使用时,重叠的问题了。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *strs =nil;
staticNSString *CellWithIdentifier =@"Cell";
UITableViewCell *cell = [tableViewdequeueReusableCellWithIdentifier:CellWithIdentifier];
for (UIView *subViewin cell.contentView.subviews)
{
[subView removeFromSuperview];
}
if (cell ==nil)
{
cell = [[UITableViewCellalloc]initWithStyle:UITableViewCellStyleValue1reuseIdentifier:CellWithIdentifier];
}
cell.textLabel.font =cellFont;
}
else if (indexPath.row == 4)
{
cell.textLabel.text = @"驶证";
cell.accessoryType = YES;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
<span style="color:#ff6666;"> UIImageView *_rightDrivesingImageView = (UIImageView*)[cell.contentView viewWithTag:1007];
</span>
if ((UIImageView*)[cell.contentView viewWithTag:1007] == nil)
{
_rightDrivesingImageView = [[UIImageView alloc]initWithFrame:CGRectMake(kDEVICEWIDTH - 55, 8, cellImageWidth, cellIimagehight)];
_rightDrivesingImageView.tag = 1007;
}
<span style="color:#ff0000;">UILabel *_tempLabel = (UILabel *)[cell.contentView viewWithTag:2001];
</span> if ((UILabel *)[cell.contentView viewWithTag:2001] == nil)
{
_tempLabel = [self generateUploadNameLabel:@""];
_tempLabel.tag = 2001;
}