gpt4 book ai didi

ios - 如何在 iOS 应用程序内的 UIImageView 中更改图像?

转载 作者:行者123 更新时间:2023-12-01 19:15:29 24 4
gpt4 key购买 nike

我有一个 UIImageView 对象,我将其实例化并变成我的 iOS 应用程序中的一个属性。我在 viewDidLoad 方法中初始化了这个 UIImageView 对象的属性,但是,我需要稍后在另一个方法中更改 UIImageView 对象中包含的图像。当我这样做时,出于某种原因,我只是将新图像叠加在旧图像之上。我想做的只是调整框架的大小,然后用新的图像替换旧图像。

以下是相关代码:

在我的 viewDidLoad 方法中:

imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 250, 300, 200)];
imageView.image = [UIImage imageNamed:@"firstImage.png"];
[self.view addSubview:imageView];

在我希望进行更改的方法中:
imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 250, 200, 300)];
imageView.image = [UIImage imageNamed:@"secondImage.png"];
[self.view addSubview:imageView];

请记住,我不仅要更改图像,还要更改帧大小以适应新图像。谁能看到我做错了什么?

最佳答案

您正在创建另一个 imageview 实例。您需要访问相同的对象并在那里更改框架和图像。

试试这个,

创建 imageView作为类中的属性(property),

在 .h 文件中,

@property(nonatomic, retain) UIImageView *imageView;

然后在 viewDidLoad ,
self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 250, 300, 200)];
self.imageView.image = [UIImage imageNamed:@"firstImage.png"];
[self.view addSubview:imageView];

第二种方法,只需如下图改变框架和图像,
self.imageView.frame = CGRectMake(10, 250, 200, 300);
self.imageView.image = [UIImage imageNamed:@"secondImage.png"];

根据您的代码,您正在为 imageViews 创建单独的实例并添加为 subview ,这将导致它叠加在另一个实例上。相反,您需要创建一个如上所示的实例,并在需要时修改其 frame 和 image 属性。

关于ios - 如何在 iOS 应用程序内的 UIImageView 中更改图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13750837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com