1. 创建Button,并设置其位置,将其放在某个视图上
// buttonWithType,用来设置button的类型
UIButton
* button = [
UIButton
buttonWithType
:
UIButtonTypeSystem
];
button.frame = CGRectMake(0, 100, 320, 100);
[self.window addSubview:button];
//虽然window的
父类不是
UIView,
但它父类的父类是
UIView
[button removeFromSuperview];//删除button
// 【button的类型(枚举值)】(一般会用自定义风格(带图片的选自定义风格),系统风格比较丑啦)
// typedef NS_ENUM(NSInteger, UIButtonType) {
// UIButtonTypeCustom = 0, //
自定义风格
// UIButtonTypeSystem NS_ENUM_AVAILABLE_IOS(7_0), //系统风格
// UIButtonTypeDetailDisclosure,
// UIButtonTypeInfoLight,
// UIButtonTypeInfoDark,
// UIButtonTypeContactAdd,
// UIButtonTypeRoundedRect = UIButtonTypeSystem,
// };
2.设置button背景颜色
button.backgroundColor = [UIColor redColor];
3.设置button的title(一定要设置状态)
[button
setTitle
:
@"
按钮
"
forState
:
UIControlStateNormal
];
[button
setTitle
:
@"
被点击了
"
forState:
UIControlStateHighlighted
];
[button setTitle:@"被选择了" forState:UIControlStateSelected];
[button setTitle:@"
被禁用了
"
forState:
UIControlStateDisabled
];
//【button常用的四个状态】
//
正常状态;高亮状态;被选择的状态(调查,点会出来对勾);荒废状态,即被禁用的状态
// UIControlStateNormal = 0, 正常状态
// UIControlStateHighlighted = 1 << 0,
高亮状态
// UIControlStateDisabled = 1 << 1, 荒废状态
// UIControlStateSelected = 1 << 2,
被选择的状态
//
【注意下面这种写法,语法正确,但无法显示】
//button.titleLabel.text = @"123";//只设置了标题,但没有设置状态。可以获取到(可以打印打印),但手机屏幕没法显示出来
4.设置button的标题
//设置标题的内容
[button setTitle:@"按钮" forState:UIControlStateNormal];
//
设置字体的大小
button.titleLabel.font = [UIFont systemFontOfSize:10];
//
自定义风格时,设置标题颜色(需要设置状态)
[button
setTitleColor
:[
UIColor
redColor
]
forState
:
UIControlStateNormal
];
5.关于button的背景图片(自定义图片)
// 设置button在不同状态下的背景图片(图片铺满整个button)
[button setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
//
设置
button
在不同状态下的图标(图片有多大就显示多大)
[button setImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];//
默认图标放在中间
//【补充:当设置的是图标,并且想改变图标在button上的位置时】
// 【
设置图标的坐标】【设置button上title的位置坐标】都可以用下面的结构体
// typedef struct UIEdgeInsets {
// CGFloat top, left, bottom, right;
// } UIEdgeInsets;
// 四个成员变量的值分别表示:距top、距left、距bottom、距right的距离增加多少。
// CGFloat top, left, bottom, right;
// } UIEdgeInsets;
// 四个成员变量的值分别表示:距top、距left、距bottom、距right的距离增加多少。
// UIEdgeInsets set = UIEdgeInsetsMake(10, 0, 0, 0);
// [button setImageEdgeInsets:set];
// [button setTitleEdgeInsets:set];
6.给button添加监听事件
//当button监听到UIControlEventTouchUpInside(点击事件)的时候,给当前对象发送一个选择器中存放的消息。
//监听事件,执行buttonAction方法。(这里
buttonAction方法无参
)
[button addTarget:self action:@selector(buttonAction) forControlEvents:UIControlEventTouchUpInside];
//
监听事件,执行buttonAction方法。
(这里
buttonAction方法有参
)
//
传参时,因为是button在执行这个方法,所以默认把自己传过来
[button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
//【补充】
// 常用
事件的类型
// UIControlEventTouchDown
只要点下去就执行(不会等到松手之后才触发)
// UIControlEventTouchDownRepeat
连击的次数大于一的时候执行
// UIControlEventTouchUpInside 完成一次点击(在里面点击,在里面松手),就执行
// UIControlEventTouchUpOutside
完成一次点击(在里面点击,并拖拽到外面再松手)
7.其他常用属性
button.
selected
=
YES
;
//button
设置为被选择的状态
button.enabled = NO;//button设置为被禁用状态
button.hidden = YES;//
隐藏
button
button.tag = 1000;//设置button的tag,以便从它所在的视图上获取
UIButton *
button = (UIButton *)[self.window viewWithTag:1000];//viewWithTag 是UIView的方法,通过tag值在子视图中查找视图
8.定时器