изменить изображение по нажатию кнопки в объективе c - PullRequest
0 голосов
/ 09 января 2012

Я перетащил 3 кнопки в моем файле .xib (btn1, btn2, btn3 соответственно), и первоначально я дал им изображение по умолчанию, first.png

теперь, когда пользователь нажимает на btn1, изображение btn1 должно измениться с first.png на second.png ..

и когда пользователь выбирает btn2, изображение btn2 должно измениться с first.png на second.png, а также изменить изображение btn1 на default снова first.png, чтобы пользователь узнал, что он нажал 2-ю кнопку.

как мне это сделать?

Заранее спасибо !!

Ответы [ 3 ]

3 голосов
/ 09 января 2012

Вы должны установить код метода действия кнопки

-(IBAction)btnClked:(id)sender
{
  [btn1 setImage:[UIImage imageNamed:@"first.png"] forState:UIControlStateNormal];
  [btn2 setImage:[UIImage imageNamed:@"first.png"] forState:UIControlStateNormal];
  [btn3 setImage:[UIImage imageNamed:@"first.png"] forState:UIControlStateNormal];

  UIButton *btn=(UIButton *)sender;

  [btn setImage:[UIImage imageNamed:@"second.png"] forState:UIControlStateNormal];
}
0 голосов
/ 09 января 2012

Установите изображения в вашем методе вызова кнопки как:

BOOL first;
-(void)firstBtnPressed
   {
   if(first == YES){
   [btn1 setImage:[UIImage imageNamed:@"first.png"] forState:UIControlStateNormal];
   [btn2 setImage:[UIImage imageNamed:@"second.png"] forState:UIControlStateNormal];
   first = NO;
   }
   else
   {
    first = YES;
    [btn1 setImage:[UIImage imageNamed:@"second.png"] forState:UIControlStateNormal];
    [btn2 setImage:[UIImage imageNamed:@"first.png"] forState:UIControlStateNormal];
   }
}
0 голосов
/ 09 января 2012
    #import <Foundation/Foundation.h>


    @interface CustomRadioButton : UIButton {

    }

    @end


#import "CustomRadioButton.h"


@implementation CustomRadioButton

- (id)initWithFrame:(CGRect)frame {
    if (self = [super initWithFrame:frame]) {
        // Set the refresh icon as the button's image
        [self setImage:[UIImage imageNamed:@"off.png"] forState:UIControlStateNormal];
        [self setImage:[UIImage imageNamed:@"on.png"] forState:UIControlStateSelected];
        // When the button is pressed, draw to button with less opacity.
        self.adjustsImageWhenHighlighted = YES;

    }
    return self;
}

@end

внутри файла агрегата viewController

- (void)viewDidLoad {
    [super viewDidLoad];
    for (int i=1;i<=2;i++){

        CustomRadioButton *Radiobutton = [CustomRadioButton buttonWithType:UIButtonTypeCustom];

        Radiobutton = [[CustomRadioButton alloc] initWithFrame:CGRectMake(200,50*i, 30, 30)];

        [Radiobutton addTarget:self action:@selector(checkboxButton:) forControlEvents:UIControlEventTouchUpInside];

        Radiobutton.tag=i;

        [self.view addSubview:Radiobutton];

        }

}


    - (IBAction)checkboxButton:(UIButton *)button{

        for (UIButton *Radiobutton in [self.view subviews]) {
            if ([Radiobutton isKindOfClass:[UIButton class]] && ![Radiobutton isEqual:button]) {
                [Radiobutton setSelected:NO];
            }
        }
        if (!button.selected) {
            button.selected = !button.selected;

    }
}
...