317 lines
14 KiB
Objective-C
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
|