ios 如何以编程方式更改uiimageview图像

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/16237443/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-30 23:21:45  来源:igfitidea点击:

how to change uiimageview image's programmatically

iosobjective-cxcodeuiimageviewuiimage

提问by bdkhsn

In my ios application i create uiimageviews programmatically like that,

在我的 ios 应用程序中,我像这样以编程方式创建 uiimageviews,

for (int i=0; i<20; i++) {

                                   productID=[products objectAtIndex:i];

                                   UIButton * button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
                                   [button setFrame:CGRectMake(column*197+38 , row*350+8, 159, 45)];
                                   //[button setImage:redButtonImage forState:UIControlStateNormal];
                                   [button addTarget:self
                                              action:@selector(buttonAction:)
                                    forControlEvents:UIControlEventTouchUpInside];
                                   button.tag = productID;
                                   [scrollView addSubview:button];



                                   UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(column*197+170, row*350+25, 13, 13)];
                                   imageView.tag=productID;
                                   UIImage *image = [UIImage imageNamed:@"redImage.png"];
                                   [imageView setImage:image];
                                   [scrollView addSubview:imageView];


                               }

in my buttonActon, i want to change that uiimageview's image to another image. But i can not do that. Can anyone help me? Thank You.

在我的 buttonActon 中,我想将该 uiimageview 的图像更改为另一个图像。但我不能那样做。谁能帮我?谢谢你。

回答by Balu

try like this ,

像这样尝试,

for (int i=0; i<20; i++) {

                                   productID=[products objectAtIndex:i];

                                   UIButton * button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
                                   [button setFrame:CGRectMake(column*197+38 , row*350+8, 159, 45)];
                                   //[button setImage:redButtonImage forState:UIControlStateNormal];
                                   [button addTarget:self
                                              action:@selector(buttonAction:)
                                    forControlEvents:UIControlEventTouchUpInside];
                                   button.tag = 100+productID;
                                   [scrollView addSubview:button];



                                   UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(column*197+170, row*350+25, 13, 13)];
                                   imageView.tag=productID;
                                   UIImage *image = [UIImage imageNamed:@"redImage.png"];
                                   [imageView setImage:image];
                                   [scrollView addSubview:imageView];


                               }

keep this one in button action method and pass the imageview tag in the place of imgview.tag

将此保留在按钮操作方法中,并在其位置传递 imageview 标签 imgview.tag

     UIImageView *img=(UIImageView *)[scrollView viewWithTag:imgview.tag];
    img.image=[UIImage imageNamed:@"name.png"];

回答by Midhun MP

Instead of this:

取而代之的是:

imageView.tag=UrunId;

Write:

写:

imageView.tag = productID + 100;

Because you need a unique tag for each Image View.

因为每个图像视图都需要一个唯一的标签。

Then implement the buttonAction:like:

然后实现buttonAction:类似:

- (void)buttonAction:(UIButton *)sender
{
  UIImageView *imageView = (UIImageView *)[scrollView viewWithTag:(sender.tag+100)];
  [imageView setImage:yourImage];
}

回答by Dharmbir Singh

Please try to use this one

请尝试使用这个

You should have different tag for button and image.So please give first different tag like this....

您应该为按钮和图像使用不同的标签。所以请先给出这样的不同标签....

UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(column*197+170, row*350+25, 13, 13)];
                                   imageView.tag=button.tag+1;
                                   UIImage *image = [UIImage imageNamed:@"redImage.png"];
                                   [imageView setImage:image];
                                   [scrollView addSubview:imageView];

After that do this...

之后做这个...

- (void)buttonAction:(UIButton *)sender
{
  UIImageView *imageView = (UIImageView *)[scrollView viewWithTag:sender.tag+1];
  imageView.image=[UIImage imageNamed:@"imageName"];

}