2015-06-01 1 views
0

Я создал UIButton с UIImageView и UILabel с помощью this вопросов и ответов Тимом, и теперь я хочу изменить изображение UIImageView на событие нажатия кнопки. я попытался [sender.imageView setImage:image], но он не работаетКак изменить изображение UIImageView, находящегося внутри UIButton, программно?

ответ

2

вы можете:

1 - сохранить ссылку на UIImageView внутри UIButton на вашем ViewController

2 - подклассы UIButton и добавить UIImageView себя.

3 - При добавлении UIImageView добавьте тег в него (view.tag) и при получении зрения от отправителя, вы можете просто

UIView *view = (UIView *)sender; 
UIImageView *imageView = [view viewWithTag:123]; 
//do what you must with the imageView. 

Тег может быть любое количество.

Редактировать

это, как вы должны установить метку на UIImageView, а не на UIButton. Я скопировал этот код из ответа Тима из here:

// Create the button 
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 

// Now load the image and create the image view 
UIImage *image = [UIImage imageNamed:@"yourImage.png"]; 
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(/*frame*/)]; 
[imageView setImage:image]; 

// Create the label and set its text 
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(/*frame*/)]; 
[label setText:@"Your title"]; 

// Set a tag on the UIImageView so you can get it later 
imageView.tag = 123; 

// Put it all together 
[button addSubview:label]; 
[button addSubview:imageView]; 
+0

Нет, я не хочу, чтобы изменить изображение кнопки, но и UIImageView внутри этой кнопки, вы читаете это http://stackoverflow.com/questions/1116114/uibutton-title-and-image-alignment-query/1116139? noredirect = 1 # comment49224486_1116139 вопрос и ответ Тима ?? –

+0

обновил ответ. – Erakk

+0

здесь 123 - тот же самый тег, который был установлен раньше или он новый? –

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