Peter V
Peter V

Reputation: 2488

Different image when button from storyboard tapped

I have a button that I want to use a different background image when in highlighted state, normally I would use something like

[buttonObject setBackgroundImage:[UIImage imageNamed:@"buttonDown.png"] 
                        forState:UIControlStateHighlighted];

But the button is in a .storyboard file, not code.
What should I use in this situation?

Upvotes: 12

Views: 12807

Answers (2)

DrummerB
DrummerB

Reputation: 40211

You can set up different properties for different states in IB too, by selecting the state from the drop down menu:

enter image description here

If you want to do it in code, you have to set up an outlet and set the images in awakeFromNib.

@property (nonatomic, weak) IBOutlet UIButton *button;

To connect the outlet, you Ctrl-drag from the button to your File Owner (probably a view controller) and select the outlet defined above.

Then you can access the button in your code:

- (void)awakeFromNib {
    [button setBackgroundImage:[UIImage imageNamed:@"buttonDown.png"] 
                      forState:UIControlStateHighlighted];
}

Upvotes: 39

Lorenzo B
Lorenzo B

Reputation: 33428

Why not using outlets?

Configuring the View from Apple doc.

Hope that helps.

Upvotes: 1

Related Questions