iOS开发UI之UIButton的基本使用

一. 继承关系:

UIButton --> UIControl --> UIView


二. 什么是按钮

UIButton既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置


三. UIButton的状态

  • UIControlStateNormal : 默认状况

  • UIControlStateHighlighted : 高亮状态(按钮被按下去的时候,既为手指还未松开)

  • UIControlStateDisabled : 失效状态,不可用状态

    如果enable = NO,处于disable状态,代表按钮不可以被点击

四. 按钮的样式

Ø UIButtonTypeCustom:无类型,按钮的内容需要自定义

Ø UIButtonTypeSystem:

Ø UIButtonTypeDetailDisclosure:

Ø UIButtonTypeInfoLight:

Ø UIButtonTypeInfoDark:详情按钮

1.1. 创建按钮

  1. UIButton *addBtn = [UIButton buttonWithType:UIButtonTypeCustom];

2. 设置按钮上的图片(按钮上的图片分状态,设置图片时必须告诉系统文字在按钮的什么状态下显示)

  1. // 设置默认状态下的图片
  2. [addBtn setImage:[UIImage imageNamed:@"add"] forState:UIControlStateNormal];
  3. // 设置高亮状态下的图片
  4. [addBtn setImage:[UIImage imageNamed:@"add_highlighted"] forState:UIControlStateHighlighted];
  5. // 设置不可点击时的图片
  6. [addBtn setImage:[UIImage imageNamed:@"add_disabled"] forState:UIControlStateDisabled];

3. 设置图片对齐方式

  1. btn.imageView.contentMode = UIViewContentModeScaleAspectFit;

4. 设置背景色

  1. btn.backgroundColor = [UIColor purpleColor];

5. 设置按钮的背景图片

  1. [btn setBackgroundImage:[UIImage imageNamed:@"buttongreen"] forState:UIControlStateNormal];
  2. [btn setBackgroundImage:[UIImage imageNamed:@"buttongreen_highlighted"] forState:UIControlStateHighlighted];

6. 设置文字(按钮上的文字分状态,设置文字时必须告诉系统文字在按钮的什么状态下显示)

  1. [btn setTitle:@"普通按钮" forState:UIControlStateNormal];
  2. [btn setTitle:@"高亮按钮" forState:UIControlStateHighlighted];

7. 设置文字颜色

  1. [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
  2. [btn setTitleColor:[UIColor blueColor] forState:UIControlStateHighlighted];

8. 设置文字大小

  1. btn.titleLabel.font = [UIFont systemFontOfSize:20];

9. 设置文字的颜色

  1. [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
  2. [btn setTitleColor:[UIColor blueColor] forState:UIControlStateHighlighted];

10. 设置文字的大小

  1. btn.titleLabel.font = [UIFont systemFontOfSize:20];

11. 监听按钮

  1. [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchDown];

12. 将按钮添加到View上

  1. [self.view addSubview:btn];

13. 获取按钮上的文字

  1. [self.addBtn titleForState:UIControlStateNormal];

14. 获得按钮的文字颜色

  1. [self.addBtn titleColorForState:UIControlStateNormal];

15. 获得按钮内部的小图片

  1. [self.addBtn imageForState:UIControlStateNormal];

16.获得按钮的背景图片

  1. [self.addBtn backgroundImageForState:UIControlStateNormal];

17.内边距设置

  1. // 设置按钮内边距
  2. self.btn.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 10);
  3. self.btn.titleEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);

五. UIButton/UIImageView/UILabel的选择

uUIButton

u特点

-既能显示文字,又能显示图片(能显示2张图片,背景图片、内容图片)

-长按高亮的时候可以切换图片文字

-直接通过addTarget...方法监听点击

uUIImageView

-能显示图片,不能直接通过addTarget...方法监听点击

uUILabel

-能显示文字,不能直接通过addTarget...方法监听点击

u选择

u仅仅是显示数据,不需要点击

-建议选择UIImageView、UILabel


u不仅显示数据,还需要监听点击

-建议选择UIButton

-其实UIImageView、UILabel也可以通过手势识别器来监听(后面课程会学)


u长按控件后,会改变显示的内容

-不用考虑了,选择UIButton(因为UIButton有highlighted这种状态)


u同时显示2张图片:背景图片、内容图片

-不用考虑了,选择UIButton






原文地址:https://www.cnblogs.com/Xfsrn/p/4842420.html