Как получить UIButton, чтобы изменить его цвет, щелкнув его?

Я хочу сделать приложение для iphone. Это Nonogram что-то похожее на это: http://www.puzzle-nonograms.com/ Как я могу заставить ********* изменить свой цвет с белого на черный и наоборот?

2 ответа

файл.h

******** *button;
BOOL clicked;

.m file - (void) viewDidLoad

{
 [super viewDidLoad];
 // Do any additional setup after loading the view, typically from a nib.

 clicked=YES;
 button = [******** buttonWithType:********TypeRoundedRect];
 [button addTarget:self
 action:@selector(changeBtnColor)
 forControlEvents:UIControlEventTouchDown];
 [button setTitle:@" 1 " forState:UIControlStateNormal];
 button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
 [button setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
 [self.view addSubview:button];
}

-(void)changeBtnColor{
 if (clicked) {
 [button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
 clicked=NO;
 }
 else{
 [button setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
 clicked=YES;

 }



}

Надеюсь, это поможет. Удачи..


Нет необходимости в ivar булевых, кнопки выбрали, выделенные и нормальные состояния, встроенные в них.

- (void)viewDidLoad
{
 [super viewDidLoad];

 ******** *button = [******** buttonWithType:********TypeRoundedRect];
 [button setFrame:CGRectMake(0, 0, 320, 50)];
 [button addTarget:self action:@selector(buttonPress:) forControlEvents:UIControlEventTouchUpInside];
 [button setTitle:@"Normal State" forState:UIControlStateNormal];
 [button setTitle:@"Selected State" forState:UIControlStateSelected];

 [button setBackgroundImage:[UIImage imageNamed:@"normal_image"] forState:UIControlStateNormal];
 [button setBackgroundImage:[UIImage imageNamed:@"selected_image"] forState:UIControlStateSelected];
 [self.view addSubview:button];

}

-(void)buttonPress:(******** *)button{
 button.selected = !button.selected;
 //do your other code here for button selection
}

В противном случае настройте состояния кнопок внутри построителя интерфейса и просто нажмите селектор buttonPress для изменения состояния.

licensed under cc by-sa 3.0 with attribution.