我正在开发一个应用程序,在这个应用程序中,我对表中的一行使用三个imageview。对于成功加载的前两个图像。在加载第三张图片的时候,图片会变成黑色。Si,请告诉我如何处理这个。下面是imageview声明的代码。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell=[[[UITableViewCell alloc]init] autorelease];
tableview1.separatorStyle=UITableViewCellSeparatorStyleNone;
if(indexPath.row==0)
{
image1=[[[UIImageView alloc]initWithFrame:CGRectMake(12, 8, 90, 90)]autorelease];
image1.frame=CGRectMake(12, 8, 90, 90);
[image1.layer setBorderWidth:1.0f];
[image1.layer setBorderColor:[[UIColor grayColor] CGColor]];
[image1.layer setCornerRadius:1.0f];
image1.layer.masksToBounds = YES;
image1.userInteractionEnabled=YES;
image1.tag=1;
[image1 setContentMode:UIViewContentModeScaleToFill];
if([[odrdata stringForKey:@"keyTo1Image"] isEqualToString:@""])
{
}
else
{
image1.image=[UIImage imageWithContentsOfFile:[odrdata stringForKey:@"keyTo1Image"]];
}
[cell.contentView addSubview:image1];
image2=[[[UIImageView alloc]initWithFrame:CGRectMake(114, 8, 90, 90)]autorelease];
image2.frame=CGRectMake(114, 8, 90, 90);
[image2.layer setBorderWidth:1.0f];
[image2.layer setBorderColor:[[UIColor grayColor] CGColor]];
[image2.layer setCornerRadius:1.0f];
image2.layer.masksToBounds = YES;
image2.userInteractionEnabled=YES;
image2.tag=1;
[image2 setContentMode:UIViewContentModeScaleToFill];
if([[odrdata stringForKey:@"keyTo2Image"] isEqualToString:@""])
{
}
else
{
image2.image=[UIImage imageWithContentsOfFile:[odrdata stringForKey:@"keyTo2Image"]];
}
[cell.contentView addSubview:image2];
image3=[[[UIImageView alloc]initWithFrame:CGRectMake(216, 8, 90, 90)]autorelease];
image3.frame=CGRectMake(216, 8, 90, 90);
[image3.layer setBorderWidth:1.0f];
[image3.layer setBorderColor:[[UIColor grayColor] CGColor]];
[image3.layer setCornerRadius:1.0f];
image3.layer.masksToBounds = YES;
image3.userInteractionEnabled=YES;
image3.tag=3;
[image3 setContentMode:UIViewContentModeScaleToFill];
if([[odrdata stringForKey:@"keyTo3Image"] isEqualToString:@""])
{
}
else
{
image3.image=[UIImage imageWithContentsOfFile:[odrdata stringForKey:@"keyTo3Image"]];
}
[cell.contentView addSubview:image3];
fsttapGesture=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handlefstTap:)];
fsttapGesture.delegate=self;
[image1 addGestureRecognizer:fsttapGesture];
sndtapGesture=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handlesndTap:)];
sndtapGesture.delegate=self;
[image2 addGestureRecognizer:sndtapGesture];
trdtapGesture=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handletrdTap:)];
trdtapGesture.delegate=self;
[image3 addGestureRecognizer:trdtapGesture];
return cell;
}
}
您确定keyTo3Image
的文件存在吗?可能发生的是,图像视图无法在你在字符串中指定的路径上找到图像。检查它是否确实指向一个文件。为了验证这一点,改变image3
的backgroundColor
属性,看看它是否改变:
image3.backgroundColor = [UIColor redColor];
如果它变成红色,那就意味着找不到图像,所以它只是显示一个空的图像视图