tinln
tinln

Reputation: 253

How can I addSubview to UIButton in Interface Builder

Like I said, I add a UIButton in Interface Builder, I want add a UILabel、UIImageView as the button's subviews, but I can't add any object on it in IB. IS anybody know how to do this? Thank you very much.

I can use code to achieve that, but I want achieve it in IB, so I can use it in any class I want.

Upvotes: 19

Views: 11023

Answers (4)

Dave Carpenter
Dave Carpenter

Reputation: 197

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

Upvotes: 5

Mhdali
Mhdali

Reputation: 688

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];
}

Upvotes: 1

Fogmeister
Fogmeister

Reputation: 77651

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.

Upvotes: 21

Apple Developer
Apple Developer

Reputation: 99

Make your UIButton custom button, then add the UILabel on it,then the you will benefit from the UIButton properties and actions,hope this help you

Upvotes: 0

Related Questions