首页派对页面改造
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
//
|
||||
// MewMainViewController.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by duoban on 2023/12/19.
|
||||
//
|
||||
|
||||
#import "MvpViewController.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface MewMainHomeViewController : MvpViewController
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,328 @@
|
||||
//
|
||||
// MewMainViewController.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by duoban on 2023/12/19.
|
||||
//
|
||||
|
||||
#import "MewMainHomeViewController.h"
|
||||
#import <JXCategoryView.h>
|
||||
#import <JXPagerView.h>
|
||||
#import "MewMainHomeNavView.h"
|
||||
#import "MewMainHomePartyVC.h"
|
||||
#import "MewMainHomeMakeFriendVC.h"
|
||||
#import "XPRoomSearchContainerViewController.h"
|
||||
#import "ClientConfig.h"
|
||||
#import "XPWebViewController.h"
|
||||
#import "Api+Room.h"
|
||||
#import "XPRoomViewController.h"
|
||||
#import "XPLittleGameRoomOpenView.h"
|
||||
#import "XPTeenagerHomeView.h"
|
||||
#import "XPWeakTimer.h"
|
||||
@interface MewMainHomeViewController ()<MewMainHomePartyVCDelegate,MewMainHomeMakeFriendVCDelegate,MewMainHomeNavViewDelegate,JXCategoryViewDelegate,JXPagerViewDelegate,JXPagerMainTableViewGestureDelegate>
|
||||
{
|
||||
NSTimer * _mewTimer;
|
||||
}
|
||||
@property (nonatomic, strong) UIStackView *mewStackView;
|
||||
///背景图片
|
||||
@property(nonatomic,strong) UIImageView *mewBgImageView;
|
||||
///导航栏
|
||||
@property(nonatomic,strong) MewMainHomeNavView *mewMainHomeNavView;
|
||||
///分页控制器
|
||||
@property (nonatomic, strong) JXCategoryTitleView *mewTopTitleView;
|
||||
@property (nonatomic, strong) JXPagerView *mewPagingView;
|
||||
@property (nonatomic, strong) NSArray<NSString *> *mewTitleList;
|
||||
///派对
|
||||
@property(nonatomic,strong) MewMainHomePartyVC *mewPartyVC;
|
||||
///交友
|
||||
@property(nonatomic,strong) MewMainHomeMakeFriendVC *mewMakeFriendVC;
|
||||
///青少年空白view
|
||||
@property (nonatomic, strong) XPTeenagerHomeView *mewTeenagerView;
|
||||
@end
|
||||
|
||||
@implementation MewMainHomeViewController
|
||||
|
||||
@synthesize parentMode = _parentMode;
|
||||
|
||||
- (void)setParentMode:(BOOL)parentMode {
|
||||
_parentMode = parentMode;
|
||||
if (parentMode) {
|
||||
if (!self.mewTeenagerView.superview) {
|
||||
[self.view addSubview:self.mewTeenagerView];
|
||||
[self.mewTeenagerView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self.view);
|
||||
}];
|
||||
}
|
||||
} else {
|
||||
[self.mewTeenagerView removeFromSuperview];
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)isHiddenNavBar {
|
||||
return YES;
|
||||
}
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
[super viewWillAppear:animated];
|
||||
if (_mewTimer) {
|
||||
[_mewTimer setFireDate:[NSDate distantPast]]; //很远的过去
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewWillDisappear:(BOOL)animated {
|
||||
[super viewWillDisappear:animated];
|
||||
if (_mewTimer) {
|
||||
//关闭定时器
|
||||
[_mewTimer setFireDate:[NSDate distantFuture]]; //很远的将来
|
||||
}
|
||||
}
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
[self installUI];
|
||||
[self installConstraints];
|
||||
[self initHeaderAndFooterRrfresh];
|
||||
[self addTimer];
|
||||
}
|
||||
- (void)addTimer {
|
||||
_mewTimer = [XPWeakTimer scheduledTimerWithTimeInterval:15 block:^(id userInfo) {
|
||||
[self timeRefresh];
|
||||
} userInfo:nil repeats:YES];
|
||||
}
|
||||
|
||||
- (void)timeRefresh {
|
||||
if (_parentMode) return;
|
||||
[self mew_headerRefresh];
|
||||
}
|
||||
-(void)installUI{
|
||||
[self.view addSubview:self.mewBgImageView];
|
||||
[self.view addSubview:self.mewStackView];
|
||||
[self.view addSubview:self.mewPagingView];
|
||||
[self.mewStackView addArrangedSubview:self.mewTopTitleView];
|
||||
[self.mewStackView addArrangedSubview:self.mewMainHomeNavView];
|
||||
}
|
||||
-(void)installConstraints{
|
||||
|
||||
[self.mewBgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.top.equalTo(self.view);
|
||||
make.height.mas_equalTo(kGetScaleWidth(250));
|
||||
}];
|
||||
[self.mewStackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.mas_equalTo(0);
|
||||
make.top.mas_equalTo(kStatusBarHeight);
|
||||
make.top.mas_equalTo(44);
|
||||
}];
|
||||
[self.mewMainHomeNavView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(232);
|
||||
make.height.mas_equalTo(30);
|
||||
}];
|
||||
[self.mewPagingView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.bottom.left.right.equalTo(self.view);
|
||||
make.top.equalTo(self.mewStackView.mas_bottom).mas_offset(kGetScaleWidth(0));
|
||||
}];
|
||||
[self.mewTopTitleView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(44);
|
||||
}];
|
||||
}
|
||||
- (void)initHeaderAndFooterRrfresh {
|
||||
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 = [ThemeColor secondTextColor];
|
||||
header.lastUpdatedTimeLabel.textColor = [ThemeColor secondTextColor];
|
||||
self.mewPagingView.mainTableView.mj_header = header;
|
||||
|
||||
|
||||
}
|
||||
-(void)mew_headerRefresh{
|
||||
if(self.mewTopTitleView.selectedIndex == 1){
|
||||
[self.mewMakeFriendVC headerRefresh];
|
||||
}else{
|
||||
[self.mewPartyVC headerRefresh];
|
||||
}
|
||||
}
|
||||
#pragma mark - JXCategoryViewDelegate
|
||||
- (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)pagerView {
|
||||
return 0;
|
||||
}
|
||||
|
||||
- (UIView *)tableHeaderViewInPagerView:(JXPagerView *)pagerView {
|
||||
return [UIView new];
|
||||
}
|
||||
|
||||
- (NSUInteger)heightForPinSectionHeaderInPagerView:(JXPagerView *)pagerView {
|
||||
return 0;
|
||||
}
|
||||
- (UIView *)viewForPinSectionHeaderInPagerView:(JXPagerView *)pagerView {
|
||||
return [UIView new];
|
||||
}
|
||||
|
||||
|
||||
- (NSInteger)numberOfListsInPagerView:(JXPagerView *)pagerView {
|
||||
return self.mewTitleList.count;
|
||||
}
|
||||
|
||||
- (id<JXPagerViewListViewDelegate>)pagerView:(JXPagerView *)pagerView initListAtIndex:(NSInteger)index {
|
||||
UIViewController *viewController;
|
||||
if (index == 0) {
|
||||
viewController = self.mewPartyVC;
|
||||
}else{
|
||||
viewController = self.mewMakeFriendVC;
|
||||
}
|
||||
return (id <JXPagerViewListViewDelegate>)viewController;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index {
|
||||
|
||||
}
|
||||
|
||||
#pragma mark - JXPagerMainTableViewGestureDelegate
|
||||
|
||||
- (BOOL)mainTableViewGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
|
||||
///1000是外部的scrollView 1001是人气主播中的collectionView 9999是 开黑畅聊的轮播图
|
||||
if (otherGestureRecognizer.view.tag == 1000 || otherGestureRecognizer.view.tag == 1001 || otherGestureRecognizer.view.tag == 9999) {
|
||||
return NO;
|
||||
}
|
||||
return [gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]] && [otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]];
|
||||
}
|
||||
#pragma mark- MewMainHomeNavViewDelegate
|
||||
///点击了搜索房间
|
||||
- (void)mew_MainHomeNavView:(MewMainHomeNavView *_Nullable)view didClickSearch:(UIView *_Nullable)sender{
|
||||
XPRoomSearchContainerViewController * searchVC = [[XPRoomSearchContainerViewController alloc] init];
|
||||
searchVC.modalPresentationStyle = UIModalPresentationFullScreen;
|
||||
[self.navigationController presentViewController:searchVC animated:YES completion:nil];
|
||||
}
|
||||
///点击了榜单按钮
|
||||
- (void)mew_MainHomeNavView:(MewMainHomeNavView *_Nullable)view didClickRank:(UIButton *_Nullable)sender{
|
||||
NSString *url = @"";
|
||||
if([ClientConfig shareConfig].configInfo.h5Uris.count > 0){
|
||||
for (XPClientH5UresModel *h5Model in [ClientConfig shareConfig].configInfo.h5Uris) {
|
||||
if([h5Model.code isEqualToString:@"rank"]){
|
||||
url = h5Model.uri;
|
||||
break;;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
XPWebViewController * webVC =[[XPWebViewController alloc] init];
|
||||
webVC.url = url.length > 0 ? url : URLWithType(kHomeRankURL);
|
||||
[self.navigationController pushViewController:webVC animated:YES];
|
||||
}
|
||||
///点击了我的房间
|
||||
- (void)mew_MainHomeNavView:(MewMainHomeNavView *_Nullable)view didClickRoom:(UIButton *_Nullable)sender{
|
||||
NSString* roomUid = [AccountInfoStorage instance].getUid;
|
||||
[Api getRoomInfo:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
if (code == 200) {
|
||||
RoomInfoModel * roomInfo = [RoomInfoModel modelWithJSON:data.data];
|
||||
if (roomInfo.isReselect) {
|
||||
XPLittleGameRoomOpenView * roomOpenView = [[XPLittleGameRoomOpenView alloc] init];
|
||||
roomOpenView.roomInfo = roomInfo;
|
||||
roomOpenView.currentVC = self;
|
||||
[TTPopup popupView:roomOpenView style:TTPopupStyleActionSheet];
|
||||
} else {
|
||||
[XPRoomViewController openRoom:roomUid viewController:self];
|
||||
}
|
||||
} else {
|
||||
[self showErrorToast:msg];
|
||||
}
|
||||
} uid:roomUid intoUid:roomUid];
|
||||
}
|
||||
#pragma mark - MewMainHomePartyVCDelegate
|
||||
-(void)mew_RefreshSucceed:(MewMainHomePartyVC *)vc{
|
||||
[self.mewPagingView.mainTableView.mj_header endRefreshing];
|
||||
}
|
||||
#pragma mark - MewMainHomeMakeFriendVCDelegate
|
||||
-(void)mew_RefreshDataSucceed:(MewMainHomeMakeFriendVC*)VC{
|
||||
[self.mewPagingView.mainTableView.mj_header endRefreshing];
|
||||
}
|
||||
#pragma mark - 懒加载
|
||||
- (UIImageView *)mewBgImageView{
|
||||
if(!_mewBgImageView){
|
||||
_mewBgImageView = [UIImageView new];
|
||||
_mewBgImageView.image = kImage(@"mew_home_top_bg_image");
|
||||
}
|
||||
return _mewBgImageView;
|
||||
}
|
||||
- (MewMainHomeNavView *)mewMainHomeNavView{
|
||||
if(!_mewMainHomeNavView){
|
||||
_mewMainHomeNavView = [[MewMainHomeNavView alloc]initWithFrame:CGRectZero];
|
||||
_mewMainHomeNavView.delegate = self;
|
||||
}
|
||||
return _mewMainHomeNavView;
|
||||
}
|
||||
- (JXCategoryTitleView *)mewTopTitleView {
|
||||
if (!_mewTopTitleView) {
|
||||
_mewTopTitleView = [[JXCategoryTitleView alloc] init];
|
||||
_mewTopTitleView.delegate = self;
|
||||
_mewTopTitleView.backgroundColor = [UIColor clearColor];
|
||||
_mewTopTitleView.titleColor = UIColorFromRGB(0x696D7A);
|
||||
_mewTopTitleView.titleSelectedColor = UIColorFromRGB(0x2B2D33);
|
||||
_mewTopTitleView.titleFont = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium];
|
||||
_mewTopTitleView.titleSelectedFont = [UIFont systemFontOfSize:20 weight:UIFontWeightSemibold];
|
||||
_mewTopTitleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter;
|
||||
_mewTopTitleView.contentScrollViewClickTransitionAnimationEnabled = NO;
|
||||
if([ClientConfig shareConfig].defaultTab.intValue == 1){
|
||||
_mewTopTitleView.defaultSelectedIndex = 1;
|
||||
}else{
|
||||
_mewTopTitleView.defaultSelectedIndex = 0;
|
||||
}
|
||||
_mewTopTitleView.averageCellSpacingEnabled = NO;
|
||||
_mewTopTitleView.titles = self.mewTitleList;
|
||||
_mewTopTitleView.cellSpacing = 20;
|
||||
_mewTopTitleView.listContainer = (id<JXCategoryViewListContainer>)self.mewPagingView.listContainerView;
|
||||
|
||||
JXCategoryIndicatorImageView *lineView = [[JXCategoryIndicatorImageView alloc] init];
|
||||
lineView.indicatorImageViewSize = CGSizeMake(54, 28);
|
||||
lineView.verticalMargin = 8;
|
||||
lineView.indicatorImageView.image = [UIImage imageNamed:@"mew_home_top_choose_icon"];
|
||||
_mewTopTitleView.indicators = @[lineView];
|
||||
}
|
||||
return _mewTopTitleView;
|
||||
}
|
||||
|
||||
- (JXPagerView *)mewPagingView {
|
||||
if (!_mewPagingView) {
|
||||
_mewPagingView = [[JXPagerView alloc] initWithDelegate:self];
|
||||
_mewPagingView.backgroundColor = [UIColor clearColor];
|
||||
_mewPagingView.listContainerView.backgroundColor = [UIColor clearColor];
|
||||
_mewPagingView.mainTableView.backgroundColor = [UIColor clearColor];
|
||||
_mewPagingView.mainTableView.gestureDelegate = self;
|
||||
_mewPagingView.listContainerView.listCellBackgroundColor = UIColor.clearColor;
|
||||
}
|
||||
return _mewPagingView;
|
||||
}
|
||||
|
||||
- (NSArray<NSString *> *)mewTitleList {
|
||||
if (!_mewTitleList) {
|
||||
_mewTitleList = @[@"派对", @"交友"];
|
||||
}
|
||||
return _mewTitleList;
|
||||
}
|
||||
- (UIStackView *)mewStackView {
|
||||
if (!_mewStackView) {
|
||||
_mewStackView = [[UIStackView alloc] init];
|
||||
_mewStackView.axis = UILayoutConstraintAxisHorizontal;
|
||||
_mewStackView.distribution = UIStackViewDistributionFill;
|
||||
_mewStackView.alignment = UIStackViewAlignmentCenter;
|
||||
_mewStackView.spacing = 6;
|
||||
}
|
||||
return _mewStackView;
|
||||
}
|
||||
- (MewMainHomePartyVC *)mewPartyVC{
|
||||
if(!_mewPartyVC){
|
||||
_mewPartyVC = [MewMainHomePartyVC new];
|
||||
_mewPartyVC.delegate = self;
|
||||
}
|
||||
return _mewPartyVC;
|
||||
}
|
||||
- (MewMainHomeMakeFriendVC *)mewMakeFriendVC{
|
||||
if(!_mewMakeFriendVC){
|
||||
_mewMakeFriendVC = [MewMainHomeMakeFriendVC new];
|
||||
_mewMakeFriendVC.delegate = self;
|
||||
}
|
||||
return _mewMakeFriendVC;
|
||||
}
|
||||
|
||||
|
||||
@end
|
Reference in New Issue
Block a user