美文网首页
2个按钮在不同状态下修改背景色,并且两个按钮只能选中一个或者都不

2个按钮在不同状态下修改背景色,并且两个按钮只能选中一个或者都不

作者: 灰客 | 来源:发表于2018-08-30 14:30 被阅读0次

参考资料:https://www.jianshu.com/p/e561fd8c6890

level1Btn = [[UIButton alloc]initWithFrame:CGRectMake(iPhoneX_Height- flexH(40+5)*5, SCREEN_WIDTH-flexW(40+5), flexH(40), flexW(40))];
[level1Btn setTitle:@"XX1" forState:UIControlStateNormal];
[level1Btn setTitle:@"XX1" forState:UIControlStateSelected];
[level1Btn setBackgroundImage:[self imageWithColor:RGBA(114, 114, 248, 1)] forState:UIControlStateNormal];
[level1Btn setBackgroundImage:[self imageWithColor:RGBA(242, 216, 77, 1)] forState:UIControlStateSelected];

[level1Btn viewWithCornerRadius:6.f];

level1Btn.tag = 322;

[level1Btn addTarget:self action:@selector(btnOnclick:) forControlEvents:UIControlEventTouchDown];

[BGView addSubview:level1Btn];

level2Btn = [[UIButton alloc]initWithFrame:CGRectMake(iPhoneX_Height- flexH(40+5)*4, SCREEN_WIDTH-flexW(40+5), flexH(40), flexW(40))];
[level2Btn setTitle:@"XX2" forState:UIControlStateNormal];
[level2Btn setTitle:@"XX2" forState:UIControlStateSelected];
[level2Btn setBackgroundImage:[self imageWithColor:RGBA(114, 114, 248, 1)] forState:UIControlStateNormal];
[level2Btn setBackgroundImage:[self imageWithColor:RGBA(242, 216, 77, 1)] forState:UIControlStateSelected];

[level2Btn viewWithCornerRadius:6.f];

level2Btn.tag = 321;

[level2Btn addTarget:self action:@selector(btnOnclick:) forControlEvents:UIControlEventTouchDown];

[BGView addSubview:level2Btn];

在点击事件里面
-(void)btnOnclick:(UIButton *)btn{
if (btn.tag == 321){

    if (level2Btn.selected == NO) {
        NSLog(@"XX2被点击!");
        
        btn.selected = YES;

        level1Btn.selected = NO;
    }else{
        NSLog(@"XX2取消!");

        btn.selected = NO;

    }
    NSLog(@"level2Btn.selected:********%d",level2Btn.selected);
    NSLog(@"level1Btn.selected:********%d",level1Btn.selected);
    
}else if (btn.tag == 322){
    //评差
    if (level1Btn.selected == NO) {
        NSLog(@"XX1被点击!");
        
        btn.selected = YES;

        level2Btn.selected = NO;
    }else{
        NSLog(@"XX1取消!");

        btn.selected = NO;

    }
    NSLog(@"level2Btn.selected:********%d",level2Btn.selected);
    NSLog(@"level1Btn.selected:********%d",level1Btn.selected);
}

}

// 颜色转换为背景图片

  • (UIImage *)imageWithColor:(UIColor *)color {
    CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, [color CGColor]);
    CGContextFillRect(context, rect);

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return image;
    }

相关文章

网友评论

      本文标题:2个按钮在不同状态下修改背景色,并且两个按钮只能选中一个或者都不

      本文链接:https://www.haomeiwen.com/subject/svnrwftx.html