How can I addSubview to UIButton in Interface Builder How can I addSubview to UIButton in Interface Builder ios ios

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

  1. Create a new UIView in Interface Builder and set it to be the same size and location that you want your button to have
  2. Add your subviews to that UIView
  3. 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];}