iOS--UIButton用法

一、简单说明

一般情况下,点击某个控件后,会做出相应反应的都是按钮

按钮的功能比较多,既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置

二、基本用法

     1.创建

    // 基本创建方法

   UIButton *button = [[UIButtonalloc] init];

   // 便利构造器创建方法

    UIButton *button1 = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];

      便利构造器风格(是一个枚举)如下
typedef enum {  
UIButtonTypeCustom = 0,                 // 自定义,无风格  
UIButtonTypeRoundedRect,              // 白色圆角矩形,类似偏好设置表格单元或者地址簿卡片 
UIButtonTypeDetailDisclosure,           //蓝色的披露按钮,可放在任何文字旁  
UIButtonTypeInfoLight,                 //微件(widget)使用的小圆圈信息按钮,可以放在任何文字旁  
UIButtonTypeInfoDark,                     //白色背景下使用的深色圆圈信息按钮  
UIButtonTypeContactAdd,               //蓝色加号(+)按钮,可以放在任何文字旁  
} UIButtonType;  
  

2.设置属性
1)Frame属性

     // 参数为x, y,按钮的长, 按钮的宽,根据需求来更改位置和大小

    button1.frame =CGRectMake(10,10, 40, 30);


2)属性
对于任何特定状态下的按钮,都可以设定该按钮该状态下的按钮标题。用setTitle 方法 设置即可:

     // 设定按钮的标题

    [button1 setTitle:@"点击"forState:UIControlStateNormal];

    // 设定标题的颜色

    [button1 setTitleColor:[UIColorredColor] forState:UIControlStateNormal];



  你也可以为按钮设置图片:

    // 为按钮的某一状态状态设置图片

    [button1 setImage:[UIImageimageNamed:@"pic"]forState:UIControlStateNormal];

    //为按钮设置背景图片

    [button1 setBackgroundImage:[UIImageimageNamed:@"pic"]forState:UIControlStateHighlighted];



  你还可以为每种按钮状态设置标题阴影。方法 setTitleShadowColor 需要一个UIColor对象做参数:

    // 阴影颜色

    [button1 setTitleShadowColor:[UIColorgrayColor] forState:UIControlStateNormal ];

 
      上面几个方法都提到 共同的参数 UIControlState(也是一个枚举) . 这个参数决定了标题、图像或其他属性将在何种状态下显现。你可以编程令按钮在哪个状态变化
enum {  
    UIControlStateNormal       = 0,  //常态                       
    UIControlStateHighlighted  = 1 << 0,                  //  高亮  
    UIControlStateDisabled     = 1 << 1,   //禁用  
    UIControlStateSelected     = 1 << 2,                  // 选中  
    UIControlStateApplication  = 0x00FF0000,          // 当应用程序标志使用时  
    UIControlStateReserved     = 0xFF000000          // 为内部框架预留的  
};  
typedef NSUInteger UIControlState;  

3.重写绘制行为
你可以通过子类化按钮来定制属于你自己的按钮类。在子类化的时候你可以重载下面这些方法,这些方法返回CGRect结构,指明了按钮每一组成部分的边界。
注意:不要直接调用这些方法, 这些方法是你写给系统调用的   

- (CGRect)backgroundRectForBounds:(CGRect)bounds;   //指定背景边界 

- (CGRect)contentRectForBounds:(CGRect)bounds;      // 指定内容边界

- (CGRect)titleRectForContentRect:(CGRect)contentRect;  // 指定文字标题边界 

- (CGRect)imageRectForContentRect:(CGRect)contentRect;  //指定按钮图像边界     

 
4.添加动作(button最重要的功能
按钮是用来干嘛的?用来触发某个动作或事件的。那我们我们要为他添加一个动作:

     // 添加点击事件

    [button1 addTarget:selfaction:@selector(buttonAction:)forControlEvents:UIControlEventTouchUpInside];

 

// button1 的点击事件

- (void)buttonAction:(id)sender

{

    // button 即触发事件的那个按钮

   UIButton *button = (UIButton *)sender;

    //写想要进行的操作

   NSLog(@"点击成功");

}


5.运行结果

运行模拟器后,手机屏幕上会出现这个按钮

点击按钮,触发成功后,控制台会输出所打印的内容.


  

最后,推荐使用这个控件写一下关灯游戏,或者打地鼠游戏.










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值