У меня есть 3 кнопки, представляющие 3 разных изображения. Изображение будет отображаться всякий раз, когда будет нажата его кнопка. Мой вопрос в том, как использовать теги if() и NSArray/NSMutableDictionary/UIButton или другой метод, чтобы сделать коды короче.Отображение изображения при нажатии кнопки?
- (id)initWithFrame:(CGRect)frame
{
_button1 = [UIButton buttonWithType:UIButtonTypeCustom];
_button1.frame = CGRectMake(20, 250, 50, 50);
[_button1 addTarget:self action:@selector(button1Tapped) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:_button1];
_button2 = [UIButton buttonWithType:UIButtonTypeCustom];
_button2.frame = CGRectMake(140, 250, 50, 50);
[_button2 addTarget:self action:@selector(button2Tapped) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:_button2];
_button3 = [UIButton buttonWithType:UIButtonTypeCustom];
_button3.frame = CGRectMake(210, 250, 50, 50);
[_button3 addTarget:self action:@selector(button3Tapped) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:_button3];
}
- (void)button1Tapped
{
UIImage *_image = [UIImage imageNamed:@"IMAGE_1"];
_imageView = [[UIImageView alloc] initWithImage:_image];
_imageView.frame = CGRectMake(0, 0, 256, 384);
[self addSubview:_imageView];
}
- (void)button2Tapped
{
UIImage *_image = [UIImage imageNamed:@"IMAGE_2"];
_imageView = [[UIImageView alloc] initWithImage:_image];
_imageView.frame = CGRectMake(0, 0, 256, 384);
[self addSubview:_imageView];
}
- (void)button3Tapped
{
UIImage *_image = [UIImage imageNamed:@"IMAGE_3"];
_imageView = [[UIImageView alloc] initWithImage:_image];
_imageView.frame = CGRectMake(0, 0, 256, 384);
[self addSubview:_imageView];
}
Thanks.
Да, сегодня день рефакторинга. Просто ответил на подобный, как 10 минут назад. – 2013-02-09 22:30:04
BTW: используйте массив для хранения кнопок, затем ** используйте ** аргумент 'sender' методов действия. – 2013-02-09 22:30:31
@ H2CO3 спасибо за понимание. Ваш ответ рефакторинга очень полезен для другой части моих кодов! – askingtoomuch