设置父控件的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
网友评论