Reputation: 253
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
Reputation: 197
I normally achieve this by
Your UIView now works exactly like a UIButton
Upvotes: 5
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
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
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