UIButton

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);

你可能感兴趣的:(UIButton)