iOS-视图之UIButton

作者: 茶哥儿 | 来源:发表于2016-03-13 20:03 被阅读193次

    今天我们开始UIButton的研究,UIButton是一个可以产生交互的视图,在App中也是高频出现的视图类,顾名思义就是按钮的意思,看到按钮他的功能我们就一目了然了,就是可以单击,然后发生对应的动作。

    //眼熟吧,不多解释了
    UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(50, 50, 100, 30)];
    [self.view addSubview:button];
    
    //设置button的背景图片,参数为UIImage
    [button setBackgroundImage:[UIImage imageNamed: @"tea1.png" ]
                      forState:UIControlStateNormal];
    [button setBackgroundImage:[UIImage imageNamed: @"tea2.png" ]
                      forState:UIControlStateHighlighted];
    /*你可能会对我的这两行代码有疑问,很正常,这两句话的意思是button在平时状态
     下的背景是tea1.png,当被点击下去的时候背景图会变成tea2.png,当松开时又会
     变成tea1.png,如果你有兴趣可以继续深入的研究下UIButton的UIControlState*/
    
    
    //设置button的文本
    [button setTitle:@"123"forState:UIControlStateNormal];
    [button setTitle:@"321"forState:UIControlStateHighlighted];
    //这里是不是与上边很类似,没错作用是一样的
    
    
    
    //调整图片在当前button视图上的位置,参数是UIEdgeInsets ,后边的参数分别代表着上,左,下,右
    [button setImageEdgeInsets:UIEdgeInsetsMake(0, 10, 0, 0)];
    
    //同上,只不过这个调整的是文字的偏移
    [button setTitleEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 10)];
    
    
    
    //设置button的文本颜色
    [button setTitleColor:[UIColor whiteColor]forState:UIControlStateNormal];
    [button setTitleColor:[UIColor blackColor]forState:UIControlStateHighlighted];
    //同理哦!
    
    
    /*为button添加关联事件,UIControlEventTouchUpInside当我们点击在button内部
     并且离开button时也在内部的时候才会触发drinkTea这个方法,这也是UIButton的一个
     方便之处,他为我们设置了很多不同的触发方法。*/
    [button addTarget:self action:@selector(drinkTea)
                        forControlEvents:UIControlEventTouchUpInside];
    

    UIButton是可以添加事件的,但是添加事件这里有个小地方要注意下

    当没有冒号的时候

    没有冒号
    [button addTarget:self action:@selector(drinkTea)
                           forControlEvents:UIControlEventTouchUpInside];
    
    - (void)drinkTea {
          NSLog(@"茶哥儿,写快点!");
    }
    

    当有冒号的时候

    有冒号
    [button addTarget:self action:@selector(drinkTea:)
                           forControlEvents:UIControlEventTouchUpInside];
    
    - (void)drinkTea:(UIButton *)sender {
            NSLog(@"茶哥儿,写快点!");
    }
    

    看到区别了吧,没错当方法名后边有冒号的时候,对应的方法后边是要跟参数的,参数类型就是UIButton,而参数sender指得就是我们上边创建的button。

    创造即永恒,喝茶去……

    相关文章

      网友评论

        本文标题:iOS-视图之UIButton

        本文链接:https://www.haomeiwen.com/subject/dwqflttx.html