zoukankan      html  css  js  c++  java
  • IOS基础学习-2: UIButton

    IOS基础学习-2: UIButton

     

    UIBUTTON-0    

    UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关、UIButton按钮、UISegmentedControl分段控件、UISlider滑块、UITextField文本字段控件、UIPageControl分页控件。这些控件的基类均是UIControl,而UIControl派生自UIView类,所以每个控件都有很多视图的特性,包括附着于其他视图的能力。所有控件都拥有一套共同的属性和方法。

    具体视图关系如下

    UIBUTTON-1

    1. 创建按钮

    1.1 initWithFrame

    UIButton *btn1 = [[UIButton alloc]initWithFrame:CGRectMake(10, 10, 80, 44)];

    1.2 类方法buttonWithType

    通常采用自定义方法,这样的方式比较灵活

    [UIButton buttonWithType:UIButtonTypeCustom];

    和UIButtonTypeCustom等同的还有以下方式:

    复制代码
    typedef enum {  
        UIButtonTypeCustom = 0,               // 自定义,常用方式 
        UIButtonTypeRoundedRect,              //白色圆角矩形,类似偏好设置表格单元或者地址簿卡片  
        UIButtonTypeDetailDisclosure,    //蓝色的披露按钮,可放在任何文字旁  
        UIButtonTypeInfoLight,        //小圆圈信息按钮,可以放在任何文字旁  
        UIButtonTypeInfoDark,        //白色背景下使用的深色圆圈信息按钮  
        UIButtonTypeContactAdd,        //蓝色加号(+)按钮,可以放在任何文字旁  
    } UIButtonType;
    复制代码

    2. 设置按钮属性

    2.1 Frame属性

    btn.frame = CGRectMake(10.0, 10.0, 60.0, 44.0);  //x, y , weight, height;

    或者:

    [btn setFrame:CGRectMake(20,20,50,50)];

    2.2 设置标题

    [btn1 setTitle:@"点击" forState:UIControlStateNormal];  //设置标题
    [btn1 setTitleColor:[UIColor orangeColor] forState:UIControlStateNormal]; //设置标题颜色[btn1 setTitleShadowColor:[UIColor grayColor] forState:UIControlStateNormal ];//标题阴影颜色

    2.3设置背景图片

     
    [btn1 setImage:[UIImageimageNamed:@"btn1Img"] forState:UIControlStateNormal];   //按钮图片
    [btn1 setBackgroundImage:[UIImageimageNamed:@"btn1BgImg"] forState:UIControlStateNormal];  //背景图片

    2.4 设置按钮图片内部间距

    UIEdgeInsets insets;     // 设置按钮内部图片间距
    insets.top = insets.bottom = insets.right = insets.left = 10;
    btn.contentEdgeInsets = insets;    //内容间距    
    bt.titleEdgeInsets = insets;         // 标题间距

    3. 按钮状态

    3.1 常用状态

    forState后,可以选择以下状态,常用的包括:常态,高亮,禁用,选中;

    复制代码
    enum {  
        UIControlStateNormal       = 0,          //常态                       
        UIControlStateHighlighted  = 1 << 0,                      // 高亮  
        UIControlStateDisabled     = 1 << 1,          //禁用  
        UIControlStateSelected     = 1 << 2,                      //选中  
        UIControlStateApplication  = 0x00FF0000,          //当应用程序标志使用时  
        UIControlStateReserved     = 0xFF000000          //为内部框架预留的  
    };  
    typedef NSUInteger UIControlState;
    复制代码

    3.2高亮或者禁用时,微调属性

    高亮时,图像颜色会加深,如果要关闭此属性,请设置adjustsImageWhenHighlighted 为NO

    btn1.adjustsImageWhenHighlighted = NO;

    禁用时,图像颜色会变浅,如果要关闭此属性,请设置adjustsImageWhenDisabled 为NO

    btn1.adjustsImageWhenDisabled = NO;

    选中时,可以设置按钮发光,请设置showsTouchWhenHighlighted 为YES

    btn1.showsTouchWhenHighlighted = YES;

    4. 添加动作

    复制代码
    [btn1 addTarget:self action:@selector(btnPressed:) forControlEvents:UIControlEventTouchUpInside];   //为按钮的行为添加属性
    
    -(void)btnPressed:(id)sender{              //处理按钮按下事件
        UIButton* btn = (UIButton*)sender;  
        if(btn ==  btn 1){
        NSLog(@"btn1 pressed");
        }
    }
    复制代码

    5. 实例

    具体见下面的例子。

  • 相关阅读:
    awt
    登录校验 简单实现
    事务隔离级别
    事务的四大特性(ACID)
    多线程简单了解
    Eureka bug
    什么是存储过程
    filter和servlet的区别
    说说你对多线程锁机制的理解
    session的生命周期,session何时创建,何时销毁,session销毁的方式
  • 原文地址:https://www.cnblogs.com/u0mo5/p/5015379.html
Copyright © 2011-2022 走看看