作用:既能显示文字,也能显示图片
状态:高亮,正常,按下
内部:
@property(nonatomic,readonly,retain)UILabel *titleLabel NS_AVAILABLE_IOS(3_0); @property(nonatomic,readonly,retain)UIImageView *imageView NS_AVAILABLE_IOS(3_0);
链接:https://www.jianshu.com/p/0fd782d67efb
有一个imageView和label
创建UIButton:
IButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; //等价 UIButton *btn = [[UIButton alloc] init];
//在btn被按下时,会调用buttonClick方法
[btn addTarget:self action:@selector(buttonClick) forCOntrolEvents:UIControlEventTouchUpInside];
//带参数的监听方法
[btn addTarget:self action:@selector(buttonClick:) forCOntrolEvents:UIControlEventTouchUpInside];
按钮来实现图片上文字下的效果
第一种:
-(CGRect)titleRectForContentRect:(CGRect)contentRect{ // 返回文字的frame } - (CGRect)imageRectForContentRect:(CGRect)contentRect{ // 返回图片的frame }
第二种
重写layoutSubViews方法
第三种 按钮的内边距:
self.btn.contentEdgeInsets = UIEdgeInsetsMake(30, 30, 0, 0); self.btn.titleEdgeInsets = UIEdgeInsetsMake(0, -30, 0, 0); self.btn.imageEdgeInsets = UIEdgeInsetsMake(0, -30, 0, 0);