美文网首页程序员
设置父控件的alpha,子控件的alpha不会受齐影响

设置父控件的alpha,子控件的alpha不会受齐影响

作者: 那片阳光已醉 | 来源:发表于2017-02-28 15:12 被阅读145次

    设置父控件的alpha,子控件的alpha不会受齐影响
    [backView setBackgroundColor:[[UIColor blackColor] colorWithAlphaComponent:0.5f]];

    //
    //  PayMethod.m
    //  YDTX
    //
    //  Created by 舒通 on 27/02/2017.
    //  Copyright © 2017 RookieHua. All rights reserved.
    //
    
    #import "PayMethod.h"
    
    #define payMethodHeight 400*HeightScale
    
    
    @implementation PayMethod
    {
        UIView *backView;
        UIView *_backGroundView;
        UIView *titleLabelView;
        UIView *aliPayMethodView;
        UIView *wePayMethodView;
        UIView *payTotalPriceView;
        UIButton *payButton;
        UIButton *aliPayButton;
        UIButton *wePayButton;
        CGFloat _totalPrice;
        NSMutableDictionary *_dic;
    }
    
    
    + (instancetype)shareInstanceType
    {
        
        static PayMethod *payMethod = nil;
        static dispatch_once_t onceToken;
        dispatch_once(&onceToken, ^{
            payMethod = [[PayMethod alloc]init];
        });
        return payMethod;
    }
    
    #warning 需要传入支付信息模型过来
    - (void)payMethodWithTotalPrice:(CGFloat)totalPrice andOrderData:(NSDictionary *)dic
    {
        _dic = [NSMutableDictionary dictionaryWithDictionary:dic];
        _totalPrice = totalPrice;
        [self createUI];
        
    }
    
    #pragma mark - touch event
    
    - (void)payClick:(UIButton *)sender
    {
        if (aliPayButton.selected) {
            [self gotoAliPay];
        }else if (wePayButton.selected) {
            [self gotoWePay];
        } else {
            [SVProgressHUD showErrorWithStatus:@"亲、请选择支付方式~"];
        }
    }
    /*
     goods_name
     goods_order_num
     Price
     freight
     cou_id
     */
    - (void)gotoAliPay
    {
        
        //    NSMutableDictionary *param = [[NSMutableDictionary alloc]initWithCapacity:0];
        //
        //    [param setObject:model.goods_order_id forKey:@"order_id"];
        //
        //    //查看优惠券
        //    [[NetWorkService shareInstance] requestForContinuePayMessage:param responseBlock:^(NSNumber *status, NSDictionary *dic) {
        //        NSString *couponPrice = nil;
        //
        //        if (status.integerValue == 201) {
        //
        //            couponPrice = dic[@"data"];
        //        } else {
        //
        //            couponPrice = @"0";
        //        }
        //        if (couponPrice.integerValue > 0) {
        //            [SVProgressHUD showErrorWithStatus:@"您的优惠券已过期"];
        //        }
        //
        //        __weak typeof(self)weakSelf = self;
        //        __strong typeof(weakSelf)strongSelf = weakSelf;
        //        //计算价格 单价*数量 + 运费
        //        __block float totalPrice = 0.0;
        //
        //        int num = model.nums ? model.nums.intValue : 0;
        //        float price = model.price ? model.price.floatValue : 0.0;
        //        if (model.freight.integerValue == 0) {
        //            [[NetWorkService shareInstance]requestForFindFreightMessage:^(NSNumber * _Nonnull status, NSString * _Nonnull freight) {
        //                if (!freight) {
        //                    freight = @"0";
        //                }
        //                totalPrice = num * price + freight.floatValue;
        //                [strongSelf gotoPay:model.goods_name goods_order_num:model.goods_order_num TotalFee:totalPrice couponID:model.cou_id];
        //            }];
        //        } else {
        //            [weakSelf gotoPay:model.goods_name goods_order_num:model.goods_order_num TotalFee:totalPrice couponID:model.cou_id];
        //        }
        //
        //    }];
        //
    }
    - (void)gotoWePay
    {
        [[WeChatDataHandler shareWeChatPayHandler] getBackGroundTransferWithMessage:_dic];
    }
    - (void)aliPayAction:(UIButton *)sender
    {
        sender.selected = !sender.selected;
        wePayButton.selected = NO;
        
    }
    - (void)wePayAction:(UIButton *)sender
    {
        sender.selected = !sender.selected;
        aliPayButton.selected = NO;
    }
    - (void)shutDownClick:(UIButton *)sender
    {
        [backView removeFromSuperview],backView = nil;
        
    }
    - (void)didClickShutDownButton
    {
        [backView removeFromSuperview],backView = nil;
    }
    
    
    #pragma mark - create UI
    - (void)createUI
    {
        NSArray *_payMethodName = @[@"支付宝支付",@"微信支付"];
        NSArray *_payMethodImage = @[@"AliPay_icon",@"WePay_icon"];
        UIView *view = [UIApplication sharedApplication].keyWindow;
        
        //    底部视图
        if (!backView) {
            
            backView = [[UIView alloc]initWithFrame:[UIScreen mainScreen].bounds];
            
            [backView setBackgroundColor:[[UIColor blackColor] colorWithAlphaComponent:0.5f]];
            [view addSubview:backView];
            
            _backGroundView = [[UIView alloc]init];
            _backGroundView.backgroundColor = [UIColor whiteColor];
            [backView addSubview:_backGroundView];
            [_backGroundView mas_makeConstraints:^(MASConstraintMaker *make) {
                make.top.equalTo(@(ScreenHeight - payMethodHeight));
                make.left.equalTo(backView.mas_left);
                make.size.mas_equalTo(CGSizeMake(ScreenWidth, payMethodHeight));
            }];
            
            titleLabelView = [[UIView alloc]init];
            [_backGroundView addSubview:titleLabelView];
            [titleLabelView mas_makeConstraints:^(MASConstraintMaker *make) {
                make.top.equalTo(_backGroundView.mas_top);
                make.left.equalTo(_backGroundView.mas_left);
                make.size.mas_equalTo(CGSizeMake(ScreenWidth, 45*HeightScale));
            }];
            //
            UIView *lineView1 = [[UIView alloc]init];
            lineView1.backgroundColor = [UIColor colorForHex:@"eeeeee"];
            [_backGroundView addSubview:lineView1];
            [lineView1 mas_makeConstraints:^(MASConstraintMaker *make) {
                make.top.equalTo(titleLabelView.mas_bottom);
                make.left.equalTo(_backGroundView.mas_left).offset(10*WidthScale);
                make.size.mas_equalTo(CGSizeMake(ScreenWidth - 20 *WidthScale, 1));
            }];
            //
            aliPayMethodView = [[UIView alloc]init];
            [_backGroundView addSubview:aliPayMethodView];
            [aliPayMethodView mas_makeConstraints:^(MASConstraintMaker *make) {
                make.top.equalTo(lineView1.mas_bottom);
                make.left.equalTo(_backGroundView.mas_left);
                make.size.mas_equalTo(CGSizeMake(ScreenWidth, 50 *HeightScale));
            }];
            //
            UIView *lineView2 = [[UIView alloc]init];
            lineView2.backgroundColor = [UIColor colorForHex:@"eeeeee"];
            [_backGroundView addSubview:lineView2];
            [lineView2 mas_makeConstraints:^(MASConstraintMaker *make) {
                make.top.equalTo(aliPayMethodView.mas_bottom);
                make.left.equalTo(_backGroundView.mas_left).offset(10*WidthScale);
                make.size.mas_equalTo(CGSizeMake(ScreenWidth - 20 *WidthScale, 1));
            }];
            //
            wePayMethodView = [[UIView alloc]init];
            [_backGroundView addSubview:wePayMethodView];
            [wePayMethodView mas_makeConstraints:^(MASConstraintMaker *make) {
                make.top.equalTo(lineView2.mas_bottom);
                make.left.equalTo(_backGroundView.mas_left);
                make.size.mas_equalTo(CGSizeMake(ScreenWidth, 50*HeightScale));
            }];
            
            UIView *lineView3 = [[UIView alloc]init];
            lineView3.backgroundColor = [UIColor colorForHex:@"eeeeee"];
            [_backGroundView addSubview:lineView3];
            [lineView3 mas_makeConstraints:^(MASConstraintMaker *make) {
                make.top.equalTo(wePayMethodView.mas_bottom);
                make.left.equalTo(_backGroundView.mas_left).offset(10*WidthScale);
                make.size.mas_equalTo(CGSizeMake(ScreenWidth - 20 *WidthScale, 1));
            }];
            
            
            payTotalPriceView = [[UIView alloc]init];
            [_backGroundView addSubview:payTotalPriceView];
            [payTotalPriceView mas_makeConstraints:^(MASConstraintMaker *make) {
                make.top.equalTo(lineView3.mas_bottom).offset(10*HeightScale);
                make.left.equalTo(_backGroundView.mas_left);
                make.size.mas_equalTo(CGSizeMake(ScreenWidth, 50*HeightScale));
            }];
            //
            //
            payButton = [UIButton buttonWithType:UIButtonTypeCustom];
            payButton.frame = CGRectMake(10*WidthScale, (400 - 80)*HeightScale, ScreenWidth-20*WidthScale, 50*HeightScale);
            
            payButton.titleLabel.font = [UIFont systemFontOfSize:18*HeightScale];
            payButton.layer.cornerRadius = 5;
            payButton.layer.masksToBounds = YES;
            payButton.backgroundColor = [UIColor colorForHex:@"168ce3"];
            [payButton setTitle:@"确认支付" forState:UIControlStateNormal];
            [payButton addTarget:self action:@selector(payClick:) forControlEvents:UIControlEventTouchUpInside];
            [_backGroundView addSubview:payButton];
            
            
            //控件
            UILabel *titleLabel = [self creatMethodLabelWithTitle:@"付款方式"];
            titleLabel.textColor = [UIColor colorForHex:@"020202"];
            titleLabel.font = [UIFont systemFontOfSize:18*HeightScale];
            titleLabel.textAlignment = NSTextAlignmentCenter;
            [titleLabelView addSubview:titleLabel];
            [titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
                make.centerX.equalTo(titleLabelView.mas_centerX);
                make.centerY.equalTo(titleLabelView.mas_centerY);
            }];
            UIButton *shutDownbutton = [self createMethodButtonWithImageName:@"payMetodShutDown" andSelector:@selector(shutDownClick:)];
            
            [shutDownbutton setImageEdgeInsets:UIEdgeInsetsMake(0, 25, 0, 0)];
            [titleLabelView addSubview:shutDownbutton];
            [shutDownbutton mas_makeConstraints:^(MASConstraintMaker *make) {
                make.centerY.equalTo(titleLabel.mas_centerY);
                make.right.equalTo(titleLabelView.mas_right);
                make.height.equalTo(@(45*HeightScale));
                make.width.equalTo(@(70 * WidthScale));
            }];
            //
            ////        阿里支付
            UIImageView *aliPayImageView = [self createMethodImageViewWithImageName:_payMethodImage[0]];
            [aliPayMethodView addSubview:aliPayImageView];
            [aliPayImageView mas_makeConstraints:^(MASConstraintMaker *make) {
                make.left.equalTo(aliPayMethodView.mas_left).offset(20*WidthScale);
                make.top.equalTo(aliPayMethodView.mas_top).offset(10*HeightScale);
                make.size.mas_equalTo(CGSizeMake(30*HeightScale, 30*HeightScale));
            }];
            UILabel *aliPayTitleLabel = [self creatMethodLabelWithTitle:_payMethodName[0]];
            aliPayTitleLabel.textColor = [UIColor colorForHex:@"2e2e2e"];
            aliPayTitleLabel.font = [UIFont systemFontOfSize:15*HeightScale];
            [aliPayMethodView addSubview:aliPayTitleLabel];
            [aliPayTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
                make.left.equalTo(aliPayImageView.mas_right).offset(15*WidthScale);
                make.centerY.equalTo(aliPayImageView.mas_centerY);
            }];
            aliPayButton = [self createMethodButtonWithImageName:nil andSelector:@selector(aliPayAction:)];
            [aliPayMethodView addSubview:aliPayButton];
            [aliPayButton mas_makeConstraints:^(MASConstraintMaker *make) {
                make.centerY.equalTo(aliPayTitleLabel.mas_centerY);
                make.right.equalTo(aliPayMethodView.mas_right).offset(-10*WidthScale);
                make.size.mas_equalTo(CGSizeMake(30*WidthScale, 40*HeightScale));
            }];
            
            //        微信支付
            UIImageView *wePayImageView = [self createMethodImageViewWithImageName:_payMethodImage[1]];//
            [wePayMethodView addSubview:wePayImageView];
            [wePayImageView mas_makeConstraints:^(MASConstraintMaker *make) {
                make.left.equalTo(wePayMethodView.mas_left).offset(20*WidthScale);
                make.top.equalTo(wePayMethodView.mas_top).offset(10*HeightScale);
                make.size.mas_equalTo(CGSizeMake(30*HeightScale, 30*HeightScale));
            }];
            UILabel *wePayTitleLabel = [self creatMethodLabelWithTitle:_payMethodName[1]];
            wePayTitleLabel.textColor = [UIColor colorForHex:@"2e2e2e"];
            wePayTitleLabel.font = [UIFont systemFontOfSize:15*HeightScale];
            [wePayMethodView addSubview:wePayTitleLabel];
            [wePayTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
                make.left.equalTo(wePayImageView.mas_right).offset(15*WidthScale);
                make.centerY.equalTo(wePayImageView.mas_centerY);
            }];
            wePayButton = [self createMethodButtonWithImageName:nil andSelector:@selector(wePayAction:)];
            [wePayMethodView addSubview:wePayButton];
            [wePayButton mas_makeConstraints:^(MASConstraintMaker *make) {
                make.centerY.equalTo(wePayTitleLabel.mas_centerY);
                make.right.equalTo(wePayMethodView.mas_right).offset(-10*WidthScale);
                make.size.mas_equalTo(CGSizeMake(30*WidthScale, 40*HeightScale));
            }];
            
            //支付价格
            UILabel *payTotalPriceTitleLabel = [self creatMethodLabelWithTitle:@"需付款"];
            payTotalPriceTitleLabel.font = [UIFont systemFontOfSize:15*HeightScale];
            payTotalPriceTitleLabel.textColor = [UIColor colorForHex:@"2e2e2e"];
            [payTotalPriceView addSubview: payTotalPriceTitleLabel];
            [payTotalPriceTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
                make.top.equalTo(payTotalPriceView.mas_top).offset(10*HeightScale);
                make.left.equalTo(payTotalPriceView.mas_left).offset(20*WidthScale);
            }];
            UILabel *parTotalPriceLabel = [self creatMethodLabelWithTitle:[NSString stringWithFormat:@"%0.2f元",_totalPrice]];
            parTotalPriceLabel.font = [UIFont systemFontOfSize:18*HeightScale];
            parTotalPriceLabel.textColor = [UIColor colorForHex:@"2e2e2e"];
            [payTotalPriceView addSubview: parTotalPriceLabel];
            [parTotalPriceLabel mas_makeConstraints:^(MASConstraintMaker *make) {
                make.centerY.equalTo(payTotalPriceTitleLabel.mas_centerY);
                make.right.equalTo(payTotalPriceView.mas_right).offset(-10*WidthScale);
            }];
        }
    }
    
    #pragma mark - create payMethod button and label and imageView
    - (UIImageView *)createMethodImageViewWithImageName:(NSString *)name
    {
        UIImageView *imageView = [[UIImageView alloc]init];
        imageView.image = [UIImage imageNamed:name];
        imageView.layer.cornerRadius = 5;
        imageView.layer.masksToBounds = YES;
        return imageView;
    }
    - (UILabel *)creatMethodLabelWithTitle:(NSString *)title
    {
        UILabel *label = [[UILabel alloc]init];
        label.text = title;
        [label sizeToFit];
        label.textColor = [UIColor blackColor];
        
        return label;
    }
    - (UIButton *)createMethodButtonWithImageName:(NSString *)imageName andSelector:(SEL)selector
    {
        UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
        [button setImage:[UIImage imageNamed:@"Pay_circle_icon"] forState:UIControlStateNormal];
        [button setImage:[UIImage imageNamed:@"Pay_circle_icon_hl"] forState:UIControlStateSelected];
        if (imageName) {
            [button setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
        }
        [button addTarget:self action:selector forControlEvents:UIControlEventTouchUpInside];
        return button;
    }
    
    
    @end
    
    
    

    相关文章

      网友评论

        本文标题:设置父控件的alpha,子控件的alpha不会受齐影响

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