iOS-88-多个button时,如何创建最有效

先看效果图:





单独封装一个类,代码:

  
  
  
//
//  JCPaymentMoneyCell.m
//  HHde
//
//  Created by lhg on 2017/8/11.
//  Copyright © 2017年 lhg. All rights reserved.
//

#import "JCPaymentMoneyCell.h"
#import "JCDefines.h"
#import "UIColor+Hex.h"




@interface JCPaymentMoneyCell ()

@property (nonatomic, strong) NSArray *moneyArr;

@end


@implementation JCPaymentMoneyCell

- (void)awakeFromNib {
    [super awakeFromNib];
    
    self.backgroundColor = [UIColor whiteColor];
    
    _moneyArr = @[@100,@200,@300,@400,@500,@1000];
    
    UILabel *moneyLabel = [[UILabel alloc] initWithFrame:CGRectMake(15, 8, 120, 36)];
    moneyLabel.text     = @"充值金额";
    moneyLabel.font     = [UIFont systemFontOfSize:16.0];
    moneyLabel.textColor= [UIColor blackColor];
    [self addSubview:moneyLabel];
    
    for (int i=0; i<6; i++) {
        UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
        
        if (i<3) {
            btn.frame = CGRectMake(15+i*(30+(kMAIN_SCREEN_WIDTH-15*2-30*2)/3), 44+4, (kMAIN_SCREEN_WIDTH-15*2-30*2)/3, 36);
        }else{
            btn.frame = CGRectMake(15+(i-3)*(30+(kMAIN_SCREEN_WIDTH-15*2-30*2)/3), 44+44+4, (kMAIN_SCREEN_WIDTH-15*2-30*2)/3, 36);
        }
        
        btn.layer.masksToBounds = YES;
        btn.layer.cornerRadius  = 5.0;
        btn.layer.borderWidth   = 0.5;
        
        if (i==0) {
            [btn setTitleColor:[UIColor jcHHnavigation_Color] forState:UIControlStateNormal];
            btn.layer.borderColor = [UIColor jcHHnavigation_Color].CGColor;
        } else {
            [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
            btn.layer.borderColor = [UIColor blackColor].CGColor;
        }
        
        int money = [_moneyArr[i] intValue];
        [btn setTitle:[NSString stringWithFormat:@"%d元",money] forState:UIControlStateNormal];
        
        btn.tag = 100+i;
        [btn addTarget:self action:@selector(selectMoney:) forControlEvents:UIControlEventTouchUpInside];
        
        [self addSubview:btn];
    }
    
    
}


// 金额点击事件
- (void)selectMoney:(UIButton *)button{
    
    for (UIView *view in self.subviews) {
        if ([view isKindOfClass:[UIButton class]]) {
            UIButton *btn = (UIButton *)view;
            if (btn.tag == button.tag) {
                [btn setTitleColor:[UIColor jcHHnavigation_Color] forState:UIControlStateNormal];
                btn.layer.borderColor = [UIColor jcHHnavigation_Color].CGColor;
            } else {
                [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
                btn.layer.borderColor = [UIColor blackColor].CGColor;
            }
        }
        
    }
    
    if (self.delegate && [self.delegate respondsToSelector:@selector(paymentSelectWithMoney:)]) {
        int money = [_moneyArr[button.tag-100] intValue];
        [self.delegate paymentSelectWithMoney:money];
    }
}






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IOT_Elon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值