//UIButton - 按钮,可以用来与用户进行交互
//UIButton -> UIControl -> UIView
//button一般情况下不使用实例方法创建
/*
UIButtonTypeCustom // 自定义按钮类型,也是系统默认值(一般都会使用这个)
UIButtonTypeSystem // 系统样式
一般很少使用以下样式,因为项目的按钮我们一般都是直接加个背景图片
UIButtonTypeDetailDisclosure //样式如图
UIButtonTypeInfoLight //样式如图
UIButtonTypeInfoDark //样式如图
UIButtonTypeContactAdd // 显示一张“”的图片
UIButtonTypeRoundedRect = UIButtonTypeSystem //跟UIButtonTypeSystem一样的
*/
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
//设置按钮的位置与大小
btn.frame = CGRectMake(100, 100, 100, 50);
//设置按钮的文字,在什么状态下显示
/*按钮的状态
UIControlStateNormal // 常规下的状态
UIControlStateHighlighted // 高亮时的状态
UIControlStateDisabled // 按钮不可用时的状态
UIControlStateSelected // 选中时的状态
这些状态要配合button的两个属性一起使用,[注意]这两个属性很重要,因为后期有很多动态操作都需要通过这两个属性来判断
[注意]使用这两个属性时要注意逻辑性跟实际情况,比如你把按钮btn.enabled设置为NO,又把btn.selected设置为YES,那就矛盾了,因为你把它设置为不 可按了,那又怎么选中呢
btn.enabled //是否可按,YES为可按,NO为不可按
btn.selected //是否为选中状态,YES为选中状态,NO为美选中状态
*/
//普通下的状态
[btn setTitle:@"按钮" forState:UIControlStateNormal];
//高亮时的状态(点击不放时的状态)
[btn setTitle:@"已点击" forState:UIControlStateHighlighted];
//设置字体的颜色
[btn setTitleColor:[UIColor yellowColor] forState:UIControlStateNormal];
//点击不放时的颜色
[btn setTitleColor:[UIColor purpleColor] forState:UIControlStateHighlighted];
//修改字体大小
btn.titleLabel.font = [UIFont boldSystemFontOfSize:16];
//设置按钮的背景颜色
btn.backgroundColor = [UIColor redColor];
//设置按钮文字的阴影
//[btn setTitleShadowColor:[UIColor greenColor] forState:UIControlStateNormal];
//设置按钮文字阴影的偏移量
//[btn setTitleShadowOffset:CGSizeMake(3, 3)];
//修改文字偏移量
//创建一个结构体
//UIEdgeInsets set = UIEdgeInsetsMake(20, 0, 0, 0);
//[btn setTitleEdgeInsets:set];
//设置按钮的背景图片
//使用背景图片加载的方式会将图片拉伸到整个按钮的宽高,缺点就是会导致图片变形
//imageNamed:如果没有添加图片的后缀,会自动在图片名的后面加.png,如果使用的是.jpg图片,需要手动添加.jpg
UIImage *bgrdImg = [UIImage imageNamed:@"account_candou"];
[btn setBackgroundImage:bgrdImg forState:UIControlStateNormal];
//设置按钮的图片
//图片不会被拉升 [注意]与上面背景图片的区别
[btn setImage:[UIImage imageNamed:@"account_collect"] forState:UIControlStateNormal];
//设置图片的偏移量
[btn setImageEdgeInsets:UIEdgeInsetsMake(0, 0, 0, -30)];
// 添加一个事件
/*
UIControlEventyou很多种类型,大家自己通过command+点击这个方法就可以看到多种类型了,这里就不多做讲诉
*/
[btn addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];
// 为按钮添加标签
// tag是UIView的属性,[注意]标签值一般要大,避免重复,还有不要为0,因为系统默认self.window的标签为0
_btn.tag = 5678;
//***************分割线*******************
//该函数就是上面按钮的响应事件,这里函数的参数就是我们按下的那个按钮,通过该值我们可以获得很多关于按钮的信息
/*
sender.currentTitle; //按钮的文字
sender.currentTitleColor; //按钮的文字颜色
sender.currentImage //按钮上的图片
sender.currentBackgroundImage //按钮上的背景图片
还有很多,大家可以自己到Xcode自带的文件看下
*/
-(void)btnAction:(UIButton *)sender
{
sender.enabled = NO;
}
新手练习题:
1.微信题
就是模仿微信,点击微信,那么其他三个就变成灰色,且微信就不可再点击了,可以通过点击改变上面的背景色
四个按钮