iOS之UIButton

来源:互联网 发布:随遇软件 编辑:程序博客网 时间:2024/06/06 18:16

-(void)addbtn{

  

//UIButton *btn=[[UIButton alloc]initWithFrame:CGRectMake(100, 100, 200, 50)];

    // 设置自定义的按钮

UIButton *btn=[UIButtonbuttonWithType:UIButtonTypeCustom];//UIButtonTypeRoundedRect是设置一个圆角按钮

// 按钮的位置坐标

    btn.frame=CGRectMake(80,250,250,30);

    

// 普通状态按钮标题

    [btn setTitle:@"Button"forState:UIControlStateNormal];

//  高亮状态的按钮标题,点击按钮时会高亮

    [btn setTitle:@"高亮状态" forState:UIControlStateHighlighted];//

    

// 高亮状态光晕效果

    [btn setShowsTouchWhenHighlighted:YES];

    

//设置标题的颜色

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

//设置高亮时的标题的颜色

    [btn setTitleColor:[UIColorgreenColor]forState:UIControlStateHighlighted];

    

// 设置标题的字体大小

    [btn.titleLabelsetFont:[UIFontboldSystemFontOfSize:20]];

    btn.titleLabel.font = [UIFontsystemFontOfSize:16];

    btn.titleLabel.font=[UIFontsystemFontOfSize:17weight:UIFontWeightBold];

    

//设置背景颜色

    [btn setBackgroundColor:[UIColorblueColor]];

    

// 图片被拉伸式地设置背景图片

    [btn setBackgroundImage:[UIImageimageNamed:@"bankYellow"]forState:UIControlStateNormal];

//  按钮被选中时的背景图片

    [btn setBackgroundImage:[UIImageimageNamed:@"bankBlue"]forState:UIControlStateHighlighted];

    

//设置按钮的图片,超过按钮尺寸会吧标题也覆盖掉

    [btn setImage:[UIImageimageNamed:@"bankYellow"]forState:UIControlStateNormal];

//设置按钮高亮时的图片,也就是按钮点击下去未松开的时候;

    [btn setImage:[UIImageimageNamed:@"bankBlue"]forState:UIControlStateHighlighted];

//设置按钮被选中时的图片,select属性必须设置为yes,选中时的图片才有作用

    btn.selected=YES;

     [btn setImage:[UIImageimageNamed:@"bankBlue"]forState:UIControlStateSelected];

    

//设置按钮内容的对其方式

btn.contentHorizontalAlignment=UIControlContentHorizontalAlignmentLeft;


    //添加按钮的点击事件

    [btn addTarget:self action:@selector(sendNoti:)forControlEvents:UIControlEventTouchUpInside];

    

    [self.viewaddSubview:btn];

  

}

-(void)sendNoti:(UIButton *)sender{

    threeVC *three=[[threeVCalloc]init];

    [self.navigationControllerpushViewController:threeanimated:YES];

}




=====简单的封装:


调用:

  NSDictionary *dict=@{

         @"title":@"第一",//标题

         @"highlightTitle":@"第二",//高亮标题

         @"selectedTitle":@"第三",//选中时的标题

         

         @"titlecolor":[UIColorredColor],//标题颜色

         @"highlighttitlecolor":[UIColorgreenColor],//高亮标题颜色

         @"selectedtitlecolor":[UIColoryellowColor],//选中时标题颜色


//         @"image":@"bankYellow",//图片

//         @"highlightimage":@"bankBlue",//高亮图片

//         @"selectedimage":@"bankGreen",//选中时的图片

//

//         @"bgimage":@"bankYellow",//背景图片

//         @"highlightbgimage":@"bankBlue",//高亮背景图片

//         @"selectedbgimage":@"bankGreen",//选中时的背景图片

//


         @"bgcolor":[UIColorblueColor],//背景颜色

         @"highlightbgcolor":[UIColorgreenColor],//高亮时背景颜色

         @"selectedbgcolor":[UIColorredColor],//选中时的背景颜色

         

         @"isSetShowsTouchWhenHighlighted":[NSNumbernumberWithBool:YES],// 高亮状态是否有光晕效果,BOOl类型

         @"fontsize":[NSNumbernumberWithInteger:30],//标题大小NSInteger类型

         @"btnaligmentmark":@"",//按钮内容对齐方式的标识,1左对齐,2右对齐,3填充,其他居中NSInteger类型 ,[NSNumber numberWithInteger:1];

         @"isSelectedBtn":[NSNumbernumberWithBool:YES]

                         };

   

    LYBaseBtn *btn=[[LYBaseBtnalloc]initWithFrame:CGRectMake(0,100,100, 50withDict:dict];

    //添加按钮的点击事件

    [btn addTarget:self action:@selector(sendNoti:)forControlEvents:UIControlEventTouchUpInside];

    [self.viewaddSubview:btn];


btn封装:

#import <UIKit/UIKit.h>


@interface LYBaseBtn : UIButton

/**

 *arr    参数数组

 */

-(instancetype)initWithFrame:(CGRect)frame withDict:(NSDictionary *)dict;

@property(nonatomic,copy)NSString *title;//标题

@property(nonatomic,copy)NSString *highlightTitle;//高亮标题

@property(nonatomic,copy)NSString *selectedTitle;//选中时的标题


@property(nonatomic,copy)NSString *image;//图片

@property(nonatomic,copy)NSString *highlightimage;//高亮图片

@property(nonatomic,copy)NSString *selectedimage;//选中时的图片


@property(nonatomic,copy)NSString *bgimage;//背景图片

@property(nonatomic,copy)NSString *highlightbgimage;//高亮背景图片

@property(nonatomic,copy)NSString *selectedbgimage;//选中时的背景图片


@property(nonatomic,strong)UIColor *titlecolor;//标题颜色

@property(nonatomic,strong)UIColor *highlighttitlecolor;//高亮标题颜色

@property(nonatomic,strong)UIColor *selectedtitlecolor;//选中标题颜色


@property(nonatomic,strong)UIColor *bgcolor;//背景颜色

@property(nonatomic,strong)UIColor *highlightbgcolor;//高亮背景颜色

@property(nonatomic,strong)UIColor *selectedbgcolor;//选中背景颜色


@property(nonatomic,assign)BOOL isSetShowsTouchWhenHighlighted;// 高亮状态是否有光晕效果


@property(nonatomic,assign)UIControlContentHorizontalAlignment btnalignment;//按钮内容个对齐方式


@property(nonatomic,assign)NSInteger btnaligmentmark;//对齐方式的标志



@property(nonatomic,assign)NSInteger fontsize;//字体大小


@property(nonatomic,assign)BOOL isSelectedBtn;//按钮是否选中


@end

-------

#import "LYBaseBtn.h"


@implementation LYBaseBtn

-(instancetype)initWithFrame:(CGRect)frame withDict:(NSDictionary *)dict{

    if(self==[superinitWithFrame:frame]){

       

        [selfsetAttributeWithDict:dict];//设置属性

        [self addbtn];//添加按钮

    }

    return self;

}


-(void)addbtn{

    if(self.title){

    // 普通状态按钮标题

    [selfsetTitle:self.titleforState:UIControlStateNormal];

    }

    if(self.highlightTitle){

    //  高亮状态的按钮标题,点击按钮时会高亮

        [selfsetTitle:self.highlightTitleforState:UIControlStateHighlighted];

    }

    if(self.selectedTitle &&self.isSelectedBtn){

        //  高亮状态的按钮标题,点击按钮时会高亮

        [selfsetTitle:self.selectedTitleforState:UIControlStateSelected];

    }

    

    if(self.isSetShowsTouchWhenHighlighted){

    // 高亮状态光晕效果

    [selfsetShowsTouchWhenHighlighted:self.isSetShowsTouchWhenHighlighted];

    }

    

    if(self.titlecolor){

    //设置标题的颜色

    [selfsetTitleColor:self.titlecolorforState:UIControlStateNormal];

    }

    if(self.highlighttitlecolor){

    //设置高亮时的标题的颜色

    [selfsetTitleColor:self.highlighttitlecolorforState:UIControlStateHighlighted];

    }

    if(self.selectedtitlecolor&&self.isSelectedBtn){

        //设置选中时的标题的颜色

        [selfsetTitleColor:self.selectedtitlecolorforState:UIControlStateSelected];

    }

    

    if(self.fontsize){

// 设置标题的字体大小

    self.titleLabel.font=[UIFontsystemFontOfSize:self.fontsizeweight:UIFontWeightBold];

    }

    

    if(self.bgcolor){

    //设置背景颜色

    [selfsetBackgroundColor:self.bgcolor];

    }

    if(self.highlightbgcolor){

        //设置高亮背景颜色

        [selfsetBackgroundColor:self.highlightbgcolor];

    }

    if(self.selectedbgcolor&&self.isSelectedBtn){

        //设置选中时的背景颜色

        [selfsetBackgroundColor:self.selectedbgcolor];

    }

    

    

    if(self.bgimage){

    // 图片被拉伸式地设置背景图片

    [selfsetBackgroundImage:[UIImageimageNamed:self.bgimage]forState:UIControlStateNormal];

    }

     if(self.highlightbgimage){

    //  按钮高亮时的背景图片

    [selfsetBackgroundImage:[UIImageimageNamed:self.highlightbgimage]forState:UIControlStateHighlighted];

     }

    if(self.selectedimage&&self.isSelectedBtn){

        //  按钮选中时的背景图片

        [selfsetBackgroundImage:[UIImageimageNamed:self.selectedimage]forState:UIControlStateSelected];

    }

    

    

    if(self.image){

    //设置按钮的图片,超过按钮尺寸会吧标题也覆盖掉

    [selfsetImage:[UIImageimageNamed:self.image]forState:UIControlStateNormal];

    }

   if(self.highlightimage){

    //设置按钮高亮时的图片,也就是按钮点击下去未松开的时候;

       [selfsetImage:[UIImageimageNamed:self.highlightimage]forState:UIControlStateHighlighted];

   }

    if(self.selectedimage&&self.isSelectedBtn){

    //设置按钮被选中时的图片,select属性必须设置为yes,选中时的图片才有作用

    self.selected=YES;

    [selfsetImage:[UIImageimageNamed:self.selectedimage]forState:UIControlStateSelected];

    }

    

    if(self.btnalignment){

    //设置按钮内容的对其方式

     self.contentHorizontalAlignment=self.btnalignment;

    }

}


-(void)setAttributeWithDict:(NSDictionary *)dict{

//标题

    if([[dictallKeys]containsObject:@"title"]&& ![dict[@"title"]isEqualToString:@""]){

     self.title=dict[@"title"];

    }

//高亮标题

    if([[dictallKeys]containsObject:@"highlightTitle"]&& ![dict[@"highlightTitle"]isEqualToString:@""]){

    self.highlightTitle=dict[@"highlightTitle"];

    }

//选中标题

    if([[dictallKeys]containsObject:@"selectedTitle"]&& ![dict[@"selectedTitle"]isEqualToString:@""]){

    self.selectedTitle=dict[@"selectedTitle"];

    }

    

//*********标题颜色

    if([[dictallKeys]containsObject:@"titlecolor"] && [dict[@"titlecolor"]isKindOfClass:[UIColorclass]]){

        self.titlecolor=dict[@"titlecolor"];

    }

    //高亮标题颜色

    if([[dictallKeys]containsObject:@"highlighttitlecolor"] && [dict[@"highlighttitlecolor"]isKindOfClass:[UIColorclass]]){

        self.highlighttitlecolor=dict[@"highlighttitlecolor"];

    }

    //选中标题颜色

    if([[dictallKeys]containsObject:@"selectedtitlecolor"] && [dict[@"selectedtitlecolor"]isKindOfClass:[UIColorclass]]){

        self.selectedtitlecolor=dict[@"selectedtitlecolor"];

    }

//****按钮图片

     if([[dictallKeys]containsObject:@"image"]&& ![dict[@"image"]isEqualToString:@""]){

    self.image=dict[@"image"];

     }

//按钮高亮图片

     if([[dictallKeys]containsObject:@"highlightimage"]&& ![dict[@"highlightimage"]isEqualToString:@""]){

    self.highlightimage=dict[@"highlightimage"];

     }

//按钮选中图片

    if([[dictallKeys]containsObject:@"selectedimage"]&& ![dict[@"selectedimage"]isEqualToString:@""]){

    self.selectedimage=dict[@"selectedimage"];

    }

//********背景图片

     if([[dictallKeys]containsObject:@"bgimage"]&& ![dict[@"bgimage"]isEqualToString:@""]){

    self.bgimage=dict[@"bgimage"];

     }

//高亮背景图片

    if([[dictallKeys]containsObject:@"highlightbgimage"]&& ![dict[@"highlightbgimage"]isEqualToString:@""]){

    self.highlightbgimage=dict[@"highlightbgimage"];

    }

//选中的背景图片

     if([[dictallKeys]containsObject:@"selectedbgimage"]&& ![dict[@"selectedbgimage"]isEqualToString:@""]){

    self.selectedbgimage=dict[@"selectedbgimage"];

     }


    

//*********背景颜色

     if([[dictallKeys]containsObject:@"bgcolor"] && [dict[@"bgcolor"]isKindOfClass:[UIColorclass]]){

    self.bgcolor=dict[@"bgcolor"];

     }

//高亮背景颜色

    if([[dictallKeys]containsObject:@"highlightbgcolor"] && [dict[@"highlightbgcolor"]isKindOfClass:[UIColorclass]]){

        self.highlightbgcolor=dict[@"highlightbgcolor"];

    }

//选中背景颜色

    if([[dictallKeys]containsObject:@"selectedbgcolor"] && [dict[@"selectedbgcolor"]isKindOfClass:[UIColorclass]]){

        self.selectedbgcolor=dict[@"selectedbgcolor"];

    }

   

//选中时是否有光晕

     if([[dictallKeys]containsObject:@"isSetShowsTouchWhenHighlighted"]&& [dict[@"isSetShowsTouchWhenHighlighted"]boolValue]!=0){

self.isSetShowsTouchWhenHighlighted=[dict[@"isSetShowsTouchWhenHighlighted"]boolValue];

     }else {

         self.isSetShowsTouchWhenHighlighted=NO;

     }

    

//标题大小

 if([[dictallKeys]containsObject:@"fontsize"]&& [dict[@"fontsize"]integerValue]!=0){

     self.fontsize=[dict[@"fontsize"]integerValue];

 }else {

     self.fontsize=17;

 }

//按钮内容对齐方式

    if([[dictallKeys]containsObject:@"btnaligmentmark"] && [dict[@"btnaligmentmark"]integerValue]){

        if([dict[@"btnaligmentmark"]integerValue] ==1){

            self.btnalignment=UIControlContentHorizontalAlignmentLeft;

        }else if([dict[@"btnaligmentmark"]integerValue] ==2){

            self.btnalignment=UIControlContentHorizontalAlignmentRight;

        }else if([dict[@"btnaligmentmark"]integerValue] ==3){

            self.btnalignment=UIControlContentHorizontalAlignmentFill;

        } else{

            self.btnalignment=UIControlContentHorizontalAlignmentCenter;

        }

    }else {

        self.btnalignment=UIControlContentHorizontalAlignmentCenter;

    }

    

//按钮是否选中

    if([[dictallKeys]containsObject:@"isSelectedBtn"] && [dict[@"isSelectedBtn"]boolValue]!=0){

        self.isSelectedBtn=[dict[@"isSelectedBtn"]boolValue];

    }else{

        self.isSelectedBtn=NO;

    }

    

}

@end