如何通过代码更改UIImageView图像内容?

Tat*_*tat 4 iphone uiimageview

我用它来分配图像:

UIImage *img = [UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"myImage" ofType:@"png"]];
CGRect cropRect = CGRectMake(175, 0, 175, 175);
CGImageRef imageRef = CGImageCreateWithImageInRect([img CGImage], cropRect);
imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 175, 175)];
imageView.image = [UIImage imageWithCGImage:imageRef];
[self addSubview:imageView];
CGImageRelease(imageRef);
Run Code Online (Sandbox Code Playgroud)

现在,我想将图像从myImage更改为myImage2,所以我这样做:

    UIImage *img = [UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"myImage2" ofType:@"png"]];
CGRect cropRect = CGRectMake(175, 0, 175, 175);
CGImageRef imageRef = CGImageCreateWithImageInRect([img CGImage], cropRect);
imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 175, 175)];
imageView.image = [UIImage imageWithCGImage:imageRef];
[self addSubview:imageView];
Run Code Online (Sandbox Code Playgroud)

它工作,但不是我想要的方式,我想改变图像,而不是在上一个上面添加一个imageView.我该如何修改我的代码?谢谢你.

Tom*_*ing 6

或者,这可以使用标签来完成.

//Set up the imageView in viewDidLoad or similar
UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 175, 175)];
[imageView setTag:123];
[self.view addSubview:imageView];
[imageView release];
Run Code Online (Sandbox Code Playgroud)

那么每当你想要改变图像时,你只需要使用:

[(UIImageView*)[self.view viewWithTag:123] setImage:[UIImage imageWithCGImage:imageRef]];
Run Code Online (Sandbox Code Playgroud)

只是另一种选择,其他答案也会起作用.