2014-11-25 6 views
-1

Один UIButton при запуске приложения хочет отобразить «workout_heart.png». написав действие кнопки для этой кнопки. Когда пользователь нажимает на эту кнопку, изображение хочет изменить «workout_heart_red.png». снова нажмите эту кнопку, чтобы изображение стало «workout_heart.png». он хочет изменить альтернативу. Как я могу это добиться?Как изменить фоновые изображения UIButton в UIButton нажмите в ios

+0

Перейди через существующий вопросы и лучше документирование. Посмотрите [ЗДЕСЬ] (http://stackoverflow.com/questions/1702194/how-to-use-a-uibutton-as-a-toggle-switch). Вы просто переключаете изображения в целевом методе своей кнопки. – n00bProgrammer

+0

@ n00bProgrammer Это не очень конструктивно, если вы считаете, что это дубликат, а затем просто отметьте его как не нужно грубить об этом. Я уверен, что если мы посмотрим на ваши вопросы, когда вы были новыми, мы обнаружим, что вы зададите вопросы, которые не будут полностью вписываться в сайт (например, http://stackoverflow.com/questions/16231048/new-to- ios-development-need-resources) – Popeye

+0

@Popeye, я сделал это как дубликат. Я добавил комментарий, пометил его как дубликат и перешел. Кроме того, я прошу прощения, если бы я казался грубым, не был моим намерением. – n00bProgrammer

ответ

0

попробуйте этот код

Для кнопки установить фоновое изображение для выбранных и нормальных состояний, таких как ниже

[<btn> setBackgroundImage:[UIImage imageNamed:@"workout_heart.png"] forState:UIControlStateNormal]; 
[<btn> setBackgroundImage:[UIImage imageNamed:@"workout_heart_red.png"] forState:UIControlStateSelected]; 

и написать логику действий, как показано ниже

- (IBAction)buttonTapped:(id)sender { 
    UIButton *tempButton = (UIButton *)sender; 
    if(tempButton.isSelected){ 
     [tempButton setSelected:NO]; 
    } else { 
     [tempButton setSelected:YES]; 
    } 
} 
+0

его не в табличном представлении, что одна кнопка в поле зрения контроллера –

+0

, где появилось это настольное приложение –

+0

, вы пробовали этот код. –

0

Попробуйте

[btn setBackgroundImage:[UIImage imageWithString:@"workout_heart.png" forState:UIControlStateNormal]; 
[btn setBackgroundImage:[UIImage imageWithString:@"workout_heart_red.png" forState:UIControlStateHighlighted]; 
1

Попробуйте объявить насытить, как например переменной

- (IBAction)buttonTapped:(id)sender { 
    if (state == 0) { 
     state = 1; 
     [btn setBackgroundImage:[UIImage imageNamed:@"workout_heart_red.png"] forState:UIControlStateHighlighted]; 
    } 
    else if (state == 1){ 
     state = 0; 
     [btn setBackgroundImage:[UIImage imageNamed:@"workout_heart.png"] forState:UIControlStateNormal]; 
    } 
} 
1
- (IBAction)btn_MyButton_Click:(id)sender 
{ 
    if ([sender isSelected] == YES) 
    { 
     [sender setSelected:NO]; 
     [btn setBackgroundImage:[UIImage imageNamed:@"workout_heart.png"] forState:UIControlStateNormal]; 
    } 
    else 
    { 
     [sender setSelected:YES]; 
     [btn setBackgroundImage:[UIImage imageNamed:@"workout_heart_red.png"] forState:UIControlStateNormal]; 
    } 
} 
+0

Ошибка в imageWithString, setBackgroundImage –

+0

Что такое '[UIImage imageWithString:'? – Popeye

+0

отредактирован .. попробуйте this1 –

0
- (void)viewDidLoad { 
[super viewDidLoad]; 
// ... 

self.btn1ImageName = @"workout_heart.png"; 
btn1 = [UIButton buttonWithType:UIButtonTypeCustom]; 
[btn1 setFrame:CGRectMake(367, 117, 97, 25)]; 
[btn1 setImage:[UIImage imageNamed:self.btn1ImageName] forState:UIControlStateNormal]; 
[btn1 addTarget:self action:@selector(toggleImage:) forControlEvents:UIControlEventTouchUpInside]; 
[self.view addSubview:btn1]; 
} 

- (void)toggleImage:(UIButton *)btn1 { 
self.btn1ImageName = ([self.btn1ImageName isEqualToString:@"workout_heart.png"]) ? @"workout_heart_red.png" : @"workout_heart.png"; 
[btn1 setImage:[UIImage imageNamed:self.btn1ImageName] forState:UIControlStateNormal]; 
} 
0

набор фоновых изображений по умолчанию в XIB например «workout_heart.png», а затем на проверку состояния т.е.

if(button.selected) 
{ 
    [button setBackgroundImage:[UIImage imageNamed:"workout_heart_red.png"] forState: UIControlStateNormal]; 
} 
else 
{ 
[button setBackgroundImage:[UIImage imageNamed:"workout_heart.png"] forState: UIControlStateNormal]; 
} 
Смежные вопросы