How can I addSubview to UIButton in Interface Builder
I have done this before by adding a UIView (instead of the UIButton) then add the UIButton and UILabel to the UIView. The tap from the UIButton still works and you have a label too. You can also add anything else like this.
I normally achieve this by
- Create a new UIView in Interface Builder and set it to be the same size and location that you want your button to have
- Add your subviews to that UIView
- Set the UIView's class to UIButton in the Indentity Inspector
Your UIView now works exactly like a UIButton
instead of UIButton, add the UILabel and UIImageView to UIView and then add a tap action to it.
EDIT 1:
it's easy to change make a highlighted color effect, use the following code:
- (void) onViewTap:(id)sender{ [UIView animateWithDuration:0.1 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{ _view.backgroundColor = [UIColor blueColor]; } completion:^(BOOL finished){ _view.backgroundColor = [UIColor whiteColor]; }]; //write tap actions below}- (void)viewDidLoad{ _view.userInteractionEnabled = YES; UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onViewTap:)]; [_view addGestureRecognizer:tap];}