IOS开发UI基础之UIButton

什么是按钮?

 

上图出现的一系列的都是按钮,一般我们在做项目的时候判断按钮的标准是: 当点击的时候能够做出相应反应的一般都是按钮

按钮的功能能比较多:既能显示文字 又能显示图片 而且我们还可以自定义按钮 调整图片和文字的位置和排列方式

我们一般创建按钮在storyboard里面直接拖一个按钮 其实storyboard本质还是将我们设置的一些属性转换成为代码

UIButton的状态

  • 普通状态(normal)
  1. 默认情况(Default)
  2. 对应的枚举常量为UIControlStateNormal
  • 高亮状态(highlighted)
  1. 按钮被按下去的时候手指还没有松开的时候的状态
  2. 对应的枚举常量 UIControlStateHighlighted
  • 不可用状态(disabled)
  1. 如果设置了按钮的Enabled 属性为NO  就是处于不可用(disable)状态 表示按钮不可以被点击
  2. 对应的枚举常量UIControlStateDisabled
  • 选中状态 (selected)
  1. 当按钮被选中之后 显示的状态
  2. 对应的枚举常量UIControlStateSelected

设置按钮的背景图片

  • 设置按钮在不同状态下得背景图片 注意:为了保证高亮状态下的图片正常显示 必须设置按钮的type为custom

按钮的样式

使用代码创建按钮

UIButton的类型

  • UIButtonTypeCustom            //自定义类型
  • UIButtonTypeRoundedRect       //圆角类型
  • UIButtonTypeDetailDisclosure   //细节展示按钮
  • UIButtonTypeInfoLight          //浅色背景的信息按钮
  • UIButtonTypeInfoDark           //暗色背景的信息按钮
  • UIButtonTypeContactAdd         // 添加按钮

 

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;

 

 

 

注意:

给按钮设置文字时,苹果文档说明,不能使用label对象设置文字的颜色或者阴影颜色,相反必须使用setTitleColor:forState: and setTitleShadowColor:forState:这两个方法才能修改这些值。

为按钮添加事件

为按钮添加事件 用以下方法

添加事件

- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;

这些事件都是基于触摸、基于值、基于编辑。有如下事件会触发。

在点击按钮是按钮是凹下去,然后弹起才触发起事件,

按钮的事件状态有以下几种:

  •     UIControlEventTouchDown      // 按下   
  •         UIControlEventTouchDownRepeat  多次按下  
  •         UIControlEventTouchUpInside // 在按钮及其一定外围内松开
  •         UIControlEventTouchUpOutside // 按钮外面松开

 

其他属性

adjustsImageWhenDisabled     当按钮禁用的情况下,图像的颜色会被画深一点,默认为YES。

adjustsImageWhenHighlighted   当按钮高亮的情况下,图像的颜色会被画深一点,默认为YES。

showsTouchWhenHighlighted    如果设置为YES  点击时的闪光效果会被前景图片遮住中间部分;

contentEdgeInsets    设置按钮的内部内容(包含按钮图片和标题)离按钮边缘上下左右的距离。

说到contentEdgeInset不得不说下下面两个属性:

疑难问题

有些时候我们想让UIButton的title居左对齐,我们设置 
btn.textLabel.textAlignment = UITextAlignmentLeft 是没有作用的

我们需要设置  btn.contentHorizontalAlignment = UIControlContentHorizonAlignmentLeft;

但是问题又出来,此时文字会紧贴到左边框,我们可以设置  btn.contentEdgeInsets = UIEdgeInsetsMake(0,10, 0, 0); 使文字距离左边框保持10个像素的距离。

好了今天 就分享到这里了  如果你有更好的建议 请留言评论! 谢谢支持

你可能感兴趣的:(UIButton)