简体   繁体   中英

UIButton background image change from another button

Is it possible that I can change the background image of some button when I click on another button?

I basically have 10 buttons, and I want the user to know which button is currently clicked. So what happens is each button has 2 images. One for selected and one for not selected.

I want to create a function which will reset the background images of all the buttons. And in the method for each button, I will add this reset function and then change the background image of that specific button.

Can someone suggest how is that possible?

I know how to change the background image of a button when that button is clicked.

This how my buttons look:

- (IBAction)posterButton:(id)sender {}
- (IBAction)colorInvertButton:(id)sender {}

etc..

Look up the documentation for UIButton: configure each button like this:

[button setControlImage:selectedImage forState:UIControlStateSelected];
[button setControlImage:unselectedImage forState:UIControlStateNormal];

^^this can also be done in interface builder btw.

There are also the states UIControlStateNormal | UIControlStateHighlighted UIControlStateNormal | UIControlStateHighlighted and UIControlStateSelected | UIControlStateHighlighted UIControlStateSelected | UIControlStateHighlighted , but this is optional.

A button also has a selected state, inherited from UIControl .

If you want to have only one selected button at a time, try this (_selectedButton should be declared as an instance variable):

- (UIButton *)selectedButton {
    return _selectedButton;
}
- (void)setSelectedButton:(UIButton *)b {
    if(b != _selectedButton) {
        _selectedButton.selected = NO;
        b.selected = YES;
        _selectedButton = b;
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM