- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
//iOS中按钮的学习 UIButton
//初始化button对象 使用系统提供的样式。由于button有自己的初始化方法,所以使用自己的
UIButton *myBtn = [UIButton buttonWithType:UIButtonTypeSystem];
//为按钮设置标题 常态状态下的标题。也就是不点击按钮时候的标题
[myBtn setTitle:@"点我" forState:UIControlStateNormal];
//设置按钮大小
[myBtn setFrame:CGRectMake(100, 100, 100, 50)];
//显示按钮
[self.window addSubview:myBtn];
//选中状态
[myBtn setTitle:@"选中" forState:UIControlStateSelected];
//设置高亮标题
[myBtn setTitle:@"高亮" forState:UIControlStateHighlighted];
//为button添加点击事件
//target-action 目标动作机制
//target :目标,方法的执行体。(就是按钮的action事件写在那个类里面)
//action:按钮的回调方法,如果方法有参数,那么这个参数一定是按钮本身,方法没有参数也可以。
//events: 那种触摸方式会触发按钮的回调方法
//self :如果写在对象方法中,也就是OC中减号方法中,self就代表类对象,如果写在类方法中,也就是OC的加号方法,self就是代表本类
[myBtn addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];
//按钮的触发方式:
// UIControlEventTouchUpInside
// 单击(手指按下去,然后再松手的时候触发方法),这个点击方式也是最常用的点击方式
// UIControlEventTouchDown
// 点下去之后就会触发方法,不等松手
// UIControlEventTouchDragInside
// 放在上面滑动就会触发
// UIControlEventTouchDragOutside
// 点着按钮滑动足够远 就会触发
//custom类型的button
//初始化button
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
//为按钮添加图片
[button setImage:[UIImage imageNamed:@"han.jpg"] forState:UIControlStateNormal];
//设置按钮frame
button.frame = CGRectMake(100, 100, 100, 100);
//设置按钮的回调方法
[button addTarget:self action:@selector(custombtnAction:) forControlEvents:UIControlEventTouchUpInside];
//将按钮添加到父视图上
[self.window addSubview:button];
//添加高亮模式
[button setImage:[UIImage imageNamed:@"颜色.gif"] forState:UIControlStateHighlighted];
//定义一个UIImageView 点击按钮的时候,显示按钮上的图片
UIImageView *btnImageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
btnImageView.center = self.window.center;
[self.window addSubview:btnImageView];
btnImageView.tag = 1000;
//练习
UIButton *mybut =[UIButton buttonWithType:UIButtonTypeSystem];
[mybut setFrame:CGRectMake(100, 100, 100, 100)];
[mybut setTitle:@"biaoti" forState:UIControlStateNormal];
[mybut addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];
[self.window addSubview:mybut];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
// [self.window bringSubviewToFront:myBtn];//加。。。
return YES;
}
//按钮的回调方法,此函数就是触发该方法的按钮
-(void)btnAction:(UIButton *)sender{
/*
NSLog(@"我最帅");
//点击按钮,改变按钮标题
[sender setTitle:@"还想点不?" forState:UIControlStateNormal];
//点击按钮,随机一个颜色赋给window颜色
UIColor *randomColor = [UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1];
[self.window setBackgroundColor:randomColor];
*/
//选中状态需要配合 selected属性来使用 bool值
// sender.selected = YES; //单点选中
// if (sender.selected == YES) { //双点取消
// sender.selected = NO;
// }
// else{
// sender.selected = YES;
// }
sender.selected =!sender.selected; //双点取消
}
-(void)custombtnAction:(UIButton *)sender{
//得到按钮的图片并且显示在UIImageView 如果图片是常态状态下得就变换为高亮状态下,如果是高亮状态下得图片,就变换为常态状态下的图片
UIImageView *imageView = (UIImageView *)
[self.window viewWithTag:1000];
UIImage *btnImage = [sender imageForState:UIControlStateNormal];
imageView.image = btnImage;
sender.selected =!sender.selected;
if (sender.selected == YES) {
sender.selected =NO;
UIImage *btnImage = [sender imageForState:UIControlStateNormal];
imageView.image = btnImage;
sender.selected =!sender.selected;
}
else{
sender.selected =YES;
UIImage *btnImage = [sender imageForState:UIControlStateHighlighted];
imageView.image = btnImage;
sender.selected =!sender.selected;
}
}