Files
yinmeng-ios-store/yinmeng-ios/yinmeng-ios/Main/Game/MewMainHomeMoreGameVC.m
2024-01-18 19:34:17 +08:00

317 lines
14 KiB
Objective-C

//
// MewMainHomeMoreGameVC.m
// xplan-ios
//
// Created by duoban on 2023/12/25.
//
#import "MewMainHomeMoreGameVC.h"
#import "MewMainHomeMoreGameCell.h"
#import "MewMainHomeEmptyCell.h"
#import "MewMainHomeMoreGameHeadView.h"
#import "MewHomeManager.h"
#import "Api+MewHomeApi.h"
#import "MewMainHomeMenuDataModel.h"
#import "MewMainHomeGameTabModel.h"
#import <MJRefresh/MJRefresh.h>
@interface MewMainHomeMoreGameVC ()<MewMainHomeMoreGameHeadViewDelegate,UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout>
@property(nonatomic,strong) UIButton *mewBackBtn;
@property(nonatomic,strong) UIImageView *mewBgImageView;
@property(nonatomic,strong) UICollectionView *mewCollectionView;
@property(nonatomic,strong) NSMutableArray *mewGameList;
@property(nonatomic,strong) NSMutableArray *mewRoomList;
///性别
@property (nonatomic,strong) NSString *mewSex;
@property(nonatomic,copy) NSString *gameId;
@property(nonatomic,strong) UIView *mewSelecteAllBGView;
@property(nonatomic,strong) UILabel *mewSelecteAllTextView;
@property(nonatomic,strong) UIView *mewSelecteManBGView;
@property(nonatomic,strong) UIView *mewSelecteMomanBGView;
@property(nonatomic,strong) UILabel *mewSelecteManTextView;
@property(nonatomic,strong) UILabel *mewSelecteMomanTextView;
@end
@implementation MewMainHomeMoreGameVC
- (MewHomeManager *)createPresenter {
return [[MewHomeManager alloc] init];
}
- (BOOL)mew_isHiddenNavBar {
return YES;
}
-(void)mew_dissViewAction{
[self.navigationController popViewControllerAnimated:YES];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self installUI];
[self installConstraints];
[self initHeaderAndFooterRrfresh];
}
-(void)installUI{
[self.view addSubview:self.mewBgImageView];
[self.view addSubview:self.mewSelecteAllBGView];
[self.mewSelecteAllBGView addSubview:self.mewSelecteAllTextView];
[self.view addSubview:self.mewSelecteMomanBGView];
[self.mewSelecteMomanBGView addSubview:self.mewSelecteMomanTextView];
[self.view addSubview:self.mewSelecteManBGView];
[self.mewSelecteManBGView addSubview:self.mewSelecteManTextView];
[self.view addSubview:self.mewCollectionView];
}
- (void)initHeaderAndFooterRrfresh {
[self mew_headerRefresh];
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(mew_headerRefresh)];
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
header.stateLabel.textColor = [MewThemeColor mewSecondTextColor];
header.lastUpdatedTimeLabel.textColor = [MewThemeColor mewSecondTextColor];
self.mewCollectionView.mj_header = header;
[self.presenter mew_requsetMainHomeGameTabList];
[self.mewCollectionView.mj_header beginRefreshing];
}
-(void)mew_headerRefresh{
[self.presenter mew_requestMainHomeNewFriendListWithGender:self.mewSex gameId:self.gameId];
}
-(void)mewChooseAllAction{
self.mewSex = nil;
self.mewSelecteAllBGView.backgroundColor = UIColorMewRGBAlpha(0xffffff, 1);
self.mewSelecteManBGView.backgroundColor = UIColorMewRGBAlpha(0xffffff, 0.4);
self.mewSelecteMomanBGView.backgroundColor = UIColorMewRGBAlpha(0xffffff, 0.4);
[self.mewCollectionView.mj_header beginRefreshing];
}
-(void)mewChooseManAction{
self.mewSex = @"1";
self.mewSelecteAllBGView.backgroundColor = UIColorMewRGBAlpha(0xffffff, 0.4);
self.mewSelecteManBGView.backgroundColor = UIColorMewRGBAlpha(0xffffff, 1);
self.mewSelecteMomanBGView.backgroundColor = UIColorMewRGBAlpha(0xffffff, 0.4);
[self.mewCollectionView.mj_header beginRefreshing];
}
-(void)mewChooseMomanAction{
self.mewSex = @"2";
self.mewSelecteAllBGView.backgroundColor = UIColorMewRGBAlpha(0xffffff, 0.4);
self.mewSelecteMomanBGView.backgroundColor = UIColorMewRGBAlpha(0xffffff, 1);
self.mewSelecteManBGView.backgroundColor = UIColorMewRGBAlpha(0xffffff, 0.4);
[self.mewCollectionView.mj_header beginRefreshing];
}
///首页游戏点单分类
-(void)mew_getMainHomeGameTabList:(NSArray *)list{
self.mewGameList = [NSMutableArray arrayWithArray:list];
[self.mewCollectionView reloadData];
}
/// 发现新朋友成功
-(void)mew_getNewFriendListSuccess:(NSArray *)list gameId:(nullable NSString *)gameId{
self.gameId = gameId;
self.mewRoomList = [NSMutableArray arrayWithArray:list];
[self.mewCollectionView reloadData];
[self.mewCollectionView.mj_header endRefreshing];
}
/// 发现新朋友失败
-(void)mew_getNewFriendListFailWithGameId:(nullable NSString *)gameId{
[self.mewCollectionView.mj_header endRefreshing];
}
-(void)installConstraints{
CGFloat top = kStatusBarHeight + 11;
[self.mewSelecteAllBGView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(15));
make.width.mas_equalTo(kGetScaleWidth(52));
make.height.mas_equalTo(kGetScaleWidth(22));
make.top.mas_equalTo(top);
}];
[self.mewSelecteAllTextView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.mewSelecteAllBGView);
}];
[self.mewSelecteMomanBGView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.equalTo(self.mewSelecteAllBGView.mas_trailing).mas_offset(kGetScaleWidth(15));
make.width.mas_equalTo(kGetScaleWidth(52));
make.height.mas_equalTo(kGetScaleWidth(22));
make.top.mas_equalTo(top);
}];
[self.mewSelecteMomanTextView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.mewSelecteMomanBGView);
}];
[self.mewSelecteManBGView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.equalTo(self.mewSelecteMomanBGView.mas_trailing).mas_offset(kGetScaleWidth(15));
make.width.mas_equalTo(kGetScaleWidth(52));
make.height.mas_equalTo(kGetScaleWidth(22));
make.top.mas_equalTo(top);
}];
[self.mewSelecteManTextView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.mewSelecteManBGView);
}];
[self.mewBgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.bottom.right.top.equalTo(self.view);
}];
[self.mewCollectionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.bottom.equalTo(self.view);
make.top.mas_equalTo(kNavigationHeight);
}];
}
#pragma mark - MewMainHomeMoreGameHeadViewDelegate
///选择游戏
-(void)mew_selectGameFriendAction:(MewMainHomeGameTabModel *_Nullable)gameInfo type:(MewMainHomeMakeFriendHeadViewType)type sender:(UILabel *_Nullable)sender{
self.gameId = type == MewMainHomeMakeFriendHeadViewTyep_Game_Select ? gameInfo.gameId : nil ;
[self.presenter mew_requestMainHomeNewFriendListWithGender:self.mewSex gameId:self.gameId];
}
#pragma mark - UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return self.mewRoomList.count ;
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section{
return CGSizeMake(0, kGetScaleWidth(67));
}
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
return CGSizeMake(kGetScaleWidth(168), kGetScaleWidth(148));
}
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
if(kind == UICollectionElementKindSectionHeader){
MewMainHomeMoreGameHeadView *headView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader
withReuseIdentifier:NSStringFromClass([MewMainHomeMoreGameHeadView class]) forIndexPath:indexPath];
headView.mewGameList = self.mewGameList;
headView.delegate = self;
return headView;
}
return nil;
}
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
MewMainHomeMoreGameCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMoreGameCell class]) forIndexPath:indexPath];
cell.moreGameModel = [self.mewRoomList mewSafeObjectAtIndex:indexPath.row];
return cell;
}
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
if(self.mewRoomList.count == 0)return;
MewMainHomeMakeFriendModel *roomModel = [self.mewRoomList mewSafeObjectAtIndex:indexPath.row];
MewRoomPlayVC *roomVC = [[MewRoomPlayVC alloc]initWithMewRoomUid:roomModel.inRoomUid.length > 0 ? roomModel.inRoomUid : roomModel.uid];
MewBaseNavigationController *baseNav = [[MewBaseNavigationController alloc] initWithRootViewController:roomVC];
baseNav.modalPresentationStyle = UIModalPresentationFullScreen;
[self presentViewController:baseNav animated:YES completion:nil];
}
#pragma mark - 懒加载
- (UIButton *)mewBackBtn{
if(!_mewBackBtn){
_mewBackBtn = [UIButton new];
[_mewBackBtn setImage:kImage(@"mew_mainHome_more_game_back") forState:UIControlStateNormal];
[_mewBackBtn mew_setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
[_mewBackBtn addTarget:self action:@selector(mew_dissViewAction) forControlEvents:UIControlEventTouchUpInside];
}
return _mewBackBtn;
}
- (UICollectionView *)mewCollectionView{
if(!_mewCollectionView){
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init];
layout.sectionInset = UIEdgeInsetsMake(kGetScaleWidth(16), kGetScaleWidth(15), kGetScaleWidth(15), kGetScaleWidth(15));
layout.minimumLineSpacing = kGetScaleWidth(8);
layout.minimumInteritemSpacing = kGetScaleWidth(8);
_mewCollectionView = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:layout];
_mewCollectionView.backgroundColor = [UIColor clearColor];
_mewCollectionView.delegate = self;
_mewCollectionView.dataSource = self;
[_mewCollectionView registerClass:[MewMainHomeEmptyCell class] forCellWithReuseIdentifier:NSStringFromClass([MewMainHomeEmptyCell class])];
[_mewCollectionView registerClass:[MewMainHomeMoreGameHeadView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:NSStringFromClass([MewMainHomeMoreGameHeadView class])];
[_mewCollectionView registerClass:[MewMainHomeMoreGameCell class] forCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMoreGameCell class])];
}
return _mewCollectionView;
}
- (UIImageView *)mewBgImageView{
if(!_mewBgImageView){
_mewBgImageView = [UIImageView new];
_mewBgImageView.image = kImage(@"mew_home_bg");
}
return _mewBgImageView;
}
- (UIView *)mewSelecteAllBGView{
if(!_mewSelecteAllBGView){
_mewSelecteAllBGView = [UIView new];
_mewSelecteAllBGView.backgroundColor = UIColorMewRGBAlpha(0xffffff, 1);
_mewSelecteAllBGView.layer.cornerRadius = kGetScaleWidth(22)/2;
_mewSelecteAllBGView.layer.masksToBounds = YES;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(mewChooseAllAction)];
[_mewSelecteAllBGView addGestureRecognizer:tap];
}
return _mewSelecteAllBGView;
}
- (UILabel *)mewSelecteAllTextView{
if(!_mewSelecteAllTextView){
_mewSelecteAllTextView = [UILabel new];
_mewSelecteAllTextView.text = @"全部";
_mewSelecteAllTextView.font = kFontRegular(11);
_mewSelecteAllTextView.textColor = UIColorMewFromRGB(0x696D7A);
_mewSelecteAllTextView.textAlignment = NSTextAlignmentCenter;
}
return _mewSelecteAllTextView;
}
- (UIView *)mewSelecteManBGView{
if(!_mewSelecteManBGView){
_mewSelecteManBGView = [UIView new];
_mewSelecteManBGView.backgroundColor = UIColorMewRGBAlpha(0xffffff, 0.5);
_mewSelecteManBGView.layer.cornerRadius = kGetScaleWidth(22)/2;
_mewSelecteManBGView.layer.masksToBounds = YES;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(mewChooseManAction)];
[_mewSelecteManBGView addGestureRecognizer:tap];
}
return _mewSelecteManBGView;
}
- (UILabel *)mewSelecteManTextView{
if(!_mewSelecteManTextView){
_mewSelecteManTextView = [UILabel new];
_mewSelecteManTextView.text = @"男生";
_mewSelecteManTextView.font = kFontRegular(11);
_mewSelecteManTextView.textColor = UIColorMewFromRGB(0x696D7A);
_mewSelecteManTextView.textAlignment = NSTextAlignmentCenter;
}
return _mewSelecteManTextView;
}
- (UIView *)mewSelecteMomanBGView{
if(!_mewSelecteMomanBGView){
_mewSelecteMomanBGView = [UIView new];
_mewSelecteMomanBGView.backgroundColor = UIColorMewRGBAlpha(0xffffff, 0.5);
_mewSelecteMomanBGView.layer.cornerRadius = kGetScaleWidth(22)/2;
_mewSelecteMomanBGView.layer.masksToBounds = YES;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(mewChooseMomanAction)];
[_mewSelecteMomanBGView addGestureRecognizer:tap];
}
return _mewSelecteMomanBGView;
}
- (UILabel *)mewSelecteMomanTextView{
if(!_mewSelecteMomanTextView){
_mewSelecteMomanTextView = [UILabel new];
_mewSelecteMomanTextView.text = @"女生";
_mewSelecteMomanTextView.font = kFontRegular(11);
_mewSelecteMomanTextView.textColor = UIColorMewFromRGB(0x696D7A);
_mewSelecteMomanTextView.textAlignment = NSTextAlignmentCenter;
}
return _mewSelecteMomanTextView;
}
@end