iOS开发 UIButton 详解

原创 2015年11月21日 17:06:57
iOS开发 UIButton 详解
1.UIButton的属性
 
   //button 属性
    
    UIButton *btn = [[UIButton alloc] init];
    CGFloat btnX =100;
    CGFloat btnY =100;
    CGFloat btnW =50;
    CGFloat btnH =20;
    btn.frame = CGRectMake(btnX, btnY, btnW, btnH);
    //设置圆角
    btn.layer.cornerRadius = 10;
    //设置title
    [btn setTitle:@"按钮" forState:UIControlStateNormal];
    [btn setTitle:@"On" forState:UIControlStateHighlighted];
    //设置title 字体大小
    btn.titleLabel.font = [UIFont systemFontOfSize: 14.0];
    //设置title 颜色
    [btn setTitleColor:[UIColor blackColor]forState:UIControlStateNormal];
    [btn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateHighlighted];
    //设置文字位置,现设为居左,默认的是居中
    // 设置aligment 属性
    btn.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
    btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
    btn.contentHorizontalAlignment=UIControlContentHorizontalAlignmentLeft ;
    
    //设置title自适应对齐
    btn.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
 
    //设置背景
    [btn setBackgroundImage:[UIImage imageNamed:@"1"] forState:UIControlStateNormal];
    [btn setBackgroundImage:[UIImage imageNamed:@"1"] forState:UIControlStateHighlighted];
   
    //设置文字距离边框的间距
    btn.contentEdgeInsets = UIEdgeInsetsMake(0,10, 0, 0);
    //设置按钮的颜色
    btn.backgroundColor =[UIColor redColor];
    //action
    [btn addTarget:self action:@selector(click) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];
    
    //这里创建一个圆角矩形的按钮
    UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    
    //    能够定义的button类型有以下6种,
    //    typedef enum {
    //        UIButtonTypeCustom = 0,          自定义风格
    //        UIButtonTypeRoundedRect,         圆角矩形
    //        UIButtonTypeDetailDisclosure,    蓝色小箭头按钮,主要做详细说明用
    //        UIButtonTypeInfoLight,           亮色感叹号
    //        UIButtonTypeInfoDark,            暗色感叹号
    //        UIButtonTypeContactAdd,          十字加号按钮
    //    } UIButtonType;
    
    
    //以下是几种状态
    //    enum {
    //        UIControlStateNormal       = 0,         常规状态显现
    //        UIControlStateHighlighted  = 1 << 0,    高亮状态显现
    //        UIControlStateDisabled     = 1 << 1,    禁用的状态才会显现
    //        UIControlStateSelected     = 1 << 2,    选中状态
    //        UIControlStateApplication  = 0x00FF0000, 当应用程序标志时
    //        UIControlStateReserved     = 0xFF000000  为内部框架预留,可以不管他
    //    };
    
    /*
     * 默认情况下,当按钮高亮的情况下,图像的颜色会被画深一点,如果这下面的这个属性设置为no,
     * 那么可以去掉这个功能
     */
    btn.adjustsImageWhenHighlighted = NO;
    /*跟上面的情况一样,默认情况下,当按钮禁用的时候,图像会被画得深一点,设置NO可以取消设置*/
    btn.adjustsImageWhenDisabled = NO;
    /* 下面的这个属性设置为yes的状态下,按钮按下会发光*/
    btn.showsTouchWhenHighlighted = YES;

2.UIButton 的使用方法
//button 方法
// 用于测试的BOOL
    isOn = NO;
      if (isOn = !isOn)
        {
            [button setTitle:@"On" forState:UIControlStateNormal];
            [button setTitle:@"On" forState:UIControlStateHighlighted];
            [button setBackgroundImage:baseGreen forState:UIControlStateNormal];
            [button setBackgroundImage:altGreen forState:UIControlStateHighlighted];
        }else{
            [button setTitle:@"Off" forState:UIControlStateNormal];
            [button setTitle:@"Off" forState:UIControlStateHighlighted];
            [button setBackgroundImage:baseRed forState:UIControlStateNormal];
            [button setBackgroundImage:altRed forState:UIControlStateHighlighted];
        }
    


3.iOS 设置Button的 初始选中状态
 进入页面列表页面的时候可能 会有二级列表,数据默认是二级列表的第一个栏目下的数据,所以,默认情况下第一个 应该是选中的状态iOS <wbr>设置Button的 <wbr>初始选中状态
    比如活动秀  就是 这个二级列表的第一个,下面数据就是它的数据,所以他显示的是选中状态 红色的。
    
    
    btnMutableArray = [[NSMutableArray alloc]init]; //将button放到数组里面
    NSMutableDictionary *titleDic = [[NSMutableDictionary alloc]init]; //这个是二级标题的所有信息的字典 首页返回的
    for (int i = 0; i < titleMutableArray.count; i++) {
        titleDic = [titleMutableArray objectAtIndex:i];
        allButton = [[UIButton alloc]initWithFrame:CGRectMake(viewWidth/4*i, 0, viewWidth/4, 35)];
        [allButton setTitle:titleDic[@"name"] forState:UIControlStateNormal];
        classid = [titleDic[@"id"]intValue];
        allButton.tag = classid;
        allButton.titleLabel.font = [UIFont systemFontOfSize:14];
        [allButton setTitleColor:RGBCOLOR(231, 96, 73) forState:UIControlStateSelected];
        [allButton setTitleColor:RGBCOLOR(51, 51, 51) forState:UIControlStateNormal];
        allButton.titleLabel.textAlignment = NSTextAlignmentCenter;
        [allButton addTarget:self action:@selector(fashionButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
        [headerScrollerView addSubview:allButton];
        [btnMutableArray addObject:allButton];
    }
    ((UIButton *)[btnMutableArray objectAtIndex:0]).selected=YES;  // 关键是这里,设置 数组的第一个button为选中状态
    
    
    
    //点击事件
    -(void)fashionButtonPressed:(UIButton *)sender{
        [myFashionMutableArray removeAllObjects];
        [_myfashionTableView reloadData];
        ((UIButton *)[btnMutableArray objectAtIndex:0]).selected=NO; //点击其他button之后这里设置为非选中状态,否则会出现2个红色的选中状态
        if (sender != allButton) {
            allButton.selected = NO;
            allButton = sender;
        } //这个if是网上抄的,有点神奇
        allButton.selected = YES;
        _fashionpid = sender.tag;
        pageSize = 0;
        [self loaddataMethodsWithpid:_fashionpid page:pageSize number:Baby_NumofList andSord:0];
        
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

IOS开发学习笔记(2)-----UIButton 详解

01 //这里创建一个圆角矩形的按钮 02     UIButton *button1 = [UIButton buttonWithType:UI...
  • mrxiky
  • mrxiky
  • 2013年10月15日 12:34
  • 390

Ios开发Swift自定义UIbutton增加一个能设置高亮状态下背景颜色的方法

UIButton中没有setBackgroundColor(color UIColor state:UIControlState)的方法,因此自己写一个 /// // JoopicButton.s...

Ios开发学习笔记(一)关于更改UIButton.transform属性的部分方法

CGAffineTransformMakeTranslation方法 CGAffineTransformTranslate方法 CGAffineTransformScale方法 CGAffineTra...

ios开发_关于UIButton点击没有响应问题的阐述

今天,做项目的时候,有个需求,需要在UIView* view上放置一个UIButton* btn,代码写完,运行,表现正确,一个按钮乖乖地出现在了view上,点击,问题出现了,没有反应,一脸茫然,什么...
  • jklrty
  • jklrty
  • 2013年01月30日 17:50
  • 4972

iOS开发 - UIButton 按钮操作

UIButton 按钮操作/* 一 UIVIew 常见属性 1.frame 位置和尺寸(以父控件的左上角为原点(0,0)) 2.center 中点 (以父控件的左上角为原点(0,0)) 3.b...

iOS开发-Day26-UILabel&UIButton&UITextField

1、UILable@interface ViewController : UIViewController @property(strong,nonatomic) UILabel *lblName; ...

iOS开发系列之一 - UIButton 用法小结

// 初始化按钮并设置类型 UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; // 能够定义的UIButton类型...

iOS开发学习笔记之UIButton的使用

iOS开发学习笔记之UIButton的使用 UIButton: https://developer.apple.com/reference/uikit/uibutton 一、 描述: UIBu...

iOS开发学习之 - 深入学习UIButton(1)

UIButton 是 iOS 中最最最常用的基础控件,可是今天做项目的时候我才发现,其实 UIButton 还有很多我所不知道的东西。不禁想起了那句老话,知识就像圆圈,你知道的越多,圆圈就越大,所接触...

UIButton 按钮控件-IOS开发

声明 欢迎转载,但是请尊重作者劳动成果,转载请保留此框内声明,谢谢。 文章出处:http://blog.csdn.net/iukey UIButton是一个标准的UIContro...
  • iukey
  • iukey
  • 2012年02月29日 15:22
  • 29568
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS开发 UIButton 详解
举报原因:
原因补充:

(最多只允许输入30个字)