2013-04-26 2 views
4

В моем Ios приложении я создаю UIImageViews программно как то,как изменить UIImageView изображения в программном

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]; 


           } 

в моем buttonActon, я хочу изменить изображение, которое UIImageView на другое изображение. Но я не могу этого сделать. Может кто-нибудь мне помочь? Спасибо.

+1

Вы не можете этого сделать, потому что? [Что вы пробовали?] (Http://mattgemmell.com/2008/12/08/what-have-you-tried/) – Pfitz

ответ

12

попробовать, как это,

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]; 


           } 

держать этот в метод действия кнопки и передать ImageView метку в месте imgview.tag

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

Я сделал тот же код, но я получил эту ошибку: - [UIRoundedRectButton setImage:]: непризнанный селектор отправлен в экземпляр 0x8993130 – bdkhsn

+0

что это за ошибка? – Balu

+0

теперь проверьте это, я отредактировал свой ответ, я забыл * символ. – Balu

3

Вместо этого:

imageView.tag=UrunId; 

Напишите:

imageView.tag = productID + 100; 

Потому что вам нужен уникальный тег для каждого изображения.

Затем реализовать buttonAction: как:

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

большое спасибо. это мое решение. – bdkhsn

+0

@bdkhsn: спасибо за комментарий :) –

+0

потому что @Sunny дает ответ несколько секунд назад перед вами. еще раз спасибо. – bdkhsn

2

Пожалуйста, попробуйте использовать этот один

Вы должны иметь другой тег для кнопки и image.So пожалуйста, дайте первый другой тег, как это ....

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]; 

После этого сделать ...

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

} 
Смежные вопросы