一、UIButton
Button是最常用的控件之一,属性也比较多,下面代码创建了一个系统样式的myButton 和一个自定义的myButtonCus,点击myButtonCus按钮,按钮的图案会变化,并会在屏幕中间产生一个UIImageView,展示按钮的图案。
添加一些新内容
ios 去除按钮的按下效果(阴影)
ted = NO;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
//button有自己的便利初始化,设置Button的样式
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeSystem];
//button的样式,如果要自己设置样式,选择Custom
// UIButtonTypeCustom = 0, 自定义风格
// UIButtonTypeRoundedRect = UIButtonTypeSystem, 圆角矩形
// UIButtonTypeDetailDisclosure, 蓝色小箭头按钮,主要做详细说明用
// UIButtonTypeInfoLight, 亮色感叹号
// UIButtonTypeInfoDark, 暗色感叹号
// UIButtonTypeContactAdd, 十字加号按钮
//常态下的标题,Button在不同状态下可以设置不同标题,如长按,取消等状态
[myButton setTitle:@"button" forState:UIControlStateNormal];
[myButton setTitle:@"yes" forState:UIControlStateSelected];
//[myButton setTitle:@"no" forState:UIControlStateReserved];
//[myButton setTitle:@"Application" forState:UIControlStateApplication];
//[myButton setTitle:@"Highlighted" forState:UIControlStateHighlighted];
//设置按钮大小,因为初始化和其他控件不同,frame设置容易遗漏
myButton.frame = CGRectMake(50, 50, 100, 100);
//添加点击事件
//Target:动作的执行目标(按钮的action事件写在哪个类里)
//action:按钮的回调方法,如果方法有参数,那么参数一定是按钮本身
//events:哪种触摸方式
//如果self写在对象方法中,也就是OC中的减号方法中,self就代表类对象,如果写在类方法中,就代表本类
//UIButton的触发类型
// UIControlEventTouchDown
// 单点触摸按下事件:用户点触屏幕,或者又有新手指落下的时候。
// UIControlEventTouchDownRepeat
// 多点触摸按下事件,点触计数大于1:用户按下第二、三、或第四根手指的时候。
//
// UIControlEventTouchDragInside
// 当一次触摸在控件窗口内拖动时。
//
// UIControlEventTouchDragOutside
// 当一次触摸在控件窗口之外拖动时。
//
// UIControlEventTouchDragEnter
// 当一次触摸从控件窗口之外拖动到内部时。
//
// UIControlEventTouchDragExit
// 当一次触摸从控件窗口内部拖动到外部时。
//
// UIControlEventTouchUpInside
// 所有在控件之内触摸抬起事件。
//
// UIControlEventTouchUpOutside
// 所有在控件之外触摸抬起事件(点触必须开始与控件内部才会发送通知)。
//
// UIControlEventTouchCancel
// 所有触摸取消事件,即一次触摸因为放上了太多手指而被取消,或者被上锁或者电话呼叫打断。
//
// UIControlEventTouchChanged
// 当控件的值发生改变时,发送通知。用于滑块、分段控件、以及其他取值的控件。你可以配置滑块控件何时发送通知,在滑块被放下时发送,或者在被拖动时发送。
//添加一个单击的触发类型
[myButton addTarget:self action:@selector(butAction:) forControlEvents:UIControlEventTouchUpInside];
[myButton setBackgroundColor:[UIColor yellowColor]];
[self.window addSubview:myButton];
//自定义 custom按钮
UIButton *myButtonCus = [UIButton buttonWithType:UIButtonTypeCustom];
//设置frame
myButtonCus.frame = CGRectMake(100, 100, 100, 100);
//为按钮添加图片
[myButtonCus setImage:[UIImage imageNamed:@"btnImage1.jpg"] forState:UIControlStateNormal];
[myButtonCus setImage:[UIImage imageNamed:@"btnImage2.jpg"] forState:UIControlStateHighlighted];
[myButtonCus addTarget:self action:@selector(butAction:) forControlEvents:UIControlEventTouchUpInside];
[self.window addSubview:myButtonCus];
//定义一个UIImageView 点击按钮时显示按钮上图片
UIImageView *btnImageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 200, 200)];
btnImageView.center = self.window.center;
[self.window addSubview:btnImageView];
btnImageView.tag = 1001;
return YES;
}
-(void)butAction:(UIButton*)sender
{
//使button被选择的状态,点击一次就设置成相反的
sender.selected = !sender.selected;
//得到button上面的图片
UIImage *btnImage = [sender imageForState:UIControlStateNormal];
if (sender.selected) {
btnImage = [sender imageForState:UIControlStateNormal];
}
else
{
btnImage = [sender imageForState:UIControlStateHighlighted];
}
//根据tag得到View,使用UIView强制转换成UIImageView
UIImageView *view = (UIImageView*)[self.window viewWithTag:1001];
[view setImage:btnImage];
}
运行效果:
点击中间的按钮,也就是暴漫图片,屏幕中间会出现一个大图,展示按钮上的图片
大部分的属性和方法都写在代码里面,都有注释,拷贝代码运行进行尝试就好