iOS 循环创建按钮(单行和多行)

iOS 循环创建按钮(单行和多行),第1张

创建单行的按钮

CGFloatStart_X    =    15.0f    // 第一个按钮的X坐标

    CGFloatStart_Y        =  _password.frame.origin.y+_password.frame.size.height+35    // 第一个按钮的Y坐标

    CGFloatWidth_Space    =  15.0f    // 2个按钮之间的横间距

    CGFloatButton_Height  =35.0f    // 高

    CGFloatButton_Width  = (loginView.frame.size.width-45)/2  // 宽

    NSArray* titleArray =@[@"取消",@"登录"]

    for ( int i =0i <2i++) {

        // 圆角按钮

        UIButton* Button = [[UIButtonalloc]init]

        Button.tag= i//这句话不写等于废了

        Button.frame=CGRectMake(i * (Button_Width + Width_Space) + Start_X,  Start_Y, Button_Width, Button_Height)

        Button.layer.masksToBounds= YES

        Button.layer.cornerRadius=5

        [ButtonsetTitle:titleArray[i]forState:UIControlStateNormal]

        if (i==0) {

            Button.backgroundColor= [UIColorcolorWithRed:148.0/255.0green:148.0/255.0blue:148.0/255.0alpha:1]

        } else {

         Button.backgroundColor= [UIColorcolorWithRed:79.0/255.0green:139.0/255.0blue:244.0/255.0alpha:1]

        }

        [ButtonaddTarget: self action: @selector (ButtonAction:)forControlEvents:UIControlEventTouchUpInside]

        [loginViewaddSubview:Button]

    }

多行多列的按钮

CGFloatStart_X  =15.0f    // 第一个按钮的X坐标

    CGFloatStart_Y = whightView.Y+30    // 第一个按钮的Y坐标

    CGFloatWidth_Space =15.0f      // 2个按钮之间的横间距

    CGFloatHeight_Space=20.0f    // 竖间距

    CGFloatButton_Height =40.0f    // 高

    CGFloatButton_Width  =(SCREEN_WIDTH-45)/2    // 宽

    NSArray* titleArray =@[@"失败",@"执行中",@"成功",@"中断"]

    _ButtonArray = [[NSMutableArray alloc]init]

    for ( int i =0i <titleArray.count

         i++) {

        NSIntegerindex = i %2

        NSIntegerpage = i /2

        // 圆角按钮

        UIButton*PlanTypeBtn = [UIButtonbuttonWithType:UIButtonTypeRoundedRect]

        PlanTypeBtn.tag= i//这句话不写等于废了

        PlanTypeBtn.frame=CGRectMake(index * (Button_Width + Width_Space) + Start_X, page  * (Button_Height + Height_Space)+Start_Y, Button_Width, Button_Height)

        [PlanTypeBtnsetTitleColor:[UIColor blackColor] forState:UIControlStateNormal]

        [PlanTypeBtnsetTitle:titleArray[i]forState:UIControlStateNormal]

        PlanTypeBtn.layer.cornerRadius=5

        PlanTypeBtn.layer.masksToBounds= YES

        PlanTypeBtn.layer.borderWidth=1

        PlanTypeBtn.layer.borderColor = RGBCOLOR(148,148,148).CGColor

        [ self addSubview:PlanTypeBtn]

        [_ButtonArray addObject:PlanTypeBtn]

        //按钮点击方法

        [PlanTypeBtnaddTarget: self action: @selector (PlanTypeBtnClick:)forControlEvents:UIControlEventTouchUpInside]

    }

    // 多个按钮的展示

    -( void )PlanTypeBtnClick:(UIButton*)btn{

        for (UIButton *btn1 in _ButtonArray){

            if (btn1.tag == btn.tag){

                [btn1 setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]

                btn1.layer.borderColor = RGBCOLOR(79,139,244).CGColor

                btn1.backgroundColor =RGBCOLOR(79,139,244)

            } else {

                btn1.layer.borderWidth =1

                btn1.layer.borderColor = RGBCOLOR(148,148,148).CGColor

                btn1.backgroundColor =[UIColor clearColor]

            }

        }

    }

需要了解:

在StoryBoard上选中button,在属性面板里面可以看到如图所示的内容,这个地方Class就是需要填写你自定义实现的Class。

有了了解,添加类就很简单了。

步骤:

你需要添加一个类文件,这个类继承自UIButton。

将类名称填写到上图所示的Class中。

延伸:

如果你想知道我们在自定义这个Button类中可以做哪些事情,请按住command按键,然后鼠标点击你程序中书写的UIButton这个类名,就可以看到他的说明文件,在这个说明文件中你可以看到UIButton控件类继承自谁,定义了哪些方法。你可以在你自定义继承自UIButton的类中实现或者重写这些方法。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11450608.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存