结构调整

This commit is contained in:
启星
2025-10-20 10:29:42 +08:00
parent 2c66709436
commit fdeed970d4
145 changed files with 4 additions and 4 deletions

View File

@@ -0,0 +1,52 @@
//
// QXRedBagDrawView.h
// QXLive
//
// Created by 启星 on 2025/10/11.
//
#import <UIKit/UIKit.h>
#import "QXRedPacketModel.h"
typedef NS_ENUM(NSInteger) {
/// 打开红包
QXRedBagDrawTypeOpen = 0,
/// 仅倒计时
QXRedBagDrawTypeTimeDown,
/// 仅收藏房间
QXRedBagDrawTypeCollect,
/// 手慢了被领完了
QXRedBagDrawTypeFinished,
/// 发送评论领红包
QXRedBagDrawTypePwdSend,
/// 需要完成两个收藏房间和倒计时
QXRedBagDrawTypePwdAllTask,
}QXRedBagDrawType;
NS_ASSUME_NONNULL_BEGIN
@interface QXRedBagDrawView : UIView
@property (nonatomic,strong)QXRedPacketModel *redpacketModel;
@property (nonatomic,strong)NSString *room_id;
/// 是否已经收藏过房间
@property (nonatomic,assign)BOOL isCollectedRoom;
/// 倒计时
@property (nonatomic,assign)long needTime;
/// 是否是发送评论地方过来
@property (nonatomic,assign)BOOL isFromToComment;
@property (nonatomic,copy)void(^toInputPwdBlock)(NSString *password,QXRedPacketModel*redpacketModel);
@property (nonatomic,copy)void(^collectRoomBlock)(void);
-(void)changeViewType:(QXRedBagDrawType)type;
-(void)showInView:(UIView*)view;
-(void)hide;
@end
@interface QXRedBagTimeDownView : UIView
@property (nonatomic,strong)UIImageView *bgImageView;
@property (nonatomic,strong)UILabel *timeLabel;
@property (nonatomic,strong)UIButton *btn;
@property (nonatomic,assign)QXRedBagDrawType type;
@property (nonatomic,assign)int time;
@property (nonatomic,copy)void(^btnBlcok)(QXRedBagDrawType type);
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,552 @@
//
// QXRedBagDrawView.m
// QXLive
//
// Created by on 2025/10/11.
//
#import "QXRedBagDrawView.h"
#import "QXRedBagRecordViewController.h"
#import "QXMineNetwork.h"
@class QXRedBagTimeDownView;
@interface QXRedBagDrawView()
@property (nonatomic,strong)UIView *bgView;
@property (nonatomic,strong)UIImageView *bgImageView;
@property (nonatomic,strong)UIImageView *pwdImageView;
@property (nonatomic,strong)UIImageView *userHeaderImageView;
@property (nonatomic,strong)UILabel *userNameLabel;
@property (nonatomic,strong)UILabel *remarkLabel;
@property (nonatomic,strong)UIButton *closeBtn;
///
@property (nonatomic,strong)UIButton *openBtn;
///
@property (nonatomic,strong)UIButton *recordBtn;
///
@property (nonatomic,strong)QXRedBagTimeDownView *timeDownView;
///
@property (nonatomic,strong)UIView *pwdBgView;
@property (nonatomic,strong)UILabel *drawTitleLabel;
@property (nonatomic,strong)UILabel *commentTitleLabel;
@property (nonatomic,strong)UILabel *pwdTitleLable;
///
@property (nonatomic,strong)UILabel *bottomLabel;
@property (nonatomic,assign)QXRedBagDrawType drawType;
@property (nonatomic,assign)BOOL isDrawNet;
@end
@implementation QXRedBagDrawView
- (instancetype)init
{
self = [super init];
if (self) {
self.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
[self initSubviews];
}
return self;
}
-(void)initSubviews{
self.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.3];
self.bgView = [[UIView alloc] initWithFrame:CGRectMake((SCREEN_WIDTH-345)/2, (SCREEN_HEIGHT-454)/2, 345, 454)];
[self addSubview:self.bgView];
self.bgImageView = [[UIImageView alloc] initWithFrame:self.bgView.bounds];
self.bgImageView.image = [UIImage imageNamed:@"room_draw_redbag_bg"];
[self.bgView addSubview:self.bgImageView];
self.pwdImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"red_packet_pwd_icon"]];
self.pwdImageView.frame = CGRectMake(0, 0, 119, 41);
self.pwdImageView.hidden = YES;
[self.bgView addSubview:self.pwdImageView];
self.closeBtn = [[UIButton alloc] init];
[self.closeBtn setImage:[UIImage imageNamed:@"room_redbag_close"] forState:(UIControlStateNormal)];
[self.closeBtn addTarget:self action:@selector(closeAction) forControlEvents:(UIControlEventTouchUpInside)];
[self.bgView addSubview:self.closeBtn];
[self.closeBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(40);
make.right.mas_equalTo(-5);
make.top.mas_equalTo(15);
}];
self.userHeaderImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"user_header_placehoulder"]];
self.userHeaderImageView.contentMode = UIViewContentModeScaleAspectFill;
[self.userHeaderImageView addRoundedCornersWithRadius:39.5];
[self.bgView addSubview:self.userHeaderImageView];
[self.userHeaderImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.bgView);
make.top.mas_equalTo(73);
make.width.height.mas_equalTo(79);
}];
self.userNameLabel = [[UILabel alloc] init];
self.userNameLabel.text = @"傻狗涛";
self.userNameLabel.textColor = RGB16(0xffffff);
self.userNameLabel.font = [UIFont boldSystemFontOfSize:18];
self.userNameLabel.textAlignment = NSTextAlignmentCenter;
[self.bgView addSubview:self.userNameLabel];
[self.userNameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(15);
make.right.mas_equalTo(-15);
make.height.mas_equalTo(26);
make.top.equalTo(self.userHeaderImageView.mas_bottom).offset(27);
}];
self.remarkLabel = [[UILabel alloc] init];
self.remarkLabel.textColor = RGB16(0xffffff);
self.remarkLabel.text = @"恭喜发财,大吉大利";
self.remarkLabel.font = [UIFont boldSystemFontOfSize:24];
self.remarkLabel.textAlignment = NSTextAlignmentCenter;
[self.bgView addSubview:self.remarkLabel];
[self.remarkLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(15);
make.right.mas_equalTo(-15);
make.height.mas_equalTo(26);
make.top.equalTo(self.userNameLabel.mas_bottom).offset(2);
}];
self.openBtn = [[UIButton alloc] init];
[self.openBtn setImage:[UIImage imageNamed:@"draw_redbag_btn"] forState:(UIControlStateNormal)];
[self.openBtn addTarget:self action:@selector(openAction) forControlEvents:(UIControlEventTouchUpInside)];
[self.bgView addSubview:self.openBtn];
[self.openBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.remarkLabel.mas_bottom).offset(19);
make.width.height.mas_equalTo(126);
make.centerX.equalTo(self.bgView);
}];
self.recordBtn = [[UIButton alloc] init];
[self.recordBtn setTitle:@"查看大家手气 >" forState:(UIControlStateNormal)];
[self.recordBtn setTitleColor:RGB16(0xffffff) forState:(UIControlStateNormal)];
self.recordBtn.titleLabel.font = [UIFont systemFontOfSize:16];
[self.recordBtn addTarget:self action:@selector(recordAction) forControlEvents:(UIControlEventTouchUpInside)];
[self.bgView addSubview:self.recordBtn];
[self.recordBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.bgView);
make.bottom.mas_equalTo(-63);
make.height.mas_equalTo(26);
}];
self.timeDownView = [[QXRedBagTimeDownView alloc] init];
self.timeDownView.hidden = YES;
@weakify(self)
self.timeDownView.btnBlcok = ^(QXRedBagDrawType type) {
@strongify(self);
if (type == QXRedBagDrawTypeCollect) {
///
[self collectRoom];
return;
}
if (self.toInputPwdBlock) {
self.toInputPwdBlock(self.redpacketModel.password,self.redpacketModel);
}
[self hide];
};
[self.bgView addSubview:self.timeDownView];
[self.timeDownView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(220);
make.height.mas_equalTo(93);
make.centerX.equalTo(self.bgView);
make.top.equalTo(self.remarkLabel.mas_bottom).offset(30);
}];
self.bottomLabel = [[UILabel alloc] init];
self.bottomLabel.text = @"抢红包必须在本房间内";
self.bottomLabel.hidden = YES;
self.bottomLabel.textColor = RGB16(0xffffff);
self.bottomLabel.font = [UIFont systemFontOfSize:14];
[self.bgView addSubview:self.bottomLabel];
[self.bottomLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(26);
make.bottom.mas_equalTo(-15);
make.centerX.equalTo(self.bgView);
}];
self.pwdBgView = [[UIView alloc] init];
[self.bgView addSubview:self.pwdBgView];
[self.pwdBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(self.bottomLabel.mas_top);
make.left.mas_equalTo(15);
make.right.mas_equalTo(-15);
make.height.mas_equalTo(72);
}];
self.drawTitleLabel = [[UILabel alloc] init];
self.drawTitleLabel.text = @"红包参与条件";
self.drawTitleLabel.textColor = RGB16(0xffffff);
self.drawTitleLabel.textAlignment = NSTextAlignmentCenter;
self.drawTitleLabel.font = [UIFont systemFontOfSize:12];
[self.pwdBgView addSubview:self.drawTitleLabel];
[self.drawTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.pwdBgView);
make.height.mas_equalTo(20);
make.centerX.equalTo(self.bgView);
}];
self.commentTitleLabel = [[UILabel alloc] init];
self.commentTitleLabel.text = @"发送评论:这是一个口令";
self.commentTitleLabel.textColor = RGB16(0xFFCE47);
self.commentTitleLabel.textAlignment = NSTextAlignmentCenter;
self.commentTitleLabel.font = [UIFont systemFontOfSize:14];
[self.pwdBgView addSubview:self.commentTitleLabel];
[self.commentTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.drawTitleLabel.mas_bottom).offset(3);
make.height.mas_equalTo(20);
make.centerX.equalTo(self.bgView);;
}];
self.pwdTitleLable = [[UILabel alloc] init];
self.pwdTitleLable.text = @"收藏房间";
self.pwdTitleLable.textColor = RGB16(0xFFCE47);
self.pwdTitleLable.textAlignment = NSTextAlignmentCenter;
self.pwdTitleLable.font = [UIFont systemFontOfSize:14];
[self.pwdBgView addSubview:self.pwdTitleLable];
[self.pwdTitleLable mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.commentTitleLabel.mas_bottom).offset(3);
make.height.mas_equalTo(20);
make.centerX.equalTo(self.bgView);;
}];
}
-(void)collectRoom{
MJWeakSelf
[QXMineNetwork roomCollectWithType:@"1" room_id:self.room_id successBlock:^(NSDictionary * _Nonnull dict) {
if (weakSelf.collectRoomBlock) {
weakSelf.collectRoomBlock();
}
weakSelf.isCollectedRoom = YES;
if ([weakSelf.redpacketModel canOpenNow]) {
[weakSelf setType:(QXRedBagDrawTypeOpen)];
}else{
[weakSelf setType:QXRedBagDrawTypeTimeDown];
}
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
}];
}
/**
///
QXRedBagDrawTypeOpen = 0,
///
QXRedBagDrawTypeTimeDown,
///
QXRedBagDrawTypeCollect,
///
QXRedBagDrawTypeFinished,
///
QXRedBagDrawTypePwdSend,
///
QXRedBagDrawTypePwdTimeDown,
///
QXRedBagDrawTypePwdCollect,
*/
-(void)setIsCollectedRoom:(BOOL)isCollectedRoom{
_isCollectedRoom = isCollectedRoom;
}
-(void)setRedpacketModel:(QXRedPacketModel *)redpacketModel{
_redpacketModel = redpacketModel;
[self setType:[self getDrawTypeWithRedpacktModel:redpacketModel]];
self.remarkLabel.text = redpacketModel.remark;
[self.userHeaderImageView sd_setImageWithURL:[NSURL URLWithString:redpacketModel.avatar]];
self.userNameLabel.text = [NSString stringWithFormat:@"%@的红包",redpacketModel.nickname];
self.commentTitleLabel.text = [NSString stringWithFormat:@"发送评论:%@",redpacketModel.password];
if (redpacketModel.type.intValue == 2) {
self.pwdImageView.hidden = NO;
}else{
self.pwdImageView.hidden = YES;
}
if (self.drawType == QXRedBagDrawTypeOpen) {
self.pwdBgView.hidden = YES;
self.bottomLabel.hidden = YES;
}else{
self.pwdBgView.hidden = NO;
self.bottomLabel.hidden = NO;
if (redpacketModel.type.intValue == 2) {
self.commentTitleLabel.hidden = NO;
}else{
self.commentTitleLabel.hidden = YES;
}
if (redpacketModel.conditions.intValue == 0) {
self.pwdTitleLable.hidden = YES;
self.drawTitleLabel.hidden = YES;
}else{
self.pwdTitleLable.hidden = NO;
self.drawTitleLabel.hidden = NO;
if ([redpacketModel.conditions isEqualToString:@"1,2"]) {
self.pwdTitleLable.text = @"收藏房间,仅麦上用户";
}else if ([redpacketModel.conditions isEqualToString:@"1"]) {
self.pwdTitleLable.text = @"收藏房间";
}else if ([redpacketModel.conditions isEqualToString:@"1"]) {
self.pwdTitleLable.text = @"仅麦上用户";
}
}
}
}
-(void)setIsFromToComment:(BOOL)isFromToComment{
_isFromToComment = isFromToComment;
}
-(void)setNeedTime:(long)needTime{
_needTime = needTime;
NSInteger min = (needTime % 3600) / 60;
NSInteger second = needTime % 60;
self.timeDownView.timeLabel.text = [NSString stringWithFormat:@"%02ld:%02ld后开启红包",min,(long)second];
}
-(void)changeViewType:(QXRedBagDrawType)type{
[self setType:type];
}
-(void)setType:(QXRedBagDrawType)type{
_drawType = type;
switch (type) {
case QXRedBagDrawTypeOpen:{
self.openBtn.hidden = NO;
self.remarkLabel.text = self.redpacketModel.remark;
self.recordBtn.hidden = YES;
self.timeDownView.hidden = YES;
self.bottomLabel.hidden = YES;
self.pwdBgView.hidden = YES;
}
break;
case QXRedBagDrawTypeFinished:{
self.openBtn.hidden = YES;
self.remarkLabel.text = @"手慢了,红包被领完了";
self.recordBtn.hidden = NO;
self.timeDownView.hidden = YES;
self.bottomLabel.hidden = YES;
self.pwdBgView.hidden = YES;
}
break;
case QXRedBagDrawTypeCollect:{
self.openBtn.hidden = YES;
self.remarkLabel.text = self.redpacketModel.remark;
self.recordBtn.hidden = YES;
self.timeDownView.type = QXRedBagDrawTypeCollect;
self.timeDownView.hidden = NO;
self.bottomLabel.hidden = NO;
self.pwdBgView.hidden = NO;
self.commentTitleLabel.hidden = YES;
self.pwdTitleLable.text= @"收藏房间";
}
break;
case QXRedBagDrawTypeTimeDown:{
self.openBtn.hidden = YES;
self.remarkLabel.text = self.redpacketModel.remark;
self.recordBtn.hidden = YES;
self.timeDownView.type = QXRedBagDrawTypeTimeDown;
self.timeDownView.hidden = NO;
self.bottomLabel.hidden = NO;
}
break;
case QXRedBagDrawTypePwdSend:{
self.openBtn.hidden = YES;
self.remarkLabel.text = self.redpacketModel.remark;
self.recordBtn.hidden = YES;
self.timeDownView.type = QXRedBagDrawTypePwdSend;
self.timeDownView.hidden = NO;
}
break;
case QXRedBagDrawTypePwdAllTask:{
self.openBtn.hidden = YES;
self.remarkLabel.text = @"手慢了,红包被领完了";
self.recordBtn.hidden = NO;
}
break;
default:
break;
}
}
#pragma mark - action
-(void)closeAction{
[self hide];
}
-(void)openAction{
MJWeakSelf
if (self.isDrawNet) {
return;
}
self.isDrawNet = YES;
[QXMineNetwork drawRedpacketWithRedpacketId:self.redpacketModel.redpacket_id successBlock:^(NSString * _Nonnull code) {
weakSelf.isDrawNet = NO;
weakSelf.redpacketModel.is_qiang = @"1";
if (code.intValue == 1) {
QXRedBagRecordViewController *vc = [[QXRedBagRecordViewController alloc] init];
vc.redbagId = weakSelf.redpacketModel.redpacket_id;
[weakSelf.viewController.navigationController pushViewController:vc animated:YES];
[weakSelf hide];
}else if (code.intValue == 2){
showToast(@"您已抢过该红包");
QXRedBagRecordViewController *vc = [[QXRedBagRecordViewController alloc] init];
vc.redbagId = weakSelf.redpacketModel.redpacket_id;
[weakSelf.viewController.navigationController pushViewController:vc animated:YES];
[weakSelf hide];
}else{
[weakSelf setType:QXRedBagDrawTypeFinished];
}
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
weakSelf.isDrawNet = NO;
showToast(msg);
}];
// CABasicAnimation *rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
// //
// rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI];
// //
// rotationAnimation.duration = 0.5;
// rotationAnimation.cumulative = YES;
// rotationAnimation.removedOnCompletion = NO;
// //MAXFLOAT
// rotationAnimation.repeatCount = MAXFLOAT;
// [self.openBtn.layer addAnimation:rotationAnimation forKey:@"openRedBagAnimate"];
//
// dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
// [self.openBtn.layer removeAnimationForKey:@"openRedBagAnimate"];
//
// BOOL isDrawed = NO;
// if (isDrawed) {
// QXRedBagRecordViewController *vc = [[QXRedBagRecordViewController alloc] init];
// vc.redbagId = @"";
// [self.viewController.navigationController pushViewController:vc animated:YES];
// [self hide];
// }else{
// [self setType:QXRedBagDrawTypeFinished];
// }
//
// });
}
-(void)recordAction{
QXRedBagRecordViewController *vc = [[QXRedBagRecordViewController alloc] init];
vc.redbagId = self.redpacketModel.redpacket_id;
[self.viewController.navigationController pushViewController:vc animated:YES];
[self hide];
}
-(QXRedBagDrawType)getDrawTypeWithRedpacktModel:(QXRedPacketModel*)model{
self.drawType = QXRedBagDrawTypeOpen;
if (model.type.intValue == 1) {
//
self.drawType = QXRedBagDrawTypeOpen;
///
if (model.countdown.intValue > 0) {
if ([model remainingTime]>0) {
self.drawType = QXRedBagDrawTypeTimeDown;
}
}
///
if ([model.conditions containsString:@"1"] && !self.isCollectedRoom){
self.drawType = QXRedBagDrawTypeCollect;
}
}else{
//
self.drawType = QXRedBagDrawTypePwdSend;
if (self.isFromToComment) {
if ([model.conditions containsString:@"1"] && !self.isCollectedRoom){
self.drawType = QXRedBagDrawTypeCollect;
}else{
if ([self.redpacketModel canOpenNow]) {
[self setType:(QXRedBagDrawTypeOpen)];
}else{
[self setType:QXRedBagDrawTypeTimeDown];
}
}
}
}
return self.drawType;
}
-(void)showInView:(UIView *)view{
self.bgView.y = -SCREEN_HEIGHT;
[view addSubview:self];
[UIView animateWithDuration:0.3 delay:0 usingSpringWithDamping:0.5 initialSpringVelocity:1.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
self.bgView.y = (SCREEN_HEIGHT-454)/2;
} completion:^(BOOL finished) {
}];
}
-(void)hide{
self.redpacketModel = nil;
[UIView animateWithDuration:0.3 delay:0 usingSpringWithDamping:0.5 initialSpringVelocity:1.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
self.bgView.y = SCREEN_HEIGHT;
} completion:^(BOOL finished) {
[self removeFromSuperview];
}];
}
@end
@implementation QXRedBagTimeDownView
- (instancetype)init
{
self = [super init];
if (self) {
[self initSubViews];
}
return self;
}
-(void)setType:(QXRedBagDrawType)type{
_type = type;
switch (type) {
case QXRedBagDrawTypeCollect:{
self.timeLabel.text = @"收藏房间抢红包";
}
break;
case QXRedBagDrawTypeTimeDown:{
self.timeLabel.text = @"00:00后开启红包";
}
break;
case QXRedBagDrawTypePwdSend:{
self.timeLabel.text = @"发送评论抢红包";
}
break;
case QXRedBagDrawTypePwdAllTask:{
self.timeLabel.text = @"完成任务抢红包";
}
break;
default:
break;
}
}
-(void)btnClick{
if (self.type == QXRedBagDrawTypePwdSend || self.type == QXRedBagDrawTypeCollect) {
if (self.btnBlcok) {
self.btnBlcok(self.type);
}
}
}
-(void)setTime:(int)time{
_time = time;
}
-(void)initSubViews{
self.bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"red_bag_time_down_bg"]];
[self addSubview:self.bgImageView];
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self);
}];
self.timeLabel = [[UILabel alloc] init];
self.timeLabel.textAlignment = NSTextAlignmentCenter;
self.timeLabel.font = [UIFont boldSystemFontOfSize:22];
self.timeLabel.textColor = RGB16(0xffffff);
[self addSubview:self.timeLabel];
[self.timeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.equalTo(self);
make.height.mas_equalTo(26);
make.top.mas_equalTo(19);
}];
self.btn = [[UIButton alloc] init];
[self.btn addTarget:self action:@selector(btnClick) forControlEvents:(UIControlEventTouchUpInside)];
[self addSubview:self.btn];
[self.btn mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self);
}];
}
@end

View File

@@ -0,0 +1,29 @@
//
// QXRedBagListView.h
// QXLive
//
// Created by 启星 on 2025/10/11.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface QXRedBagListView : UIView
@property (nonatomic,strong)NSArray <QXRedPacketModel*>*dataArray;
@property (nonatomic,copy)void(^didSelectedRedBlock)(QXRedPacketModel*model);
-(void)showInView:(UIView *)view;
-(void)hide;
-(void)updateRedpacketTimeWithIndex:(NSInteger)index time:(long)time;
@end
@interface QXRedBagListCell : UICollectionViewCell
@property (nonatomic,strong)QXRedPacketModel* redpacketModel;
@property (nonatomic,strong)UIImageView *redBagImageView;
@property (nonatomic,strong)UIImageView *pwdImageView;
@property (nonatomic,strong)UILabel *timeLabel;
@property (nonatomic,strong)UILabel *nameLabel;
@property (nonatomic,assign)long endTime;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,228 @@
//
// QXRedBagListView.m
// QXLive
//
// Created by on 2025/10/11.
//
#import "QXRedBagListView.h"
@interface QXRedBagListView()<UICollectionViewDelegate,UICollectionViewDataSource>
@property (nonatomic,strong)UIView *bigBgView;
@property (nonatomic,strong)UIImageView *bigBgImageView;
@property (nonatomic,strong)UIView *bgView;
@property (nonatomic,strong)UIImageView *bgImageView;
@property (nonatomic,strong)UIImageView *bottomImageView;
@property (nonatomic,strong)UIButton *closeBtn;
@property (nonatomic,strong)UICollectionView *collectionView;
@end
@implementation QXRedBagListView
- (instancetype)init
{
self = [super init];
if (self) {
self.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
[self initSubviews];
}
return self;
}
-(void)initSubviews{
self.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.3];
self.bigBgView = [[UIView alloc] initWithFrame:CGRectMake((SCREEN_WIDTH-375)/2, (SCREEN_HEIGHT-480)/2, 375, 480)];
[self addSubview:self.bigBgView];
self.bigBgImageView = [[UIImageView alloc] initWithFrame:self.bigBgView.bounds];
self.bigBgImageView.image = [UIImage imageNamed:@"red_bag_list_big_bg"];
[self.bigBgView addSubview:self.bigBgImageView];
self.bgView = [[UIView alloc] init];
[self.bgView addRoundedCornersWithRadius:10];
[self.bigBgView addSubview:self.bgView];
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(280);
make.height.mas_equalTo(272);
make.centerX.equalTo(self.bigBgView);
make.top.mas_equalTo(60);
}];
self.bgImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.bgView.width, 242)];
self.bgImageView.image = [UIImage imageNamed:@"red_bag_list_bg"];
[self.bgView addSubview:self.bgImageView];
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.equalTo(self.bgView);
make.height.mas_equalTo(242);
}];
self.bottomImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"red_bag_list_bottom_bg"]];
self.bottomImageView.contentMode = UIViewContentModeScaleToFill;
[self.bgView addSubview:self.bottomImageView];
[self.bottomImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.bottom.right.equalTo(self.bgView);
make.top.equalTo(self.bgImageView.mas_bottom).offset(-1);
}];
self.closeBtn = [[UIButton alloc] init];
[self.closeBtn setBackgroundImage:[UIImage imageNamed:@"home_white_close"] forState:(UIControlStateNormal)];
[self.closeBtn addTarget:self action:@selector(closeAction) forControlEvents:(UIControlEventTouchUpInside)];
[self.bigBgView addSubview:self.closeBtn];
[self.closeBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self);
make.top.equalTo(self.bgView.mas_bottom).offset(40);
make.height.width.mas_equalTo(30);
}];
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
layout.itemSize = CGSizeMake(66,86);
layout.minimumLineSpacing =20;
layout.minimumInteritemSpacing =16;
layout.scrollDirection = UICollectionViewScrollDirectionVertical;
self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
[self.collectionView registerClass:[QXRedBagListCell class] forCellWithReuseIdentifier:@"QXRedBagListCell"];
self.collectionView.delegate = self;
self.collectionView.dataSource = self;
self.collectionView.showsHorizontalScrollIndicator = NO;
self.collectionView.showsVerticalScrollIndicator = NO;
self.collectionView.bounces = NO;
self.collectionView.backgroundColor = [UIColor clearColor];
[self.bgView addSubview:self.collectionView];
[self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(25);
make.right.mas_equalTo(-25);
make.bottom.mas_equalTo(-30);
make.top.mas_equalTo(156);
}];
}
-(void)updateRedpacketTimeWithIndex:(NSInteger)index time:(long)time{
QXRedBagListCell *cell = [self.collectionView cellForItemAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0]];
cell.endTime = time;
}
-(void)setDataArray:(NSArray<QXRedPacketModel *> *)dataArray{
_dataArray = dataArray;
if (dataArray.count >3) {
[self.bgView mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(358);
}];
}else{
[self.bgView mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(272);
}];
}
[self.collectionView reloadData];
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
return self.dataArray.count;
}
-(__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
QXRedBagListCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"QXRedBagListCell" forIndexPath:indexPath];
cell.redpacketModel = self.dataArray[indexPath.row];
return cell;
}
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
QXRedPacketModel *model = self.dataArray[indexPath.row];
if (self.didSelectedRedBlock) {
self.didSelectedRedBlock(model);
}
[self hide];
}
-(void)closeAction{
[self hide];
}
-(void)showInView:(UIView *)view{
self.bigBgView.y = -SCREEN_HEIGHT;
[view addSubview:self];
[UIView animateWithDuration:0.3 delay:0 usingSpringWithDamping:0.5 initialSpringVelocity:1.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
self.bigBgView.y = (SCREEN_HEIGHT-480)/2;
} completion:^(BOOL finished) {
}];
}
-(void)hide{
[UIView animateWithDuration:0.3 delay:0 usingSpringWithDamping:0.5 initialSpringVelocity:1.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
self.bigBgView.y = SCREEN_HEIGHT;
} completion:^(BOOL finished) {
[self removeFromSuperview];
}];
}
@end
@implementation QXRedBagListCell
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.contentView.backgroundColor = [UIColor clearColor];
[self initSubviews];
}
return self;
}
-(void)setRedpacketModel:(QXRedPacketModel *)redpacketModel{
_redpacketModel = redpacketModel;
self.redBagImageView.image = [UIImage imageNamed:redpacketModel.is_qiang.intValue==1?@"red_bag_list_is_get_icon":@"red_bag_list_icon"];
self.pwdImageView.hidden = redpacketModel.type.intValue!=2;
self.nameLabel.text = redpacketModel.nickname;
if (self.redpacketModel.countdown.intValue==0) {
self.timeLabel.hidden = YES;
}
}
-(void)setEndTime:(long)endTime{
if (self.redpacketModel.countdown.intValue==0) {
self.timeLabel.hidden = YES;
return;
}
if (endTime<=0) {
self.timeLabel.hidden = YES;
return;
}
self.timeLabel.hidden = NO;
NSInteger min = (endTime % 3600) / 60;
NSInteger second = endTime % 60;
self.timeLabel.text = [NSString stringWithFormat:@" %02ld:%02ld ",min,second];
}
-(void)initSubviews{
self.redBagImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"red_bag_list_icon"]];
[self.contentView addSubview:self.redBagImageView];
[self.redBagImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(4);
make.height.mas_equalTo(66);
make.width.mas_equalTo(66);
make.centerX.equalTo(self.contentView);
}];
self.pwdImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"red_bag_list_pwd_icon"]];
[self.contentView addSubview:self.pwdImageView];
[self.pwdImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.top.equalTo(self.contentView);
make.width.mas_equalTo(34);
make.height.mas_equalTo(18);
}];
self.timeLabel = [[UILabel alloc] init];
self.timeLabel.textColor = RGB16(0xffffff);
[self.timeLabel addRoundedCornersWithRadius:6];
self.timeLabel.hidden = YES;
self.timeLabel.backgroundColor = RGB16A(0x000000, 0.25);
self.timeLabel.font = [UIFont systemFontOfSize:12];
[self.contentView addSubview:self.timeLabel];
[self.timeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(self.redBagImageView);
make.centerX.equalTo(self.contentView);
make.height.mas_equalTo(12);
}];
self.nameLabel = [[UILabel alloc] init];
self.nameLabel.textColor = RGB16(0xD04248);
self.nameLabel.font = [UIFont systemFontOfSize:12];
[self.contentView addSubview:self.nameLabel];
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(self.contentView);
make.centerX.equalTo(self.contentView);
make.height.mas_equalTo(12);
}];
}
@end

View File

@@ -0,0 +1,18 @@
//
// QXRedBagSendView.h
// QXLive
//
// Created by 启星 on 2025/10/10.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface QXRedBagSendView : UIView
@property (nonatomic,strong)NSString *room_id;
-(void)showInView:(UIView*)view;
-(void)hide;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,924 @@
//
// QXRedBagSendView.m
// QXLive
//
// Created by on 2025/10/10.
//
#import "QXRedBagSendView.h"
#import <WebKit/WebKit.h>
#import "QXMineNetwork.h"
@interface QXRedBagSendView()<UITextFieldDelegate>
@property (nonatomic,strong)UIView *bgView;
@property (nonatomic,strong)UIImageView *bgImageView;
@property (nonatomic,strong)UILabel *titleLabel;
@property (nonatomic,strong)UIButton *helpBtn;
@property (nonatomic,strong)UIButton *backBtn;
@property (nonatomic,strong)UIButton *closeBtn;
@property (nonatomic,strong)UIButton *nextBtn;
@property (nonatomic,strong)UIButton *commitBtn;
@property (nonatomic,strong)UIView* firstContentView;
@property (nonatomic,strong)UIButton *normalRedBagBtn;
@property (nonatomic,strong)UIButton *pwdRedBagBtn;
@property (nonatomic,strong)UIView *firstTopView;
@property (nonatomic,strong)UIView *firstPwdView;
@property (nonatomic,strong)UITextField *pwdTextField;
@property (nonatomic,strong)UIView *firstTimeView;
@property (nonatomic,strong)UIView *scrollBgView;
@property (nonatomic,strong)UIButton *coinRedBagBtn;
@property (nonatomic,strong)UIButton *diamondRedBagBtn;
@property (nonatomic,strong)UIButton *selectedRedBagTimeBtn;
/// 1 2
@property (nonatomic,strong)NSString *redBagType;
/// 1 2
@property (nonatomic,strong)NSString *redBagContentType;
///
@property (nonatomic,strong)NSString *redBagTime;
/// 0 1 2 ,
@property (nonatomic,strong)NSString *conditions;
@property (nonatomic,strong)NSString *coin;
@property (nonatomic,strong)NSString *earnings;
@property (nonatomic,strong)UIView* nextContentView;
@property (nonatomic,strong)UILabel *moneyLabel;
@property (nonatomic,strong)UILabel *moneyUnitLabel;
@property (nonatomic,strong)UITextField *moneyTextField;
@property (nonatomic,strong)UITextField *countTextField;
@property (nonatomic,strong)UITextField *remarkTextField;
///
@property (nonatomic,strong)UIButton *noDrawAuthBtn;
///
@property (nonatomic,strong)UIButton *collectDrawAuthBtn;
///
@property (nonatomic,strong)UIButton *upSeatDrawAuthBtn;
@property (nonatomic,strong)UIView* ruleContentView;
@property (nonatomic,strong)WKWebView* webView;
@property (nonatomic,strong)NSArray* timeArray;
@property (nonatomic,strong)NSArray* drawAuthArray;
/// 0 1
@property (nonatomic,assign)NSInteger currentPage;
///
@property (nonatomic,assign)BOOL isFromRule;
@property (nonatomic,assign)BOOL isSendNet;
@end
@implementation QXRedBagSendView
- (instancetype)init
{
self = [super init];
if (self) {
self.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
[self initSubviews];
}
return self;
}
-(void)initSubviews{
///
self.redBagType = @"1";
///
self.redBagContentType = @"1";
///
self.redBagTime = @"0";
///
self.conditions = @"0";
self.timeArray = @[@0,@1,@2,@5,@10];
self.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.3];
self.bgView = [[UIView alloc] initWithFrame:CGRectMake((SCREEN_WIDTH-345)/2, (SCREEN_HEIGHT-454)/2, 345, 454)];
[self addSubview:self.bgView];
self.bgImageView = [[UIImageView alloc] initWithFrame:self.bgView.bounds];
self.bgImageView.image = [UIImage imageNamed:@"room_send_redbag_bg"];
[self.bgView addSubview:self.bgImageView];
self.titleLabel = [[UILabel alloc] init];
self.titleLabel.font = [UIFont boldSystemFontOfSize:18];
self.titleLabel.text = @"直播间红包";
self.titleLabel.textColor = RGB16(0xffffff);
[self.bgView addSubview:self.titleLabel];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.bgView);
make.top.mas_equalTo(15);
make.height.mas_equalTo(26);
}];
self.helpBtn = [[UIButton alloc] init];
[self.helpBtn setImage:[UIImage imageNamed:@"room_redbag_help"] forState:(UIControlStateNormal)];
[self.helpBtn addTarget:self action:@selector(helpAction) forControlEvents:(UIControlEventTouchUpInside)];
[self.bgView addSubview:self.helpBtn];
[self.helpBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(40);
make.centerY.equalTo(self.titleLabel);
make.left.mas_equalTo(5);
}];
self.backBtn = [[UIButton alloc] init];
[self.backBtn setImage:[UIImage imageNamed:@"room_redbag_back"] forState:(UIControlStateNormal)];
[self.backBtn addTarget:self action:@selector(backAction) forControlEvents:(UIControlEventTouchUpInside)];
[self.bgView addSubview:self.backBtn];
self.backBtn.hidden = YES;
[self.backBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.helpBtn);
}];
self.closeBtn = [[UIButton alloc] init];
[self.closeBtn setImage:[UIImage imageNamed:@"room_redbag_close"] forState:(UIControlStateNormal)];
[self.closeBtn addTarget:self action:@selector(closeAction) forControlEvents:(UIControlEventTouchUpInside)];
[self.bgView addSubview:self.closeBtn];
[self.closeBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(40);
make.centerY.equalTo(self.titleLabel);
make.right.mas_equalTo(-5);
}];
self.nextBtn = [[UIButton alloc] init];
[self.nextBtn setTitle:@"下一步" forState:(UIControlStateNormal)];
self.nextBtn.titleLabel.font = [UIFont boldSystemFontOfSize:18];
[self.nextBtn addTarget:self action:@selector(nextAction) forControlEvents:(UIControlEventTouchUpInside)];
[self.nextBtn setTitleColor:RGB16(0xF35248) forState:UIControlStateNormal];
[self.nextBtn setBackgroundImage:[UIImage imageNamed:@"red_bag_next_btn_bg"] forState:(UIControlStateNormal)];
[self.bgView addSubview:self.nextBtn];
[self.nextBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(44);
make.left.mas_equalTo(15);
make.right.mas_equalTo(-15);
make.bottom.mas_equalTo(-15);
}];
self.commitBtn = [[UIButton alloc] init];
[self.commitBtn setTitle:@"发红包" forState:(UIControlStateNormal)];
self.commitBtn.titleLabel.font = [UIFont boldSystemFontOfSize:18];
self.commitBtn.hidden = YES;
[self.commitBtn addTarget:self action:@selector(commitAction) forControlEvents:(UIControlEventTouchUpInside)];
[self.commitBtn setBackgroundImage:[UIImage imageNamed:@"red_bag_next_btn_bg"] forState:(UIControlStateNormal)];
[self.commitBtn setTitleColor:RGB16(0xF35248) forState:UIControlStateNormal];
[self.bgView addSubview:self.commitBtn];
[self.commitBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.nextBtn);
}];
[self initFirstContentView];
[self initNextContentView];
[self initRuleView];
[self getMyWallet];
}
-(void)getMyWallet{
MJWeakSelf
[QXMineNetwork getWalletInfoSuccessBlock:^(NSString * _Nonnull coin, NSString * _Nonnull earnings, NSString * _Nonnull title, NSString * _Nonnull url) {
weakSelf.coin = coin;
weakSelf.earnings = coin;
weakSelf.moneyLabel.text = [NSString stringWithFormat:@"%@金币可用",self.coin];
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
}];
}
-(void)initFirstContentView{
self.firstContentView = [[UIView alloc] init];
[self.bgView addSubview:self.firstContentView];
[self.firstContentView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.titleLabel.mas_bottom).offset(15);
make.left.mas_equalTo(15);
make.right.mas_equalTo(-15);
make.bottom.equalTo(self.nextBtn.mas_top).offset(-15);
}];
UIView *topView = [[UIView alloc] init];
topView.backgroundColor = RGB16(0xffffff);
topView.layer.masksToBounds = YES;
topView.layer.cornerRadius = 8;
[self.firstContentView addSubview:topView];
self.firstTopView = topView;
[topView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.left.right.equalTo(self.firstContentView);
make.height.mas_equalTo(88);
}];
UILabel *topTitleLabel = [[UILabel alloc] init];
topTitleLabel.text = @"参与领取限制";
topTitleLabel.font = [UIFont boldSystemFontOfSize:18];
topTitleLabel.textColor = RGB16(0x666666);
[topView addSubview:topTitleLabel];
[topTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(15);
make.top.mas_equalTo(11);
make.height.mas_equalTo(26);
}];
UIButton *normalRedBagBtn = [[UIButton alloc] init];
normalRedBagBtn.titleLabel.font = [UIFont boldSystemFontOfSize:15];
[normalRedBagBtn setTitle:@"普通红包" forState:(UIControlStateNormal)];
[normalRedBagBtn setTitleColor:RGB16(0xffffff) forState:(UIControlStateNormal)];
[normalRedBagBtn setBackgroundImage:[UIImage imageNamed:@"red_bag_btn_bg_nor"] forState:(UIControlStateNormal)];
[normalRedBagBtn setBackgroundImage:[UIImage imageNamed:@"red_bag_btn_bg_sel"] forState:(UIControlStateSelected)];
[normalRedBagBtn addTarget:self action:@selector(selectedRedBagTypeAction:) forControlEvents:(UIControlEventTouchUpInside)];
[topView addSubview:normalRedBagBtn];
self.normalRedBagBtn = normalRedBagBtn;
[normalRedBagBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(15);
make.bottom.mas_equalTo(-5);
make.height.mas_equalTo(36);
make.width.mas_equalTo(137);
}];
UIButton *pwdRedBagBtn = [[UIButton alloc] init];
pwdRedBagBtn.titleLabel.font = [UIFont boldSystemFontOfSize:15];
[pwdRedBagBtn setTitle:@"口令红包" forState:(UIControlStateNormal)];
[pwdRedBagBtn addTarget:self action:@selector(selectedRedBagTypeAction:) forControlEvents:(UIControlEventTouchUpInside)];
[pwdRedBagBtn setTitleColor:RGB16(0xffffff) forState:(UIControlStateNormal)];
[pwdRedBagBtn setBackgroundImage:[UIImage imageNamed:@"red_bag_btn_bg_nor"] forState:(UIControlStateNormal)];
[pwdRedBagBtn setBackgroundImage:[UIImage imageNamed:@"red_bag_btn_bg_sel"] forState:(UIControlStateSelected)];
[topView addSubview:pwdRedBagBtn];
self.pwdRedBagBtn = pwdRedBagBtn;
[pwdRedBagBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(-15);
make.bottom.mas_equalTo(-5);
make.height.mas_equalTo(36);
make.width.mas_equalTo(137);
}];
UIView *centerView1 = [[UIView alloc] init];
centerView1.backgroundColor = RGB16(0xffffff);
centerView1.layer.masksToBounds = YES;
centerView1.layer.cornerRadius = 8;
[self.firstContentView addSubview:centerView1];
self.firstPwdView = centerView1;
[centerView1 mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(topView.mas_bottom).offset(12);
make.left.right.equalTo(self.firstContentView);
make.height.mas_equalTo(48);
}];
UILabel *pwdTitleLabel = [[UILabel alloc] init];
pwdTitleLabel.font = [UIFont boldSystemFontOfSize:18];
pwdTitleLabel.text = @"口令";
pwdTitleLabel.textColor = RGB16(0x666666);
[self.firstPwdView addSubview:pwdTitleLabel];
[pwdTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(15);
make.centerY.equalTo(self.firstPwdView);
make.width.mas_equalTo(40);
}];
UITextField *pwdTextField = [[UITextField alloc] init];
pwdTextField.font = [UIFont boldSystemFontOfSize:18];
pwdTextField.delegate = self;
pwdTextField.textColor = RGB16(0x666666);
pwdTextField.textAlignment = NSTextAlignmentRight;
pwdTextField.returnKeyType = UIReturnKeyDone;
pwdTextField.placeholder = @"请输入口令";
self.pwdTextField = pwdTextField;
[self.firstPwdView addSubview:pwdTextField];
[pwdTextField mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(pwdTitleLabel.mas_right).offset(15);
make.right.mas_equalTo(-15);
make.top.bottom.equalTo(self.firstPwdView);
}];
UIView *centerView2 = [[UIView alloc] init];
centerView2.backgroundColor = RGB16(0xffffff);
centerView2.layer.masksToBounds = YES;
centerView2.layer.cornerRadius = 8;
self.firstTimeView = centerView2;
[self.firstContentView addSubview:centerView2];
[centerView2 mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(topView.mas_bottom).offset(72);
make.left.right.equalTo(self.firstContentView);
make.height.mas_equalTo(88);
}];
UILabel *timeTitleLabel = [[UILabel alloc] init];
timeTitleLabel.textColor = RGB16(0x666666);
timeTitleLabel.font = [UIFont boldSystemFontOfSize:18];
timeTitleLabel.text = @"开奖倒计时";
[self.firstTimeView addSubview:timeTitleLabel];
[timeTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(15);
make.top.mas_equalTo(11);
make.height.mas_equalTo(26);
}];
CGFloat btnWidth = 49;
CGFloat leftMargin = 15;
CGFloat btnSpace = 10;
CGFloat btnHeight = 36;
for (int i = 0; i < self.timeArray.count ; i++) {
UIButton *btn = [[UIButton alloc] init];
NSNumber *number = self.timeArray[i];
btn.tag = number.intValue+10;
NSString *title = @"立刻";
if (number.intValue>0) {
title = [NSString stringWithFormat:@"%d分钟",number.intValue];
}
[btn setTitle:title forState:(UIControlStateNormal)];
[btn setBackgroundImage:[UIImage imageNamed:@"red_bag_time_btn_bg_nor"] forState:(UIControlStateNormal)];
[btn setBackgroundImage:[UIImage imageNamed:@"red_bag_time_btn_bg_sel"] forState:(UIControlStateSelected)];
btn.titleLabel.font = [UIFont boldSystemFontOfSize:14];
[btn addTarget:self action:@selector(redBagTimeAction:) forControlEvents:(UIControlEventTouchUpInside)];
[self.firstTimeView addSubview:btn];
//
if (i == 0) {
btn.selected = YES;
self.selectedRedBagTimeBtn = btn;
}
[btn mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(leftMargin+(btnWidth+btnSpace)*i);
make.width.mas_equalTo(btnWidth);
make.height.mas_equalTo(btnHeight);
make.bottom.mas_equalTo(-5);
}];
}
UIView *bottomView = [[UIView alloc] init];
bottomView.backgroundColor = RGB16(0xffffff);
bottomView.layer.masksToBounds = YES;
bottomView.layer.cornerRadius = 8;
[self.firstContentView addSubview:bottomView];
[bottomView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(centerView2.mas_bottom).offset(12);
make.left.right.equalTo(self.firstContentView);
make.height.mas_equalTo(48);
}];
UILabel *redBagTypeLabel = [[UILabel alloc] init];
redBagTypeLabel.textColor = RGB16(0x666666);
redBagTypeLabel.font = [UIFont boldSystemFontOfSize:18];
redBagTypeLabel.text = @"红包类型";
[bottomView addSubview:redBagTypeLabel];
[redBagTypeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(15);
make.centerY.equalTo(bottomView);
}];
UIView *redBagTypeView = [[UIView alloc] init];
redBagTypeView.backgroundColor = RGB16(0xBA230A);
redBagTypeView.layer.masksToBounds = YES;
redBagTypeView.layer.cornerRadius = 13;
[bottomView addSubview:redBagTypeView];
[redBagTypeView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(130);
make.height.mas_equalTo(26);
make.centerY.equalTo(bottomView);
make.right.mas_equalTo(-15);
}];
UIView *scrollBgView = [[UIView alloc] init];
scrollBgView.backgroundColor = RGB16(0xFDE8A3);
scrollBgView.layer.masksToBounds = YES;
scrollBgView.layer.cornerRadius = 13;
[redBagTypeView addSubview:scrollBgView];
self.scrollBgView = scrollBgView;
[scrollBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(66);
make.top.bottom.equalTo(redBagTypeView);
make.left.equalTo(redBagTypeView);
}];
self.coinRedBagBtn = [[UIButton alloc] init];
[self.coinRedBagBtn setTitle:@"金币红包" forState:(UIControlStateNormal)];
self.coinRedBagBtn.titleLabel.font = [UIFont systemFontOfSize:14];
[self.coinRedBagBtn setTitleColor:RGB16(0xD01717) forState:(UIControlStateSelected)];
[self.coinRedBagBtn setTitleColor:RGB16(0xFFC9C7) forState:(UIControlStateNormal)];
self.coinRedBagBtn.selected = YES;
[self.coinRedBagBtn addTarget:self action:@selector(redBagContentTypeAction:) forControlEvents:(UIControlEventTouchUpInside)];
[redBagTypeView addSubview:self.coinRedBagBtn];
[self.coinRedBagBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(redBagTypeView);
make.width.mas_equalTo(66);
make.top.bottom.equalTo(redBagTypeView);
}];
self.diamondRedBagBtn = [[UIButton alloc] init];
[self.diamondRedBagBtn setTitle:@"钻石红包" forState:(UIControlStateNormal)];
self.diamondRedBagBtn.titleLabel.font = [UIFont systemFontOfSize:14];
[self.diamondRedBagBtn setTitleColor:RGB16(0xD01717) forState:(UIControlStateSelected)];
[self.diamondRedBagBtn setTitleColor:RGB16(0xFFC9C7) forState:(UIControlStateNormal)];
[self.diamondRedBagBtn addTarget:self action:@selector(redBagContentTypeAction:) forControlEvents:(UIControlEventTouchUpInside)];
[redBagTypeView addSubview:self.diamondRedBagBtn];
[self.diamondRedBagBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(redBagTypeView);
make.width.mas_equalTo(66);
make.top.bottom.equalTo(redBagTypeView);
}];
[self selectedRedBagTypeAction:self.normalRedBagBtn];
}
-(void)initNextContentView{
self.drawAuthArray = @[@0,@1,@2];
self.nextContentView = [[UIView alloc] init];
self.nextContentView.hidden = YES;
[self.bgView addSubview:self.nextContentView];
[self.nextContentView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.titleLabel.mas_bottom).offset(15);
make.left.mas_equalTo(15);
make.right.mas_equalTo(-15);
make.bottom.equalTo(self.nextBtn.mas_top).offset(-15);
}];
self.moneyLabel = [[UILabel alloc] init];
self.moneyLabel.font = [UIFont boldSystemFontOfSize:13];
self.moneyLabel.textColor = RGB16(0xffffff);
self.moneyLabel.text = @"-金币可用";
[self.nextContentView addSubview:self.moneyLabel];
[self.moneyLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.nextContentView).offset(-8);
make.height.mas_equalTo(17);
make.top.equalTo(self.nextContentView).offset(0);
}];
UIView *moneyBgView = [[UIView alloc] init];
moneyBgView.backgroundColor = RGB16(0xC51A0C);
moneyBgView.layer.masksToBounds = YES;
moneyBgView.layer.cornerRadius = 8;
[self.nextContentView insertSubview:moneyBgView belowSubview:self.moneyLabel];
[moneyBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.right.equalTo(self.moneyLabel).offset(8);
make.left.equalTo(self.moneyLabel).offset(-8);
make.top.equalTo(self.moneyLabel).offset(-3);
}];
UIView *topBgView = [[UIView alloc] init];
topBgView.backgroundColor = RGB16(0xffffff);
topBgView.layer.masksToBounds = YES;
topBgView.layer.cornerRadius = 8;
[self.nextContentView addSubview:topBgView];
[topBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(moneyBgView.mas_bottom).offset(-8);
make.left.right.equalTo(self.nextContentView);
make.height.mas_equalTo(48);
}];
UILabel *moneyTitleLabel = [[UILabel alloc] init];
moneyTitleLabel.font = [UIFont boldSystemFontOfSize:18];
moneyTitleLabel.text = @"金额";
moneyTitleLabel.textColor = RGB16(0x666666);
moneyTitleLabel.textAlignment = NSTextAlignmentLeft;
[topBgView addSubview:moneyTitleLabel];
[moneyTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(15);
make.centerY.equalTo(topBgView);
make.width.mas_equalTo(40);
}];
UILabel *moneyUnitLabel = [[UILabel alloc] init];
moneyUnitLabel.font = [UIFont systemFontOfSize:13];
moneyUnitLabel.textAlignment = NSTextAlignmentRight;
moneyUnitLabel.textColor = RGB16(0x666666);
self.moneyUnitLabel = moneyUnitLabel;
[topBgView addSubview:moneyUnitLabel];
[moneyUnitLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(-15);
make.centerY.equalTo(topBgView);
make.width.mas_equalTo(30);
}];
UITextField *pwdTextField = [[UITextField alloc] init];
pwdTextField.font = [UIFont boldSystemFontOfSize:18];
pwdTextField.delegate = self;
pwdTextField.textColor = RGB16(0x666666);
pwdTextField.textAlignment = NSTextAlignmentRight;
pwdTextField.returnKeyType = UIReturnKeyDone;
pwdTextField.keyboardType = UIKeyboardTypeNumberPad;
pwdTextField.placeholder = @"请输入红包金额";
self.moneyTextField = pwdTextField;
[topBgView addSubview:pwdTextField];
[pwdTextField mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(moneyTitleLabel.mas_right).offset(15);
make.right.equalTo(moneyUnitLabel.mas_left);
make.top.bottom.equalTo(topBgView);
}];
UIView *countBgView = [[UIView alloc] init];
countBgView.backgroundColor = RGB16(0xffffff);
countBgView.layer.masksToBounds = YES;
countBgView.layer.cornerRadius = 8;
[self.nextContentView addSubview:countBgView];
[countBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(topBgView.mas_bottom).offset(12);
make.left.right.equalTo(self.nextContentView);
make.height.mas_equalTo(48);
}];
UILabel *countTitleLabel = [[UILabel alloc] init];
countTitleLabel.font = [UIFont boldSystemFontOfSize:18];
countTitleLabel.text = @"个数";
countTitleLabel.textColor = RGB16(0x666666);
countTitleLabel.textAlignment = NSTextAlignmentLeft;
[countBgView addSubview:countTitleLabel];
[countTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(15);
make.centerY.equalTo(countBgView);
make.width.mas_equalTo(40);
}];
UILabel *countUnitLabel = [[UILabel alloc] init];
countUnitLabel.font = [UIFont systemFontOfSize:13];
countUnitLabel.text = @"个";
countUnitLabel.textAlignment = NSTextAlignmentRight;
countUnitLabel.textColor = RGB16(0x666666);
[countBgView addSubview:countUnitLabel];
[countUnitLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(-15);
make.centerY.equalTo(countBgView);
make.width.mas_equalTo(15);
}];
UITextField *countTextField = [[UITextField alloc] init];
countTextField.font = [UIFont boldSystemFontOfSize:18];
countTextField.delegate = self;
countTextField.textColor = RGB16(0x666666);
countTextField.textAlignment = NSTextAlignmentRight;
countTextField.returnKeyType = UIReturnKeyDone;
countTextField.placeholder = @"请输入红包数量";
countTextField.keyboardType = UIKeyboardTypeNumberPad;
self.countTextField = countTextField;
[countBgView addSubview:countTextField];
[countTextField mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(countTitleLabel.mas_right).offset(15);
make.right.equalTo(countUnitLabel.mas_left);
make.top.bottom.equalTo(countBgView);
}];
UIView *drawAuthBgView = [[UIView alloc] init];
drawAuthBgView.backgroundColor = RGB16(0xffffff);
drawAuthBgView.layer.masksToBounds = YES;
drawAuthBgView.layer.cornerRadius = 8;
[self.nextContentView addSubview:drawAuthBgView];
[drawAuthBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(countBgView.mas_bottom).offset(12);
make.left.right.equalTo(self.nextContentView);
make.height.mas_equalTo(88);
}];
UILabel *authTitleLabel = [[UILabel alloc] init];
authTitleLabel.textColor = RGB16(0x666666);
authTitleLabel.font = [UIFont boldSystemFontOfSize:18];
authTitleLabel.text = @"条件";
[drawAuthBgView addSubview:authTitleLabel];
[authTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(15);
make.top.mas_equalTo(11);
make.height.mas_equalTo(26);
}];
CGFloat btnWidth = 88.3;
CGFloat leftMargin = 15;
CGFloat btnSpace = 10;
CGFloat btnHeight = 36;
for (int i = 0; i < self.drawAuthArray.count ; i++) {
UIButton *btn = [[UIButton alloc] init];
NSNumber *number = self.drawAuthArray[i];
NSString *title = @"";
if (number.intValue == 0) {
self.noDrawAuthBtn = btn;
title = @"无";
}else if(number.intValue == 1){
self.collectDrawAuthBtn = btn;
title = @"收藏房间";
}else if(number.intValue == 2){
self.upSeatDrawAuthBtn = btn;
title = @"仅麦上用户";
}
[btn setTitle:title forState:(UIControlStateNormal)];
[btn setBackgroundImage:[UIImage imageNamed:@"red_bag_auth_btn_bg_nor"] forState:(UIControlStateNormal)];
[btn setBackgroundImage:[UIImage imageNamed:@"red_bag_auth_btn_bg_sel"] forState:(UIControlStateSelected)];
btn.titleLabel.font = [UIFont boldSystemFontOfSize:14];
[btn addTarget:self action:@selector(drawAuthAction:) forControlEvents:(UIControlEventTouchUpInside)];
[drawAuthBgView addSubview:btn];
[btn mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(leftMargin+(btnWidth+btnSpace)*i);
make.width.mas_equalTo(btnWidth);
make.height.mas_equalTo(btnHeight);
make.bottom.mas_equalTo(-5);
}];
//
if (i == 0) {
btn.selected = YES;
}
}
UIView *remarkBgView = [[UIView alloc] init];
remarkBgView.backgroundColor = RGB16(0xffffff);
remarkBgView.layer.masksToBounds = YES;
remarkBgView.layer.cornerRadius = 8;
[self.nextContentView addSubview:remarkBgView];
[remarkBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(drawAuthBgView.mas_bottom).offset(12);
make.left.right.equalTo(self.nextContentView);
make.height.mas_equalTo(48);
}];
UILabel *remarkTitleLabel = [[UILabel alloc] init];
remarkTitleLabel.font = [UIFont boldSystemFontOfSize:18];
remarkTitleLabel.text = @"备注";
remarkTitleLabel.textColor = RGB16(0x666666);
[remarkBgView addSubview:remarkTitleLabel];
[remarkTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(15);
make.centerY.equalTo(remarkBgView);
make.width.mas_equalTo(40);
}];
UITextField *remarkTextField = [[UITextField alloc] init];
remarkTextField.font = [UIFont boldSystemFontOfSize:18];
remarkTextField.delegate = self;
remarkTextField.textColor = RGB16(0x666666);
remarkTextField.textAlignment = NSTextAlignmentRight;
remarkTextField.returnKeyType = UIReturnKeyDone;
remarkTextField.placeholder = @"请输入备注";
self.remarkTextField = remarkTextField;
[remarkBgView addSubview:remarkTextField];
[remarkTextField mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(remarkTitleLabel.mas_right).offset(15);
make.right.mas_equalTo(-15);
make.top.bottom.equalTo(remarkBgView);
}];
}
-(void)initRuleView{
self.ruleContentView = [[UIView alloc] init];
self.ruleContentView.hidden = YES;
self.ruleContentView.backgroundColor = RGB16(0xffffff);
self.ruleContentView.layer.masksToBounds = YES;
self.ruleContentView.layer.cornerRadius = 16;
[self.bgView addSubview:self.ruleContentView];
[self.ruleContentView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.titleLabel.mas_bottom).offset(15);
make.left.mas_equalTo(15);
make.right.mas_equalTo(-15);
make.bottom.equalTo(self.bgView).offset(-15);
}];
self.webView = [[WKWebView alloc] init];
[self.ruleContentView addSubview:self.webView];
[self.webView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.top.mas_equalTo(15);
make.right.bottom.mas_equalTo(-15);
}];
}
#pragma mark - UITextFieldDelegate
-(void)textFieldDidBeginEditing:(UITextField *)textField{
[UIView animateWithDuration:0.3 animations:^{
self.bgView.y = 0;
}];
}
-(void)textFieldDidEndEditing:(UITextField *)textField{
[UIView animateWithDuration:0.3 animations:^{
self.bgView.y = (SCREEN_HEIGHT-454)/2;
}];
}
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
return YES;
}
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
[self endEditing:YES];
}
#pragma mark - action
-(void)nextAction{
if (self.redBagType.intValue == 2) {
if (![self.pwdTextField.text isExist]) {
showToast(@"请输入口令");
return;
}
}
self.currentPage = 1;
if (self.redBagContentType.intValue == 1) {
self.moneyUnitLabel.text = @"金币";
}else{
self.moneyUnitLabel.text = @"钻石";
}
self.backBtn.hidden = YES;
self.helpBtn.hidden = NO;
self.nextBtn.hidden = YES;
self.commitBtn.hidden = NO;
self.nextContentView.alpha = 0;
self.nextContentView.hidden = NO;
[UIView animateWithDuration:0.3 animations:^{
self.firstContentView.alpha = 0;
self.nextContentView.alpha = 1;
} completion:^(BOOL finished) {
self.firstContentView.hidden = YES;
self.firstContentView.alpha = 1;
}];
}
-(void)commitAction{
if (![self.moneyTextField.text isExist]) {
showToast(@"请输入红包金额");
return;
}
if (![self.countTextField.text isExist]) {
showToast(@"请输入红包数量");
return;
}
if (self.countTextField.text.longLongValue > self.moneyTextField.text.longLongValue) {
showToast(@"红包数量不能大于红包金额");
return;
}
if (self.isSendNet) {
return;
}
self.isSendNet = YES;
[QXMineNetwork createRedpacketWithType:self.redBagType
password:self.pwdTextField.text
coin_type:self.redBagContentType
total_amount:self.moneyTextField.text
total_count:self.countTextField.text
conditions:self.conditions
countdown:self.redBagTime
room_id:self.room_id
remark:self.remarkTextField.text
successBlock:^(NSDictionary * _Nonnull dict) {
self.isSendNet = NO;
showToast(@"发送成功");
[self hide];
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
self.isSendNet = NO;
showToast(msg);
}];
}
-(void)helpAction{
self.isFromRule = YES;
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]];
[self.webView loadRequest:request];
self.backBtn.hidden = NO;
self.helpBtn.hidden = YES;
self.nextBtn.hidden = YES;
self.commitBtn.hidden = YES;
self.ruleContentView.alpha = 0;
self.ruleContentView.hidden = NO;
UIView *currentView = self.currentPage==1?self.nextContentView:self.firstContentView;
[UIView animateWithDuration:0.3 animations:^{
currentView.alpha = 0;
self.ruleContentView.alpha = 1;
} completion:^(BOOL finished) {
currentView.hidden = YES;
currentView.alpha = 1;
}];
}
-(void)closeAction{
[self hide];
}
-(void)backAction{
self.backBtn.hidden = YES;
self.helpBtn.hidden = NO;
UIView *currentView = self.currentPage==1?self.nextContentView:self.firstContentView;
self.nextBtn.hidden = self.currentPage==0?NO:YES;
self.commitBtn.hidden = self.currentPage==1?NO:YES;
currentView.alpha = 0;
currentView.hidden = NO;
[UIView animateWithDuration:0.3 animations:^{
self.ruleContentView.alpha = 0;
currentView.alpha = 1;
} completion:^(BOOL finished) {
self.ruleContentView.alpha = 1;
self.ruleContentView.hidden = YES;
}];
self.isFromRule = NO;
}
-(void)selectedRedBagTypeAction:(UIButton*)sender{
if (sender.selected) {
return;
}
if (sender == self.normalRedBagBtn) {
self.pwdRedBagBtn.selected = NO;
self.normalRedBagBtn.selected = YES;
self.firstPwdView.hidden = YES;
[self.firstTimeView mas_updateConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.firstTopView.mas_bottom).offset(12);
}];
self.redBagType = @"1";
self.pwdTextField.text = @"";
}else{
self.pwdRedBagBtn.selected = YES;
self.normalRedBagBtn.selected = NO;
self.firstPwdView.hidden = NO;
[self.firstTimeView mas_updateConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.firstTopView.mas_bottom).offset(72);
}];
self.redBagType = @"2";
}
}
-(void)redBagContentTypeAction:(UIButton*)sender{
if (sender.selected) {
return;
}
if (sender == self.coinRedBagBtn) {
self.diamondRedBagBtn.selected = NO;
[self.scrollBgView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(66);
make.left.top.bottom.mas_equalTo(0);
}];
self.coinRedBagBtn.selected = YES;
self.redBagContentType = @"1";
self.moneyLabel.text = [NSString stringWithFormat:@"%@金币可用",self.coin];
}else{
self.coinRedBagBtn.selected = NO;
[self.scrollBgView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(66);
make.right.top.bottom.mas_equalTo(0);
}];
self.diamondRedBagBtn.selected = YES;
self.redBagContentType = @"2";
self.moneyLabel.text = [NSString stringWithFormat:@"%@钻石可用",self.earnings];
}
}
-(void)drawAuthAction:(UIButton*)sender{
if (sender == self.noDrawAuthBtn) {
self.noDrawAuthBtn.selected = YES;
self.collectDrawAuthBtn.selected = NO;
self.upSeatDrawAuthBtn.selected = NO;
}else if (sender == self.collectDrawAuthBtn) {
self.collectDrawAuthBtn.selected = !self.collectDrawAuthBtn.selected;
if (self.upSeatDrawAuthBtn.selected || self.collectDrawAuthBtn.selected) {
self.noDrawAuthBtn.selected = NO;
}else{
self.noDrawAuthBtn.selected = YES;
}
}else if (sender == self.upSeatDrawAuthBtn) {
self.noDrawAuthBtn.selected = NO;
self.upSeatDrawAuthBtn.selected = !self.upSeatDrawAuthBtn.selected;
if (self.upSeatDrawAuthBtn.selected || self.collectDrawAuthBtn.selected) {
self.noDrawAuthBtn.selected = NO;
}else{
self.noDrawAuthBtn.selected = YES;
}
}
if (self.collectDrawAuthBtn.selected && self.upSeatDrawAuthBtn.selected) {
self.conditions = @"1,2";
}else{
if (self.collectDrawAuthBtn.selected) {
self.conditions = @"1";
}else if (self.upSeatDrawAuthBtn.selected) {
self.conditions = @"2";
}else{
self.conditions = @"0";
}
}
}
-(void)redBagTimeAction:(UIButton*)sender{
if (sender.selected == YES) {
return;
}
self.selectedRedBagTimeBtn.selected = NO;
sender.selected = YES;
self.selectedRedBagTimeBtn = sender;
self.redBagTime = [NSString stringWithFormat:@"%ld",(sender.tag-10)*60];
}
-(void)showInView:(UIView *)view{
self.bgView.y = -SCREEN_HEIGHT;
[view addSubview:self];
[UIView animateWithDuration:0.3 delay:0 usingSpringWithDamping:0.5 initialSpringVelocity:1.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
self.bgView.y = (SCREEN_HEIGHT-454)/2;
} completion:^(BOOL finished) {
}];
}
-(void)hide{
[UIView animateWithDuration:0.3 delay:0 usingSpringWithDamping:0.5 initialSpringVelocity:1.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
self.bgView.y = SCREEN_HEIGHT;
} completion:^(BOOL finished) {
[self removeFromSuperview];
}];
}
@end

View File

@@ -0,0 +1,17 @@
//
// QXRedBagTagView.h
// QXLive
//
// Created by 启星 on 2025/10/11.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface QXRedBagTagView : UIView
@property (nonatomic,copy)void(^startBlock)(BOOL isList);
@property (nonatomic,strong)NSString *count;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,82 @@
//
// QXRedBagTagView.m
// QXLive
//
// Created by on 2025/10/11.
//
#import "QXRedBagTagView.h"
@interface QXRedBagTagView()
@property (nonatomic,strong)UIImageView *imageView;
@property (nonatomic,strong)UILabel *countLabel;
@property (nonatomic,strong)UIButton *btn;
@property (nonatomic,assign)CGFloat redTagHeight;
@property (nonatomic,assign)CGFloat redTagWidth;
@end
@implementation QXRedBagTagView
- (instancetype)init
{
self = [super init];
if (self) {
self.redTagHeight = ScaleWidth(80);
self.redTagWidth = ScaleWidth(80);
self.frame = CGRectMake(0, NavContentHeight+125, self.redTagHeight, self.redTagWidth);
[self initSubviews];
}
return self;
}
-(void)initSubviews{
self.imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"redbag_tag_icon"]];
self.imageView.frame = CGRectMake(0, 0, self.redTagHeight, self.redTagWidth);
[self addSubview:self.imageView];
self.countLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 10, self.width-10, 20)];
self.countLabel.textAlignment = NSTextAlignmentRight;
self.countLabel.font = [UIFont boldSystemFontOfSize:18];
self.countLabel.textColor = RGB16(0xFFFEB2);
[self addSubview:self.countLabel];
self.btn = [[UIButton alloc] initWithFrame:self.bounds];
[self.btn addTarget:self action:@selector(btnClick) forControlEvents:(UIControlEventTouchUpInside)];
[self addSubview:self.btn];
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];
[self addGestureRecognizer:panRecognizer];
}
-(void)btnClick{
BOOL isList = self.count.intValue>1?YES:NO;
if (self.startBlock) {
self.startBlock(isList);
}
}
-(void)setCount:(NSString *)count{
_count = count;
self.countLabel.text = [NSString stringWithFormat:@"x%@",count];
if (count.intValue == 0) {
self.hidden = YES;
}else{
self.hidden = NO;
}
}
-(void)handlePan:(UIPanGestureRecognizer*)recognizer{
if (recognizer.state == UIGestureRecognizerStateEnded) {
NSLog(@"拖动结束");
}
CGPoint translation = [recognizer translationInView:self.viewController.view];
CGPoint panCenter = CGPointMake(recognizer.view.center.x + translation.x,
recognizer.view.center.y + translation.y);
if (panCenter.y < kSafeAreaTop || panCenter.y> SCREEN_HEIGHT-kSafeAreaBottom) {
return;
}
recognizer.view.center = CGPointMake(self.redTagWidth/2,
recognizer.view.center.y + translation.y);
[recognizer setTranslation:CGPointZero inView:self.viewController.view];
}
@end