// // PIRoomSendRedPacketVC.m // YuMi // // Created by duoban on 2023/10/18. // #import "PIRoomSendRedPacketVC.h" #import #import #import #import "PIRoomSendRedPacketItemVC.h" #import "XPRoomRedPacketPresenter.h" #import "WalletInfoModel.h" #import "RoomInfoModel.h" #import "XPIAPRechargeViewController.h" #import "XCCurrentVCStackManager.h" #import "XPRoomHalfWebView.h" @interface PIRoomSendRedPacketVC () ///host代理 @property (nonatomic,weak) idhostDelegate; ///分页标题 @property (nonatomic, strong) NSArray *titles; ///分页控件 @property (nonatomic, strong) JXCategoryTitleView *titleView; ///分页lineView @property (nonatomic, strong) JXPagerView *contentView; ///返回 @property(nonatomic,strong) UIButton *pi_backBtn; ///背景 @property(nonatomic,strong) UIView *bgView; ///隐藏键盘 @property(nonatomic,strong) UIButton *hiddenViewBnt; ///背景图片 @property(nonatomic,strong) UIImageView *topImageView; ///红包提示 @property(nonatomic,strong) UIButton *tipsBtn; ///钻石背景 @property(nonatomic,strong) UIImageView *pi_diamondNumView; ///钻石数量 @property(nonatomic,strong) UILabel *diamondNumTextView; ///钻石icom @property(nonatomic,strong) UIImageView *diamondIconView; //加号 @property(nonatomic,strong) UIImageView *addIconView; ///大厅红包 @property(nonatomic,strong) PIRoomSendRedPacketItemVC *roomRedVC; ///全服红包 @property(nonatomic,strong) PIRoomSendRedPacketItemVC *entireServerVC; @end @implementation PIRoomSendRedPacketVC - (XPRoomRedPacketPresenter *)createPresenter { return [[XPRoomRedPacketPresenter alloc] init]; } - (instancetype)initWithDelegate:(id)delegate { if (self = [super init]) { self.hostDelegate = delegate; } return self; } - (BOOL)isHiddenNavBar { return YES; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self.presenter getUserWalletInfo]; } ///获取用户钱包信息成功 - (void)getUserWalletInfo:(WalletInfoModel *)balanceInfo { self.diamondNumTextView.text = balanceInfo.diamonds; self.roomRedVC.walletModel = balanceInfo; self.entireServerVC.walletModel = balanceInfo; } - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor clearColor]; self.navigationController.view.backgroundColor = [UIColor clearColor]; [self.navigationController setNavigationBarHidden:YES]; RoomInfoModel *roomInfo = self.hostDelegate.getRoomInfo; if(roomInfo.redEnvelopeType == 1){ self.titles = @[YMLocalizedString(@"PIRoomSendRedPacketVC0")]; }else if(roomInfo.redEnvelopeType == 2){ self.titles = @[YMLocalizedString(@"PIRoomSendRedPacketVC1")]; }else{ self.titles = @[YMLocalizedString(@"PIRoomSendRedPacketVC0"),YMLocalizedString(@"PIRoomSendRedPacketVC1")]; } [self installUI]; [self installConstraints]; } -(void)installUI{ [self.view addSubview:self.pi_backBtn]; [self.view addSubview:self.bgView]; [self.view addSubview:self.topImageView]; [self.view addSubview:self.hiddenViewBnt]; [self.view addSubview:self.tipsBtn]; [self.view addSubview:self.pi_diamondNumView]; [self.pi_diamondNumView addSubview:self.diamondIconView]; [self.pi_diamondNumView addSubview:self.diamondNumTextView]; [self.pi_diamondNumView addSubview:self.addIconView]; [self.view addSubview:self.contentView]; } -(void)installConstraints{ [self.pi_backBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(self.view); }]; [self.bgView mas_makeConstraints:^(MASConstraintMaker *make) { make.leading.trailing.bottom.equalTo(self.view); make.height.mas_equalTo(kGetScaleWidth(543)); }]; [self.topImageView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.bgView.mas_top).mas_offset(-kGetScaleWidth(120)); make.leading.trailing.equalTo(self.view); make.height.mas_equalTo(kGetScaleWidth(243)); }]; [self.hiddenViewBnt mas_makeConstraints:^(MASConstraintMaker *make) { make.leading.trailing.bottom.equalTo(self.view); make.top.equalTo(self.topImageView.mas_top).mas_offset(kGetScaleWidth(50)); }]; [self.tipsBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.width.height.mas_equalTo(kGetScaleWidth(24)); make.trailing.mas_equalTo(-kGetScaleWidth(12)); make.top.equalTo(self.topImageView.mas_top).mas_offset(kGetScaleWidth(71)); }]; [self.pi_diamondNumView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.bgView.mas_top).mas_offset(kGetScaleWidth(13)); make.trailing.mas_equalTo(-kGetScaleWidth(0)); make.width.mas_greaterThanOrEqualTo(kGetScaleWidth(10)); make.height.mas_equalTo(kGetScaleWidth(30)); }]; [self.diamondIconView mas_makeConstraints:^(MASConstraintMaker *make) { make.width.height.mas_equalTo(kGetScaleWidth(20)); make.centerY.equalTo(self.pi_diamondNumView); make.leading.mas_equalTo(kGetScaleWidth(6)); }]; [self.addIconView mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(self.pi_diamondNumView); make.width.height.mas_equalTo(kGetScaleWidth(16)); make.trailing.mas_equalTo(-kGetScaleWidth(6)); }]; [self.diamondNumTextView mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(self.pi_diamondNumView); make.leading.mas_equalTo(kGetScaleWidth(25)); make.trailing.mas_equalTo(-kGetScaleWidth(23)); }]; [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.bgView.mas_top).mas_offset(kGetScaleWidth(52)); make.leading.trailing.bottom.mas_equalTo(self.view); }]; } -(void)hiddenViewBntAction{ [self.view endEditing:YES]; } #pragma mark - JXCategoryViewDelegate - (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)pagerView { return 0; } - (UIView *)tableHeaderViewInPagerView:(JXPagerView *)pagerView { return [UIView new]; } - (NSUInteger)heightForPinSectionHeaderInPagerView:(JXPagerView *)pagerView { return kGetScaleWidth(44); } - (UIView *)viewForPinSectionHeaderInPagerView:(JXPagerView *)pagerView { return self.titleView; } - (NSInteger)numberOfListsInPagerView:(JXPagerView *)pagerView { return self.titles.count; } - (id)pagerView:(JXPagerView *)pagerView initListAtIndex:(NSInteger)index { RoomInfoModel *roomInfo = self.hostDelegate.getRoomInfo; if(roomInfo.redEnvelopeType == 1){ return self.roomRedVC; }else if(roomInfo.redEnvelopeType == 2){ return self.entireServerVC; }else{ return index == 0 ? self.roomRedVC : self.entireServerVC; } } #pragma mark - JXPagerMainTableViewGestureDelegate - (BOOL)mainTableViewGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { //禁止categoryView左右滑动的时候,上下和左右都可以滚动 if (otherGestureRecognizer.view == self.contentView.listContainerView) { return NO; } if(otherGestureRecognizer.view.tag == 3000000001){ return YES; } return [gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]] && [otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]; } -(void)tipsAction{ XPRoomHalfWebView * webView = [[XPRoomHalfWebView alloc] init]; webView.url = URLWithType(kRedPacketRuleURL); TTPopupService * config = [[TTPopupService alloc] init]; config.contentView = webView; [TTPopup popupWithConfig:config]; } -(void)hiddenViewAction{ [self dismissViewControllerAnimated:YES completion:nil]; } -(void)getDiamondAction{ XPIAPRechargeViewController * rechargeVC = [[XPIAPRechargeViewController alloc] init]; rechargeVC.type = @"4"; [[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController pushViewController:rechargeVC animated:YES]; } -(NSTextAttachment *)getDiamondNumAtt:(NSString *)image{ NSTextAttachment * diamondAttachment = [[NSTextAttachment alloc] init]; UIImage *diamondIconImage = [UIImage imageNamed:image];; diamondAttachment.bounds = CGRectMake(0, roundf(kFontMedium(13).capHeight - diamondIconImage.size.height)/2.f, diamondIconImage.size.width, diamondIconImage.size.height); diamondAttachment.image = diamondIconImage; return diamondAttachment; } - (UIImage*)resizableImage:(UIImage *)image { //图片拉伸区域 CGFloat top = (image.size.height - 1) / 2; CGFloat left = (image.size.width - 1) / 2; CGFloat right = (image.size.width - 1) / 2; CGFloat bottom = (image.size.height - 1) / 2; return [image resizableImageWithCapInsets:UIEdgeInsetsMake(top, left, bottom, right) resizingMode:UIImageResizingModeStretch]; } #pragma mark - 懒加载 - (UIView *)bgView{ if(!_bgView){ _bgView = [UIView new]; _bgView.backgroundColor = [UIColor whiteColor]; } return _bgView; } - (UIButton *)pi_backBtn{ if(!_pi_backBtn){ _pi_backBtn = [UIButton new]; [_pi_backBtn addTarget:self action:@selector(hiddenViewAction) forControlEvents:UIControlEventTouchUpInside]; } return _pi_backBtn; } - (UIImageView *)topImageView{ if(!_topImageView){ _topImageView = [UIImageView new]; _topImageView.image = kImage(@"pi_red_packet_top_icon_logo"); } return _topImageView; } - (UIButton *)tipsBtn{ if(!_tipsBtn){ _tipsBtn = [UIButton new]; [_tipsBtn setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10]; [_tipsBtn addTarget:self action:@selector(tipsAction) forControlEvents:UIControlEventTouchUpInside]; [_tipsBtn setBackgroundImage:kImage(@"pi_red_packet_top_tip_logo") forState:UIControlStateNormal]; } return _tipsBtn; } - (UIImageView *)pi_diamondNumView{ if(!_pi_diamondNumView){ _pi_diamondNumView = [UIImageView new]; _pi_diamondNumView.image = [self resizableImage:kImage(@"pi_red_packet_top_diamond_bg")]; _pi_diamondNumView.userInteractionEnabled = YES; UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(getDiamondAction)]; [_pi_diamondNumView addGestureRecognizer:tap]; } return _pi_diamondNumView; } - (UILabel *)diamondNumTextView{ if(!_diamondNumTextView){ _diamondNumTextView = [UILabel labelInitWithText:@"0" font:kFontMedium(13) textColor:[UIColor whiteColor]]; _diamondNumTextView.textAlignment = NSTextAlignmentCenter; } return _diamondNumTextView; } - (UIImageView *)diamondIconView{ if(!_diamondIconView){ _diamondIconView = [UIImageView new]; _diamondIconView.image = kImage(@"moli_money_icon"); } return _diamondIconView; } -(UIImageView *)addIconView{ if(!_addIconView){ _addIconView = [UIImageView new]; _addIconView.image = kImage(@"pi_red_packet_top_diamond_add"); } return _addIconView; } - (JXCategoryTitleView *)titleView { if (!_titleView) { _titleView = [[JXCategoryTitleView alloc] init]; _titleView.delegate = self; _titleView.titles = self.titles; _titleView.backgroundColor = [UIColor clearColor]; _titleView.titleColor = UIColorFromRGB(0x767585); _titleView.titleSelectedColor = UIColorFromRGB(0xFF285C); _titleView.titleFont =kFontMedium(18); _titleView.titleSelectedFont = kFontSemibold(18); _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; _titleView.averageCellSpacingEnabled = NO; if(self.titles.count == 2){ _titleView.contentEdgeInsetLeft = kGetScaleWidth(78); _titleView.contentEdgeInsetRight = kGetScaleWidth(78); _titleView.cellWidth = kGetScaleWidth(72); _titleView.cellSpacing = kGetScaleWidth(75); }else{ _titleView.cellWidth = KScreenWidth; } _titleView.defaultSelectedIndex = 0; _titleView.listContainer = (id)self.contentView.listContainerView; JXCategoryIndicatorImageView *lineView = [[JXCategoryIndicatorImageView alloc] init]; lineView.indicatorImageViewSize = CGSizeMake(kGetScaleWidth(12), kGetScaleWidth(4)); lineView.verticalMargin = kGetScaleWidth(5); lineView.backgroundColor = UIColorFromRGB(0xFF285C); lineView.layer.cornerRadius = kGetScaleWidth(4)/2; lineView.layer.masksToBounds = YES; _titleView.indicators = @[lineView]; } return _titleView; } - (JXPagerView *)contentView { if (!_contentView) { _contentView = [[JXPagerView alloc] initWithDelegate:self listContainerType:0]; _contentView.mainTableView.gestureDelegate = self; _contentView.backgroundColor = [UIColor clearColor]; _contentView.listContainerView.backgroundColor = [UIColor clearColor]; _contentView.listContainerView.listCellBackgroundColor = [UIColor clearColor]; _contentView.mainTableView.backgroundColor = [UIColor clearColor]; } return _contentView; } - (UIButton *)hiddenViewBnt{ if(!_hiddenViewBnt){ _hiddenViewBnt = [UIButton new]; [_hiddenViewBnt addTarget:self action:@selector(hiddenViewBntAction) forControlEvents:UIControlEventTouchUpInside]; } return _hiddenViewBnt; } - (PIRoomSendRedPacketItemVC *)roomRedVC{ if(!_roomRedVC){ _roomRedVC = [[PIRoomSendRedPacketItemVC alloc]initWithDelegate:self.hostDelegate type:0]; } return _roomRedVC; } - (PIRoomSendRedPacketItemVC *)entireServerVC{ if(!_entireServerVC){ _entireServerVC = [[PIRoomSendRedPacketItemVC alloc]initWithDelegate:self.hostDelegate type:1]; } return _entireServerVC; } @end