提交
This commit is contained in:
@@ -7,10 +7,13 @@
|
||||
|
||||
#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;
|
||||
@@ -29,6 +32,8 @@
|
||||
@property (nonatomic,strong)UILabel *pwdTitleLable;
|
||||
/// 抢红包必须在本房间内
|
||||
@property (nonatomic,strong)UILabel *bottomLabel;
|
||||
@property (nonatomic,assign)QXRedBagDrawType drawType;
|
||||
|
||||
@end
|
||||
@implementation QXRedBagDrawView
|
||||
- (instancetype)init
|
||||
@@ -42,6 +47,7 @@
|
||||
}
|
||||
|
||||
-(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];
|
||||
|
||||
@@ -49,6 +55,12 @@
|
||||
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)];
|
||||
@@ -122,13 +134,13 @@
|
||||
@weakify(self)
|
||||
self.timeDownView.btnBlcok = ^(QXRedBagDrawType type) {
|
||||
@strongify(self);
|
||||
if (type == QXRedBagDrawTypePwdCollect) {
|
||||
if (type == QXRedBagDrawTypeCollect) {
|
||||
/// 这里去收藏房间
|
||||
[self setType:(QXRedBagDrawTypeOpen)];
|
||||
[self collectRoom];
|
||||
return;
|
||||
}
|
||||
if (self.toInputPwdBlock) {
|
||||
self.toInputPwdBlock(@"傻狗涛来了,大家都让一让",self.redpacketModel);
|
||||
self.toInputPwdBlock(self.redpacketModel.password,self.redpacketModel);
|
||||
}
|
||||
[self hide];
|
||||
};
|
||||
@@ -162,7 +174,7 @@
|
||||
}];
|
||||
|
||||
self.drawTitleLabel = [[UILabel alloc] init];
|
||||
self.drawTitleLabel.text = @"口令红包参与条件";
|
||||
self.drawTitleLabel.text = @"红包参与条件";
|
||||
self.drawTitleLabel.textColor = RGB16(0xffffff);
|
||||
self.drawTitleLabel.textAlignment = NSTextAlignmentCenter;
|
||||
self.drawTitleLabel.font = [UIFont systemFontOfSize:12];
|
||||
@@ -197,6 +209,22 @@
|
||||
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,
|
||||
@@ -213,13 +241,68 @@
|
||||
/// 口令红包收藏房间
|
||||
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{
|
||||
_type = type;
|
||||
_drawType = type;
|
||||
switch (type) {
|
||||
case QXRedBagDrawTypeOpen:{
|
||||
self.openBtn.hidden = NO;
|
||||
self.remarkLabel.text = @"恭喜发财,大吉大利";
|
||||
self.remarkLabel.text = self.redpacketModel.remark;
|
||||
self.recordBtn.hidden = YES;
|
||||
self.timeDownView.hidden = YES;
|
||||
self.bottomLabel.hidden = YES;
|
||||
@@ -237,53 +320,34 @@
|
||||
break;
|
||||
case QXRedBagDrawTypeCollect:{
|
||||
self.openBtn.hidden = YES;
|
||||
self.remarkLabel.text = @"恭喜发财,大吉大利";
|
||||
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 = YES;
|
||||
[self performSelector:@selector(changeType) afterDelay:2];
|
||||
self.pwdBgView.hidden = NO;
|
||||
self.commentTitleLabel.hidden = YES;
|
||||
self.pwdTitleLable.text= @"收藏房间";
|
||||
}
|
||||
break;
|
||||
case QXRedBagDrawTypeTimeDown:{
|
||||
self.openBtn.hidden = YES;
|
||||
self.remarkLabel.text = @"恭喜发财,大吉大利";
|
||||
self.remarkLabel.text = self.redpacketModel.remark;
|
||||
self.recordBtn.hidden = YES;
|
||||
self.timeDownView.type = QXRedBagDrawTypeTimeDown;
|
||||
self.timeDownView.hidden = NO;
|
||||
self.bottomLabel.hidden = NO;
|
||||
self.pwdBgView.hidden = YES;
|
||||
[self performSelector:@selector(changeType) afterDelay:2];
|
||||
}
|
||||
break;
|
||||
case QXRedBagDrawTypePwdSend:{
|
||||
self.openBtn.hidden = YES;
|
||||
self.remarkLabel.text = @"恭喜发财,大吉大利";
|
||||
self.remarkLabel.text = self.redpacketModel.remark;
|
||||
self.recordBtn.hidden = YES;
|
||||
self.timeDownView.type = QXRedBagDrawTypePwdSend;
|
||||
self.timeDownView.hidden = NO;
|
||||
self.pwdBgView.hidden = NO;
|
||||
self.pwdTitleLable.hidden = YES;
|
||||
}
|
||||
break;
|
||||
case QXRedBagDrawTypePwdTimeDown:{
|
||||
self.openBtn.hidden = YES;
|
||||
self.remarkLabel.text = @"恭喜发财,大吉大利";
|
||||
self.recordBtn.hidden = YES;
|
||||
self.timeDownView.type = QXRedBagDrawTypePwdTimeDown;
|
||||
self.timeDownView.hidden = NO;
|
||||
self.bottomLabel.hidden = NO;
|
||||
self.pwdBgView.hidden = YES;
|
||||
[self performSelector:@selector(changeType) afterDelay:2];
|
||||
}
|
||||
break;
|
||||
case QXRedBagDrawTypePwdCollect:{
|
||||
self.openBtn.hidden = YES;
|
||||
self.remarkLabel.text = @"手慢了,红包被领完了";
|
||||
self.recordBtn.hidden = NO;
|
||||
}
|
||||
break;
|
||||
|
||||
case QXRedBagDrawTypePwdAllTask:{
|
||||
self.openBtn.hidden = YES;
|
||||
self.remarkLabel.text = @"手慢了,红包被领完了";
|
||||
@@ -294,41 +358,59 @@
|
||||
break;
|
||||
}
|
||||
}
|
||||
-(void)changeType{
|
||||
[self setType:QXRedBagDrawTypeOpen];
|
||||
}
|
||||
|
||||
#pragma mark - action
|
||||
-(void)closeAction{
|
||||
[self hide];
|
||||
}
|
||||
|
||||
-(void)openAction{
|
||||
|
||||
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) {
|
||||
MJWeakSelf
|
||||
[QXMineNetwork drawRedpacketWithRedpacketId:self.redpacketModel.redpacket_id successBlock:^(NSString * _Nonnull code) {
|
||||
if (code.intValue == 1) {
|
||||
weakSelf.redpacketModel.is_qiang = @"1";
|
||||
QXRedBagRecordViewController *vc = [[QXRedBagRecordViewController alloc] init];
|
||||
vc.redbagId = @"";
|
||||
[self.viewController.navigationController pushViewController:vc animated:YES];
|
||||
[self hide];
|
||||
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{
|
||||
[self setType:QXRedBagDrawTypeFinished];
|
||||
[weakSelf setType:QXRedBagDrawTypeFinished];
|
||||
}
|
||||
|
||||
});
|
||||
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
|
||||
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];
|
||||
@@ -336,7 +418,38 @@
|
||||
[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];
|
||||
@@ -348,6 +461,7 @@
|
||||
}
|
||||
|
||||
-(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) {
|
||||
@@ -374,8 +488,7 @@
|
||||
self.timeLabel.text = @"收藏房间抢红包";
|
||||
}
|
||||
break;
|
||||
case QXRedBagDrawTypeTimeDown:
|
||||
case QXRedBagDrawTypePwdTimeDown:{
|
||||
case QXRedBagDrawTypeTimeDown:{
|
||||
self.timeLabel.text = @"00:00后开启红包";
|
||||
}
|
||||
break;
|
||||
@@ -383,11 +496,6 @@
|
||||
self.timeLabel.text = @"发送评论抢红包";
|
||||
}
|
||||
break;
|
||||
|
||||
case QXRedBagDrawTypePwdCollect:{
|
||||
self.timeLabel.text = @"收藏房间抢红包";
|
||||
}
|
||||
break;
|
||||
case QXRedBagDrawTypePwdAllTask:{
|
||||
self.timeLabel.text = @"完成任务抢红包";
|
||||
}
|
||||
@@ -398,7 +506,7 @@
|
||||
}
|
||||
|
||||
-(void)btnClick{
|
||||
if (self.type == QXRedBagDrawTypePwdSend || self.type == QXRedBagDrawTypePwdCollect) {
|
||||
if (self.type == QXRedBagDrawTypePwdSend || self.type == QXRedBagDrawTypeCollect) {
|
||||
if (self.btnBlcok) {
|
||||
self.btnBlcok(self.type);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user