iOS个人整理03-UIButton按钮

来源:互联网 发布:2016旅行软件比例 编辑:程序博客网 时间:2024/06/07 19:43


一、UIButton

Button是最常用的控件之一,属性也比较多,下面代码创建了一个系统样式的myButton 和一个自定义的myButtonCus,点击myButtonCus按钮,按钮的图案会变化,并会在屏幕中间产生一个UIImageView,展示按钮的图案。


添加一些新内容

ios  去除按钮的按下效果(阴影)


Button.adjustsImageWhenHighlighted = 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];}

运行效果:

点击中间的按钮,也就是暴漫图片,屏幕中间会出现一个大图,展示按钮上的图片


大部分的属性和方法都写在代码里面,都有注释,拷贝代码运行进行尝试就好

0 0
原创粉丝点击