Button:多应用于监听点击,对想要获取的事件响应
内部结构:ImageView:显示图片 - Label:显示文字
也可以当作ImageView和Label的合体使用
常见属性:
--UIButton状态:
UIControlStateNormal //正常状态
UIControlStateHighlighted //高亮状态
UIControlStateDisable //禁用状态
UIControlStateSelected //选中状态
UIControlStateReserved //保留状态
--UIButton类型
UIButtonTypeCustom //自定义类型,多用于当有图片的时候
UIButtonTypeContactAdd // 添加按钮,不用设置Frame,有默认值
UIButtonTypeInfoDark //暗色背景的信息按钮
UIButtonTypeInfoLight //浅色背景的信息按钮
⚠注意: 一个方法可以监听多个按钮;
--UIButton常用方法
//设置对应状态的标题内容
- (void)setTitle:(NSString*)title forState:(UIControlState)state;
//设置对应状态的标题颜色
-(void)setTitleColor:(UIColor *)color forState:(UIControlState)state;
//设置对应状态的标题阴影颜色
-(void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state;
//设置对应状态的按钮的图片
- (void)setImage:(UIImage*)image forState:(UIControlState)state;
//设置对应状态的按钮背景图片
-(void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state
//添加事件;用代码的方式监听点击事件
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
--自定义button设置图片大小,文字大小
方法1-//重写设置图片的的位置
- (CGRect)imageRectForContentRect:(CGRect)contentRect
{
CGFloatwight = contentRect.size.width;
CGFloathight = contentRect.size.height;
returnCGRectMake(5, 5, wight/2,hight/2);
}
//重写次方法设置文字的的位置
- (CGRect)titleRectForContentRect:(CGRect)contentRect
{
CGFloatwight = contentRect.size.width;
CGFloathight = contentRect.size.height;
returnCGRectMake(wight/2, 5, wight/2, hight/2);
}
方法2- 重写layousubviws设置图片文字位置
- (void)layoutSubviews
{
[superlayoutSubviews];
CGFloatwight =self.frame.size.width;
CGFloathight =self.frame.size.height;
self.imageView.frame=CGRectMake(5, 5, wight/2, wight/2);
}
上述两种方法,多用于自定义控件;合理利用button的label和imgview
当自定义button的时候:but.imageView.frame=CGRectMake(0, 0, 80, 40);
//❌错误,设置没有效果
--设置按钮内边距(图片-文字-上下左右的边距 )
1.通过storyboard的Edgt设置 图片-文字 内边距
2.通过代码
//设置图片的边距
self.btn.titleEdgeInsets=UIEdgeInsetsMake(10, 20, 30, 40);
//设置label的编剧
self.btn.imageEdgeInsets=UIEdgeInsetsMake(10, 20, 30, 40);