首页完成
This commit is contained in:
@@ -1064,7 +1064,7 @@
|
|||||||
DEVELOPMENT_TEAM = 8798G5VMH9;
|
DEVELOPMENT_TEAM = 8798G5VMH9;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = QXLiveScreen/Info.plist;
|
INFOPLIST_FILE = QXLiveScreen/Info.plist;
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "秘地";
|
INFOPLIST_KEY_CFBundleDisplayName = "羽声语音";
|
||||||
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
@@ -1090,7 +1090,7 @@
|
|||||||
DEVELOPMENT_TEAM = 8798G5VMH9;
|
DEVELOPMENT_TEAM = 8798G5VMH9;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = QXLiveScreen/Info.plist;
|
INFOPLIST_FILE = QXLiveScreen/Info.plist;
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "秘地";
|
INFOPLIST_KEY_CFBundleDisplayName = "羽声语音";
|
||||||
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
@@ -1116,7 +1116,7 @@
|
|||||||
DEVELOPMENT_TEAM = 8798G5VMH9;
|
DEVELOPMENT_TEAM = 8798G5VMH9;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = "QXLiveScreen copy-Info.plist";
|
INFOPLIST_FILE = "QXLiveScreen copy-Info.plist";
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "秘地";
|
INFOPLIST_KEY_CFBundleDisplayName = "羽声语音测试";
|
||||||
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
@@ -1142,7 +1142,7 @@
|
|||||||
DEVELOPMENT_TEAM = 8798G5VMH9;
|
DEVELOPMENT_TEAM = 8798G5VMH9;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = "QXLiveScreen copy-Info.plist";
|
INFOPLIST_FILE = "QXLiveScreen copy-Info.plist";
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "秘地";
|
INFOPLIST_KEY_CFBundleDisplayName = "羽声语音测试";
|
||||||
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
[super viewDidLoad];
|
[super viewDidLoad];
|
||||||
// Do any additional setup after loading the view.
|
// Do any additional setup after loading the view.
|
||||||
self.bgImaegView = [[UIImageView alloc] initWithFrame:[UIScreen mainScreen].bounds];
|
self.bgImaegView = [[UIImageView alloc] initWithFrame:[UIScreen mainScreen].bounds];
|
||||||
self.bgImaegView.image = [UIImage imageNamed:@"app_start_midi1"];;
|
self.bgImaegView.image = [UIImage imageNamed:@"app_start_yusheng"];;
|
||||||
self.bgImaegView.contentMode = UIViewContentModeScaleAspectFill;
|
self.bgImaegView.contentMode = UIViewContentModeScaleAspectFill;
|
||||||
[self.view addSubview:self.bgImaegView];
|
[self.view addSubview:self.bgImaegView];
|
||||||
// [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(loginSuccess) name:noticeUserLogin object:nil];
|
// [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(loginSuccess) name:noticeUserLogin object:nil];
|
||||||
|
|||||||
@@ -229,13 +229,10 @@
|
|||||||
if (weakSelf.isClickJoinRoom) {
|
if (weakSelf.isClickJoinRoom) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// showLoadingInView(KEYWINDOW)
|
|
||||||
weakSelf.isClickJoinRoom = YES;
|
weakSelf.isClickJoinRoom = YES;
|
||||||
[[QXRoomMessageManager shared] joinGroupWithRoomId:roomId];
|
[[QXRoomMessageManager shared] joinGroupWithRoomId:roomId];
|
||||||
[QXMineNetwork joinRoomWithRoomId:roomId successBlock:^(QXRoomModel * _Nonnull roomModel) {
|
[QXMineNetwork joinRoomWithRoomId:roomId successBlock:^(QXRoomModel * _Nonnull roomModel) {
|
||||||
[UIApplication sharedApplication].idleTimerDisabled = YES;
|
[UIApplication sharedApplication].idleTimerDisabled = YES;
|
||||||
// hideLoadingInView(KEYWINDOW)
|
|
||||||
// roomModel.room_info.pk_room_id = @"33";
|
|
||||||
weakSelf.isClickJoinRoom = NO;
|
weakSelf.isClickJoinRoom = NO;
|
||||||
weakSelf.roomVC = [[QXRoomViewController alloc] init];
|
weakSelf.roomVC = [[QXRoomViewController alloc] init];
|
||||||
weakSelf.roomVC.roomId = roomId;
|
weakSelf.roomVC.roomId = roomId;
|
||||||
@@ -247,7 +244,6 @@
|
|||||||
weakSelf.roomId = roomId;
|
weakSelf.roomId = roomId;
|
||||||
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
|
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
|
||||||
showToast(msg);
|
showToast(msg);
|
||||||
// hideLoadingInView(KEYWINDOW)
|
|
||||||
weakSelf.isClickJoinRoom = NO;
|
weakSelf.isClickJoinRoom = NO;
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,8 +26,10 @@
|
|||||||
#import "QXNiceGiftPopView.h" // 天降好礼
|
#import "QXNiceGiftPopView.h" // 天降好礼
|
||||||
#import "QXFirstRechargeView.h" // 首充好礼
|
#import "QXFirstRechargeView.h" // 首充好礼
|
||||||
#import "QXHomeTopView.h"
|
#import "QXHomeTopView.h"
|
||||||
|
#import "QXSystemNoticeViewController.h"
|
||||||
|
#import "QXHotRoomViewController.h"
|
||||||
|
|
||||||
@interface QXHomeViewController ()<JXPagerViewDelegate,JXCategoryViewDelegate,GKCycleScrollViewDataSource,GKCycleScrollViewDelegate,QXGiftScrollViewDelegate,SDCycleScrollViewDelegate>
|
@interface QXHomeViewController ()<JXPagerViewDelegate,JXCategoryViewDelegate,GKCycleScrollViewDataSource,GKCycleScrollViewDelegate,QXGiftScrollViewDelegate,SDCycleScrollViewDelegate,QXHomeTopViewDelegate>
|
||||||
@property (nonatomic, strong) JXPagerView *pagingView;
|
@property (nonatomic, strong) JXPagerView *pagingView;
|
||||||
@property (nonatomic,strong)JXCategoryTitleView *categoryView;
|
@property (nonatomic,strong)JXCategoryTitleView *categoryView;
|
||||||
@property (nonatomic,strong)NSMutableArray <UIViewController*>*listVCArray;
|
@property (nonatomic,strong)NSMutableArray <UIViewController*>*listVCArray;
|
||||||
@@ -401,7 +403,7 @@
|
|||||||
self.appStoreView.hidden = YES;
|
self.appStoreView.hidden = YES;
|
||||||
}
|
}
|
||||||
// weakSelf.appStoreView.dataArray = list;
|
// weakSelf.appStoreView.dataArray = list;
|
||||||
[self.topView reloadData];
|
self.topView.dataArray = list;
|
||||||
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
|
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
|
||||||
|
|
||||||
}];
|
}];
|
||||||
@@ -483,6 +485,31 @@
|
|||||||
[self.navigationController pushViewController:userHomePage animated:YES];
|
[self.navigationController pushViewController:userHomePage animated:YES];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#pragma mark - QXHomeTopViewDelegate
|
||||||
|
-(void)didClickTopViewType:(QXHomeTopClickType)type{
|
||||||
|
switch (type) {
|
||||||
|
case QXHomeTopClickTypeHotRoom:{
|
||||||
|
QXHotRoomViewController *vc = [[QXHotRoomViewController alloc] init];
|
||||||
|
vc.list = self.topView.dataArray;
|
||||||
|
[self.navigationController pushViewController:vc animated:YES];
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case QXHomeTopClickTypeMyRoom:
|
||||||
|
[self gotoRoom];
|
||||||
|
break;
|
||||||
|
case QXHomeTopClickTypeRank:
|
||||||
|
[self gotoRankVC];
|
||||||
|
break;
|
||||||
|
case QXHomeTopClickTypeNotice:{
|
||||||
|
QXSystemNoticeViewController *vc = [[QXSystemNoticeViewController alloc] init];
|
||||||
|
vc.type = 0;
|
||||||
|
[self.navigationController pushViewController:vc animated:YES];
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
-(void)gotoRoom{
|
-(void)gotoRoom{
|
||||||
@@ -602,6 +629,7 @@
|
|||||||
-(QXHomeTopView *)topView{
|
-(QXHomeTopView *)topView{
|
||||||
if (!_topView) {
|
if (!_topView) {
|
||||||
_topView = [[QXHomeTopView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, ScaleWidth(184))];
|
_topView = [[QXHomeTopView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, ScaleWidth(184))];
|
||||||
|
_topView.delegate = self;
|
||||||
}
|
}
|
||||||
return _topView;
|
return _topView;
|
||||||
}
|
}
|
||||||
|
|||||||
16
QXLive/HomePage(声播)/Controlller/QXHotRoomViewController.h
Normal file
16
QXLive/HomePage(声播)/Controlller/QXHotRoomViewController.h
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
//
|
||||||
|
// QXHotRoomViewController.h
|
||||||
|
// QXLive
|
||||||
|
//
|
||||||
|
// Created by 启星 on 2025/10/21.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "QXBaseViewController.h"
|
||||||
|
#import "QXRoomListModel.h"
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface QXHotRoomViewController : QXBaseViewController
|
||||||
|
@property (nonatomic,strong)NSArray<QXRoomListModel *>*list;
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
||||||
87
QXLive/HomePage(声播)/Controlller/QXHotRoomViewController.m
Normal file
87
QXLive/HomePage(声播)/Controlller/QXHotRoomViewController.m
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
//
|
||||||
|
// QXHotRoomViewController.m
|
||||||
|
// QXLive
|
||||||
|
//
|
||||||
|
// Created by 启星 on 2025/10/21.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "QXHotRoomViewController.h"
|
||||||
|
#import "QXHomeRoomCell.h"
|
||||||
|
@interface QXHotRoomViewController ()<UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout>
|
||||||
|
@property (nonatomic,strong)UICollectionView *collectionView;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation QXHotRoomViewController
|
||||||
|
|
||||||
|
- (void)viewDidLoad {
|
||||||
|
[super viewDidLoad];
|
||||||
|
// Do any additional setup after loading the view.
|
||||||
|
}
|
||||||
|
-(void)setNavgationItems{
|
||||||
|
[super setNavgationItems];
|
||||||
|
self.navigationItem.title = @"热门房间";
|
||||||
|
}
|
||||||
|
-(void)viewWillAppear:(BOOL)animated{
|
||||||
|
[super viewWillAppear:animated];
|
||||||
|
[self.navigationController setNavigationBarHidden:NO animated:YES];
|
||||||
|
}
|
||||||
|
-(void)initSubViews{
|
||||||
|
[self.view addSubview:self.collectionView];
|
||||||
|
}
|
||||||
|
#pragma mark - UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout
|
||||||
|
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
|
||||||
|
return self.list.count;
|
||||||
|
}
|
||||||
|
-(__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
|
||||||
|
QXHomeRoomCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"QXHomeRoomCell" forIndexPath:indexPath];
|
||||||
|
cell.model = self.list[indexPath.row];
|
||||||
|
return cell;
|
||||||
|
}
|
||||||
|
-(void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath{
|
||||||
|
QXHomeRoomCell *roomCell = (QXHomeRoomCell *)cell;
|
||||||
|
[roomCell startAnimating];
|
||||||
|
}
|
||||||
|
- (void)collectionView:(UICollectionView *)collectionView didEndDisplayingCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath{
|
||||||
|
QXHomeRoomCell *roomCell = (QXHomeRoomCell *)cell;
|
||||||
|
[roomCell endAnimating];
|
||||||
|
}
|
||||||
|
|
||||||
|
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
|
||||||
|
return CGSizeMake((SCREEN_WIDTH-15*3-1)/2.0, (SCREEN_WIDTH-15*3-1)/2.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
|
||||||
|
QXRoomListModel *model = self.list[indexPath.row];
|
||||||
|
[[QXGlobal shareGlobal] joinRoomWithRoomId:model.room_id isRejoin:NO navagationController:self.navigationController];
|
||||||
|
|
||||||
|
}
|
||||||
|
-(UICollectionView *)collectionView{
|
||||||
|
if (!_collectionView) {
|
||||||
|
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
|
||||||
|
layout.minimumLineSpacing = 15;
|
||||||
|
layout.minimumInteritemSpacing = 15;
|
||||||
|
layout.sectionInset = UIEdgeInsetsMake(0, 15, 0, 15);
|
||||||
|
_collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 16, SCREEN_WIDTH, SCREEN_HEIGHT-NavContentHeight) collectionViewLayout:layout];
|
||||||
|
_collectionView.delegate = self;
|
||||||
|
_collectionView.dataSource = self;
|
||||||
|
_collectionView.bounces = YES;
|
||||||
|
_collectionView.backgroundColor = [UIColor clearColor];
|
||||||
|
[_collectionView registerNib:[UINib nibWithNibName:@"QXHomeRoomCell" bundle:[NSBundle mainBundle]] forCellWithReuseIdentifier:@"QXHomeRoomCell"];
|
||||||
|
}
|
||||||
|
return _collectionView;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
#pragma mark - Navigation
|
||||||
|
|
||||||
|
// In a storyboard-based application, you will often want to do a little preparation before navigation
|
||||||
|
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
|
||||||
|
// Get the new view controller using [segue destinationViewController].
|
||||||
|
// Pass the selected object to the new view controller.
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
@end
|
||||||
18
QXLive/HomePage(声播)/View/首页/QXHomeTopRoomCell.h
Normal file
18
QXLive/HomePage(声播)/View/首页/QXHomeTopRoomCell.h
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
//
|
||||||
|
// QXHomeTopRoomCell.h
|
||||||
|
// QXLive
|
||||||
|
//
|
||||||
|
// Created by 启星 on 2025/10/20.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#import "QXRoomListModel.h"
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface QXHomeTopRoomCell : UICollectionViewCell
|
||||||
|
@property (weak, nonatomic) IBOutlet UIImageView *roomImageView;
|
||||||
|
@property (weak, nonatomic) IBOutlet UILabel *roomNameLabel;
|
||||||
|
@property (strong, nonatomic)QXRoomListModel *model ;
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
||||||
21
QXLive/HomePage(声播)/View/首页/QXHomeTopRoomCell.m
Normal file
21
QXLive/HomePage(声播)/View/首页/QXHomeTopRoomCell.m
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
//
|
||||||
|
// QXHomeTopRoomCell.m
|
||||||
|
// QXLive
|
||||||
|
//
|
||||||
|
// Created by 启星 on 2025/10/20.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "QXHomeTopRoomCell.h"
|
||||||
|
|
||||||
|
@implementation QXHomeTopRoomCell
|
||||||
|
-(void)setModel:(QXRoomListModel *)model{
|
||||||
|
_model = model;
|
||||||
|
[self.roomImageView sd_setImageWithURL:[NSURL URLWithString:model.room_cover]];
|
||||||
|
self.roomNameLabel.text = model.room_name;
|
||||||
|
}
|
||||||
|
- (void)awakeFromNib {
|
||||||
|
[super awakeFromNib];
|
||||||
|
// Initialization code
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
60
QXLive/HomePage(声播)/View/首页/QXHomeTopRoomCell.xib
Normal file
60
QXLive/HomePage(声播)/View/首页/QXHomeTopRoomCell.xib
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
||||||
|
<device id="retina6_12" orientation="portrait" appearance="light"/>
|
||||||
|
<dependencies>
|
||||||
|
<deployment identifier="iOS"/>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
|
||||||
|
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||||
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
|
</dependencies>
|
||||||
|
<objects>
|
||||||
|
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||||
|
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="gTV-IL-0wX" customClass="QXHomeTopRoomCell">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="290" height="267"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="290" height="267"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AMc-ga-z0u">
|
||||||
|
<rect key="frame" x="8" y="245" width="274" height="14"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="height" constant="14" id="nBP-t1-aMb"/>
|
||||||
|
</constraints>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||||
|
<color key="textColor" red="1" green="1" blue="1" alpha="0.84999999999999998" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="IPW-qC-f1g">
|
||||||
|
<rect key="frame" x="26.666666666666657" y="0.0" width="236.99999999999997" height="237"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" secondItem="IPW-qC-f1g" secondAttribute="height" multiplier="1:1" id="cRg-9h-L36"/>
|
||||||
|
</constraints>
|
||||||
|
<userDefinedRuntimeAttributes>
|
||||||
|
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
|
||||||
|
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||||
|
<integer key="value" value="8"/>
|
||||||
|
</userDefinedRuntimeAttribute>
|
||||||
|
</userDefinedRuntimeAttributes>
|
||||||
|
</imageView>
|
||||||
|
</subviews>
|
||||||
|
</view>
|
||||||
|
<viewLayoutGuide key="safeArea" id="SEy-5g-ep8"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="AMc-ga-z0u" firstAttribute="top" secondItem="IPW-qC-f1g" secondAttribute="bottom" constant="8" id="1ZJ-sM-LA1"/>
|
||||||
|
<constraint firstItem="IPW-qC-f1g" firstAttribute="centerX" secondItem="SEy-5g-ep8" secondAttribute="centerX" id="6SI-qJ-0va"/>
|
||||||
|
<constraint firstItem="IPW-qC-f1g" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="Jl7-NF-LFZ"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="AMc-ga-z0u" secondAttribute="trailing" constant="8" id="hbX-iy-3L1"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="AMc-ga-z0u" secondAttribute="bottom" constant="8" id="lMB-en-E1D"/>
|
||||||
|
<constraint firstItem="AMc-ga-z0u" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="8" id="zX4-9M-96x"/>
|
||||||
|
</constraints>
|
||||||
|
<size key="customSize" width="290" height="267"/>
|
||||||
|
<connections>
|
||||||
|
<outlet property="roomImageView" destination="IPW-qC-f1g" id="Aub-Kv-UEF"/>
|
||||||
|
<outlet property="roomNameLabel" destination="AMc-ga-z0u" id="3nx-VQ-OCq"/>
|
||||||
|
</connections>
|
||||||
|
<point key="canvasLocation" x="320.61068702290078" y="96.126760563380287"/>
|
||||||
|
</collectionViewCell>
|
||||||
|
</objects>
|
||||||
|
</document>
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
#import <UIKit/UIKit.h>
|
||||||
|
#import "QXRoomListModel.h"
|
||||||
NS_ASSUME_NONNULL_BEGIN
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
typedef NS_ENUM(NSInteger) {
|
typedef NS_ENUM(NSInteger) {
|
||||||
/// 热门房间
|
/// 热门房间
|
||||||
@@ -29,7 +29,7 @@ typedef NS_ENUM(NSInteger) {
|
|||||||
@end
|
@end
|
||||||
@interface QXHomeTopView : UIView
|
@interface QXHomeTopView : UIView
|
||||||
@property (weak,nonatomic)id<QXHomeTopViewDelegate>delegate;
|
@property (weak,nonatomic)id<QXHomeTopViewDelegate>delegate;
|
||||||
-(void)reloadData;
|
@property (nonatomic,strong)NSArray<QXRoomListModel*> *dataArray;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,12 +6,17 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
#import "QXHomeTopView.h"
|
#import "QXHomeTopView.h"
|
||||||
@interface QXHomeTopView()<QXHomeTopViewDelegate>
|
#import "SDCycleScrollView.h"
|
||||||
|
#import "QXHomeTopRoomCell.h"
|
||||||
|
|
||||||
|
@interface QXHomeTopView()<QXHomeTopViewDelegate,SDCycleScrollViewDelegate>
|
||||||
@property (nonatomic,strong)UIImageView *hotRoomImageView;
|
@property (nonatomic,strong)UIImageView *hotRoomImageView;
|
||||||
@property (nonatomic,strong)UIImageView *hotIconImageView;
|
@property (nonatomic,strong)UIImageView *hotIconImageView;
|
||||||
@property (nonatomic,strong)UILabel *hotLabel;
|
@property (nonatomic,strong)UILabel *hotLabel;
|
||||||
@property (nonatomic,strong)UIButton *hotRoomBtn;
|
@property (nonatomic,strong)UIButton *hotRoomBtn;
|
||||||
|
|
||||||
|
@property (nonatomic,strong)SDCycleScrollView *roomView;
|
||||||
|
|
||||||
@property (nonatomic,strong)QXHomeTopSubView *myRoomView;
|
@property (nonatomic,strong)QXHomeTopSubView *myRoomView;
|
||||||
|
|
||||||
@property (nonatomic,strong)QXHomeTopSubView *rankView;
|
@property (nonatomic,strong)QXHomeTopSubView *rankView;
|
||||||
@@ -49,6 +54,20 @@
|
|||||||
make.width.height.mas_equalTo(ScaleWidth(18));
|
make.width.height.mas_equalTo(ScaleWidth(18));
|
||||||
}];
|
}];
|
||||||
|
|
||||||
|
self.roomView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(16, ScaleWidth(48), (int)ScaleWidth(164), ScaleWidth(184-48)) delegate:self placeholderImage:nil];
|
||||||
|
self.roomView.backgroundColor = [UIColor clearColor];
|
||||||
|
self.roomView.bannerImageViewContentMode = UIViewContentModeScaleAspectFill;
|
||||||
|
[self.roomView addRoundedCornersWithRadius:8] ;
|
||||||
|
// self.roomView.pageControlBottomOffset = -10;
|
||||||
|
self.roomView.showPageControl = NO;
|
||||||
|
[self addSubview:self.roomView];
|
||||||
|
[self.roomView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.bottom.equalTo(self);
|
||||||
|
make.top.equalTo(self.hotIconImageView.mas_bottom).offset(10);
|
||||||
|
make.width.equalTo(self.hotRoomImageView);
|
||||||
|
make.centerX.equalTo(self.hotRoomImageView);
|
||||||
|
}];
|
||||||
|
|
||||||
self.hotRoomBtn = [[UIButton alloc] init];
|
self.hotRoomBtn = [[UIButton alloc] init];
|
||||||
[self.hotRoomBtn setImage:[UIImage imageNamed:@"home_hot_room_goto"] forState:(UIControlStateNormal)];
|
[self.hotRoomBtn setImage:[UIImage imageNamed:@"home_hot_room_goto"] forState:(UIControlStateNormal)];
|
||||||
[self.hotRoomBtn addTarget:self action:@selector(hotRoomAction) forControlEvents:(UIControlEventTouchUpInside)];
|
[self.hotRoomBtn addTarget:self action:@selector(hotRoomAction) forControlEvents:(UIControlEventTouchUpInside)];
|
||||||
@@ -104,9 +123,24 @@
|
|||||||
make.height.mas_equalTo(ScaleWidth(56));
|
make.height.mas_equalTo(ScaleWidth(56));
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
|
- (UINib *)customCollectionViewCellNibForCycleScrollView:(SDCycleScrollView *)view{
|
||||||
-(void)reloadData{
|
return [UINib nibWithNibName:@"QXHomeTopRoomCell" bundle:[NSBundle mainBundle]];
|
||||||
|
}
|
||||||
|
- (void)setupCustomCell:(UICollectionViewCell *)cell forIndex:(NSInteger)index cycleScrollView:(SDCycleScrollView *)view{
|
||||||
|
QXHomeTopRoomCell *roomCell = (QXHomeTopRoomCell*)cell;
|
||||||
|
roomCell.model = self.dataArray[index];
|
||||||
|
}
|
||||||
|
-(void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index{
|
||||||
|
QXRoomListModel *model = self.dataArray[index];
|
||||||
|
[[QXGlobal shareGlobal] joinRoomWithRoomId:model.room_id isRejoin:NO navagationController:self.viewController.navigationController];
|
||||||
|
}
|
||||||
|
-(void)setDataArray:(NSArray *)dataArray{
|
||||||
|
_dataArray = dataArray;
|
||||||
|
NSMutableArray *arr = [NSMutableArray array];
|
||||||
|
for (QXRoomListModel *md in dataArray) {
|
||||||
|
[arr addObject:md.room_cover];
|
||||||
|
}
|
||||||
|
self.roomView.imageURLStringsGroup = arr;
|
||||||
}
|
}
|
||||||
-(void)didClickTopViewType:(QXHomeTopClickType)type{
|
-(void)didClickTopViewType:(QXHomeTopClickType)type{
|
||||||
if (self.delegate && [self.delegate respondsToSelector:@selector(didClickTopViewType:)]) {
|
if (self.delegate && [self.delegate respondsToSelector:@selector(didClickTopViewType:)]) {
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
<string>Editor</string>
|
<string>Editor</string>
|
||||||
<key>CFBundleURLSchemes</key>
|
<key>CFBundleURLSchemes</key>
|
||||||
<array>
|
<array>
|
||||||
<string>midilive</string>
|
<string>qxlive</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
|
|||||||
@@ -82,7 +82,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
-(void)configLanguage{
|
-(void)configLanguage{
|
||||||
[self.comitUserInfoBtn setTitle:QXText(@"进入秘地") forState:(UIControlStateNormal)];
|
[self.comitUserInfoBtn setTitle:QXText(@"进入羽声语音") forState:(UIControlStateNormal)];
|
||||||
[self.comitUserInfoBtn setTitleColor:QXConfig.btnTextColor forState:(UIControlStateNormal)];
|
[self.comitUserInfoBtn setTitleColor:QXConfig.btnTextColor forState:(UIControlStateNormal)];
|
||||||
self.comitUserInfoBtn.backgroundColor = QXConfig.themeColor;
|
self.comitUserInfoBtn.backgroundColor = QXConfig.themeColor;
|
||||||
self.nickTitleLabel.text = QXText(@"起个好听的名字");
|
self.nickTitleLabel.text = QXText(@"起个好听的名字");
|
||||||
|
|||||||
@@ -78,7 +78,7 @@
|
|||||||
self.isCodeLogin = YES;
|
self.isCodeLogin = YES;
|
||||||
// self.welcomeLabel = [[UILabel alloc] initWithFrame:CGRectMake(16, kSafeAreaTop+86, SCREEN_WIDTH-32, 36)];
|
// self.welcomeLabel = [[UILabel alloc] initWithFrame:CGRectMake(16, kSafeAreaTop+86, SCREEN_WIDTH-32, 36)];
|
||||||
// self.welcomeLabel.font = [UIFont boldSystemFontOfSize:24];
|
// self.welcomeLabel.font = [UIFont boldSystemFontOfSize:24];
|
||||||
//// self.welcomeLabel.text = QXText(@"欢迎来到秘地");
|
//// self.welcomeLabel.text = QXText(@"欢迎来到羽声语音");
|
||||||
//// welcome_midi
|
//// welcome_midi
|
||||||
// self.welcomeLabel.textColor = QXConfig.textColor;
|
// self.welcomeLabel.textColor = QXConfig.textColor;
|
||||||
// [self.view addSubview:self.welcomeLabel];
|
// [self.view addSubview:self.welcomeLabel];
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
#import "QXGiftPlayerManager.h"
|
#import "QXGiftPlayerManager.h"
|
||||||
#import "QXGiftDisplayManager.h"
|
#import "QXGiftDisplayManager.h"
|
||||||
#import <AgoraRtcKit/AgoraRtcEngineKit.h>
|
#import <AgoraRtcKit/AgoraRtcEngineKit.h>
|
||||||
|
#import "TUIChatConfig.h"
|
||||||
|
|
||||||
@interface QXRoomMessageManager() <V2TIMGroupListener,V2TIMSimpleMsgListener,V2TIMAdvancedMsgListener>
|
@interface QXRoomMessageManager() <V2TIMGroupListener,V2TIMSimpleMsgListener,V2TIMAdvancedMsgListener>
|
||||||
@property (nonatomic,strong)NSString *groupId;
|
@property (nonatomic,strong)NSString *groupId;
|
||||||
@@ -25,6 +26,19 @@
|
|||||||
});
|
});
|
||||||
return global;
|
return global;
|
||||||
}
|
}
|
||||||
|
- (instancetype)init
|
||||||
|
{
|
||||||
|
self = [super init];
|
||||||
|
if (self) {
|
||||||
|
/// 设置聊天消息是否展示已读未读,只有旗舰版才支持
|
||||||
|
#if DEVELOPENT == 1
|
||||||
|
[TUIChatConfig defaultConfig].msgNeedReadReceipt = NO;
|
||||||
|
#else
|
||||||
|
[TUIChatConfig defaultConfig].msgNeedReadReceipt = YES;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
-(void)joinGroupWithRoomId:(NSString *)roomId{
|
-(void)joinGroupWithRoomId:(NSString *)roomId{
|
||||||
MJWeakSelf
|
MJWeakSelf
|
||||||
if (self.groupId) {
|
if (self.groupId) {
|
||||||
|
|||||||
@@ -131,7 +131,7 @@
|
|||||||
|
|
||||||
-(QXSystemTopView *)topView{
|
-(QXSystemTopView *)topView{
|
||||||
if (!_topView) {
|
if (!_topView) {
|
||||||
_topView = [[QXSystemTopView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 74*2+8)];
|
_topView = [[QXSystemTopView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 74+8)];
|
||||||
_topView.delegate = self;
|
_topView.delegate = self;
|
||||||
}
|
}
|
||||||
return _topView;
|
return _topView;
|
||||||
|
|||||||
@@ -24,17 +24,27 @@
|
|||||||
}
|
}
|
||||||
-(void)initSubviews{
|
-(void)initSubviews{
|
||||||
MJWeakSelf
|
MJWeakSelf
|
||||||
self.noticeView = [[QXSystemTopSubView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 74)];
|
// self.noticeView = [[QXSystemTopSubView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 74)];
|
||||||
self.noticeView.iconImageView.image = [UIImage imageNamed:@"notice_icon"];
|
// self.noticeView.iconImageView.image = [UIImage imageNamed:@"notice_icon"];
|
||||||
self.noticeView.titleLabel.text = QXText(@"官方公告");
|
// self.noticeView.titleLabel.text = QXText(@"官方公告");
|
||||||
[self.noticeView addTapBlock:^(id _Nonnull obj) {
|
// [self.noticeView addTapBlock:^(id _Nonnull obj) {
|
||||||
if (weakSelf.delegate && [weakSelf.delegate respondsToSelector:@selector(didClickNoticeWithType:)]) {
|
// if (weakSelf.delegate && [weakSelf.delegate respondsToSelector:@selector(didClickNoticeWithType:)]) {
|
||||||
[weakSelf.delegate didClickNoticeWithType:0];
|
// [weakSelf.delegate didClickNoticeWithType:0];
|
||||||
}
|
// }
|
||||||
}];
|
// }];
|
||||||
[self addSubview:self.noticeView];
|
// [self addSubview:self.noticeView];
|
||||||
|
|
||||||
self.systemView = [[QXSystemTopSubView alloc] initWithFrame:CGRectMake(0, 74, SCREEN_WIDTH, 74)];
|
// self.systemView = [[QXSystemTopSubView alloc] initWithFrame:CGRectMake(0, 74, SCREEN_WIDTH, 74)];
|
||||||
|
// self.systemView.iconImageView.image = [UIImage imageNamed:@"system_icon"];
|
||||||
|
// self.systemView.titleLabel.text = QXText(@"系统消息");
|
||||||
|
// [self addSubview:self.systemView];
|
||||||
|
// [self.systemView addTapBlock:^(id _Nonnull obj) {
|
||||||
|
// if (weakSelf.delegate && [weakSelf.delegate respondsToSelector:@selector(didClickNoticeWithType:)]) {
|
||||||
|
// [weakSelf.delegate didClickNoticeWithType:1];
|
||||||
|
// }
|
||||||
|
// }];
|
||||||
|
|
||||||
|
self.systemView = [[QXSystemTopSubView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 74)];
|
||||||
self.systemView.iconImageView.image = [UIImage imageNamed:@"system_icon"];
|
self.systemView.iconImageView.image = [UIImage imageNamed:@"system_icon"];
|
||||||
self.systemView.titleLabel.text = QXText(@"系统消息");
|
self.systemView.titleLabel.text = QXText(@"系统消息");
|
||||||
[self addSubview:self.systemView];
|
[self addSubview:self.systemView];
|
||||||
|
|||||||
@@ -271,7 +271,7 @@
|
|||||||
if (self.selectedPayTypeModel.type.intValue == 2) {
|
if (self.selectedPayTypeModel.type.intValue == 2) {
|
||||||
NSDictionary *resultDict = dict[@"data"];
|
NSDictionary *resultDict = dict[@"data"];
|
||||||
NSString *order = [NSString stringWithFormat:@"%@",resultDict[@"ali"]];
|
NSString *order = [NSString stringWithFormat:@"%@",resultDict[@"ali"]];
|
||||||
[[AlipaySDK defaultService] payOrder:order fromScheme:@"midilive" callback:^(NSDictionary *resultDic) {
|
[[AlipaySDK defaultService] payOrder:order fromScheme:AppScheme callback:^(NSDictionary *resultDic) {
|
||||||
NSLog(@"支付宝H5支付回调 - %@", resultDic);
|
NSLog(@"支付宝H5支付回调 - %@", resultDic);
|
||||||
|
|
||||||
}];
|
}];
|
||||||
@@ -300,7 +300,7 @@
|
|||||||
NSMutableDictionary*dic = [NSMutableDictionary dictionaryWithDictionary:dict[@"data"][@"tl"]];
|
NSMutableDictionary*dic = [NSMutableDictionary dictionaryWithDictionary:dict[@"data"][@"tl"]];
|
||||||
[dic removeObjectForKey:@"json_data"];
|
[dic removeObjectForKey:@"json_data"];
|
||||||
NSString *json = [dic jsonStringEncoded];
|
NSString *json = [dic jsonStringEncoded];
|
||||||
NSString *thirdPartSchema = @"thirdPartSchema=qxlive://";
|
NSString *thirdPartSchema = [NSString stringWithFormat:@"thirdPartSchema=%@://",AppScheme];
|
||||||
NSString *json1 = [json stringByReplacingOccurrencesOfString:@"\\" withString:@""];
|
NSString *json1 = [json stringByReplacingOccurrencesOfString:@"\\" withString:@""];
|
||||||
NSCharacterSet *customSet1 = [[NSCharacterSet characterSetWithCharactersInString:@"!*'();:@&=+$,/?%#[]{}\""] invertedSet];
|
NSCharacterSet *customSet1 = [[NSCharacterSet characterSetWithCharactersInString:@"!*'();:@&=+$,/?%#[]{}\""] invertedSet];
|
||||||
// NSCharacterSet *customSet2 = [[NSCharacterSet characterSetWithCharactersInString:@"!*'();:@&=+$,/?%#[]{}\""] invertedSet];
|
// NSCharacterSet *customSet2 = [[NSCharacterSet characterSetWithCharactersInString:@"!*'();:@&=+$,/?%#[]{}\""] invertedSet];
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
|
<rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="app_start_midi1" translatesAutoresizingMaskIntoConstraints="NO" id="hqu-R6-SdT">
|
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="app_start_yusheng.png" translatesAutoresizingMaskIntoConstraints="NO" id="hqu-R6-SdT">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
|
<rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
|
||||||
</imageView>
|
</imageView>
|
||||||
</subviews>
|
</subviews>
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
</scene>
|
</scene>
|
||||||
</scenes>
|
</scenes>
|
||||||
<resources>
|
<resources>
|
||||||
<image name="app_start_midi1" width="375" height="812"/>
|
<image name="app_start_yusheng.png" width="750" height="1624"/>
|
||||||
<systemColor name="systemBackgroundColor">
|
<systemColor name="systemBackgroundColor">
|
||||||
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||||
</systemColor>
|
</systemColor>
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ typedef NS_ENUM(NSInteger) {
|
|||||||
// 三方平台
|
// 三方平台
|
||||||
|
|
||||||
#if DEVELOPENT == 1
|
#if DEVELOPENT == 1
|
||||||
|
static NSString *const AppScheme = @"qxlivetest";
|
||||||
static NSString *const WechatAppId = @"wxfc7bf7ca8c71840d";
|
static NSString *const WechatAppId = @"wxfc7bf7ca8c71840d";
|
||||||
static NSString *const WechatAppSecret = @"b220c133628ac57252cfa2deef03b144";
|
static NSString *const WechatAppSecret = @"b220c133628ac57252cfa2deef03b144";
|
||||||
static NSString *const WechatUniversalLink = @"https://mdh.xscmmidi.site/";
|
static NSString *const WechatUniversalLink = @"https://mdh.xscmmidi.site/";
|
||||||
@@ -43,7 +44,7 @@ static NSString *const AgoraAuthId = @"05b406b4541e413887d8d2bf9be8642c";
|
|||||||
static NSString *const AuthSDKKey = @"Q8xhyn+MAyHw8FQLjKOWU8ZrZMXsuflPGSxDvwKu8ULvm8eZBPNLfezCsyuKzISPIGbMK5oR6fX/TyIdFwBjfL2lUteddxG+fu8aBuyScR066oDRhj66x97xM+9n6lnog9MOdMvGryx6PkZa1/un0IoX46SfrjpitnzYZvfFlavVDOq50iO4piAU/idOWnyY+1bQAnBQsfr8ZKHTAbpR2aUn4C6R37MvtXHnmD+o3Qjx0SbCxpsvs9h91/VBQ2+XEIynDIPDM+0=";
|
static NSString *const AuthSDKKey = @"Q8xhyn+MAyHw8FQLjKOWU8ZrZMXsuflPGSxDvwKu8ULvm8eZBPNLfezCsyuKzISPIGbMK5oR6fX/TyIdFwBjfL2lUteddxG+fu8aBuyScR066oDRhj66x97xM+9n6lnog9MOdMvGryx6PkZa1/un0IoX46SfrjpitnzYZvfFlavVDOq50iO4piAU/idOWnyY+1bQAnBQsfr8ZKHTAbpR2aUn4C6R37MvtXHnmD+o3Qjx0SbCxpsvs9h91/VBQ2+XEIynDIPDM+0=";
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
static NSString *const AppScheme = @"qxlive";
|
||||||
static NSString *const WechatAppId = @"wxfc7bf7ca8c71840d";
|
static NSString *const WechatAppId = @"wxfc7bf7ca8c71840d";
|
||||||
static NSString *const WechatAppSecret = @"b220c133628ac57252cfa2deef03b144";
|
static NSString *const WechatAppSecret = @"b220c133628ac57252cfa2deef03b144";
|
||||||
static NSString *const WechatUniversalLink = @"https://mdh.xscmmidi.site/";
|
static NSString *const WechatUniversalLink = @"https://mdh.xscmmidi.site/";
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 448 KiB |
BIN
QXLive/Other/app_start_yusheng.png
Normal file
BIN
QXLive/Other/app_start_yusheng.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 433 KiB |
@@ -30,7 +30,7 @@ NSPhotoLibraryUsageDescription = "访问您的相册,允许可以把视频保存
|
|||||||
"青少年模式" = "青少年模式";
|
"青少年模式" = "青少年模式";
|
||||||
|
|
||||||
//登录
|
//登录
|
||||||
"欢迎来到秘地" = "欢迎来到秘地";
|
"欢迎来到羽声语音" = "欢迎来到羽声语音";
|
||||||
"密码登录" = "密码登录";
|
"密码登录" = "密码登录";
|
||||||
"验证码登录" = "验证码登录";
|
"验证码登录" = "验证码登录";
|
||||||
"其他方式登录" = "其他方式登录";
|
"其他方式登录" = "其他方式登录";
|
||||||
@@ -56,7 +56,7 @@ NSPhotoLibraryUsageDescription = "访问您的相册,允许可以把视频保存
|
|||||||
"资源加载错误" = "资源加载错误";
|
"资源加载错误" = "资源加载错误";
|
||||||
"请不要上传超过1M的头像" = "请不要上传超过1M的头像";
|
"请不要上传超过1M的头像" = "请不要上传超过1M的头像";
|
||||||
"文件上传失败,请重新尝试" = "文件上传失败,请重新尝试";
|
"文件上传失败,请重新尝试" = "文件上传失败,请重新尝试";
|
||||||
"进入秘地" = "进入秘地";
|
"进入羽声语音" = "进入羽声语音";
|
||||||
"希望大家怎么称呼你" = "希望大家怎么称呼你";
|
"希望大家怎么称呼你" = "希望大家怎么称呼你";
|
||||||
"选择您的性别" = "选择您的性别";
|
"选择您的性别" = "选择您的性别";
|
||||||
"注册成功,不可更改" = "注册成功,不可更改";
|
"注册成功,不可更改" = "注册成功,不可更改";
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ NSInteger maxMessageCount = 20;
|
|||||||
-(void)insertNoitce{
|
-(void)insertNoitce{
|
||||||
QXRoomChatListModel *model = [QXRoomChatListModel new];
|
QXRoomChatListModel *model = [QXRoomChatListModel new];
|
||||||
model.messageType = QXRoomChatMessageTypeSystem;
|
model.messageType = QXRoomChatMessageTypeSystem;
|
||||||
model.text = @"秘地严禁未成年人进行直播或打赏,官方将24小时在线巡查。我们提倡绿色直播,直播间严禁出现涉政、涉恐、涉黄、涉赌等违法违规内容,严禁宣传封建迷信、宗教极端思想、出现低俗色情、吸烟酗酒等内容,严禁违反社会主义核心价值观、践踏社会道德底线、诱导打赏、低俗 PK 、买卖金币等行为,请大家共同遵守、监督并及时举报。请勿相信各类刷钻、购买礼包、游戏币及电商贩卖等非官方广告信息,谨防网络诈骗。";
|
model.text = @"羽声语音严禁未成年人进行直播或打赏,官方将24小时在线巡查。我们提倡绿色直播,直播间严禁出现涉政、涉恐、涉黄、涉赌等违法违规内容,严禁宣传封建迷信、宗教极端思想、出现低俗色情、吸烟酗酒等内容,严禁违反社会主义核心价值观、践踏社会道德底线、诱导打赏、低俗 PK 、买卖金币等行为,请大家共同遵守、监督并及时举报。请勿相信各类刷钻、购买礼包、游戏币及电商贩卖等非官方广告信息,谨防网络诈骗。";
|
||||||
[self.dataArray addObject:model];
|
[self.dataArray addObject:model];
|
||||||
[self.tableView reloadData];
|
[self.tableView reloadData];
|
||||||
[self scrollToBottom];
|
[self scrollToBottom];
|
||||||
|
|||||||
@@ -17,7 +17,8 @@
|
|||||||
- (id)init {
|
- (id)init {
|
||||||
self = [super init];
|
self = [super init];
|
||||||
if (self) {
|
if (self) {
|
||||||
self.msgNeedReadReceipt = YES;
|
/// 启星修改为已读
|
||||||
|
self.msgNeedReadReceipt = NO;
|
||||||
self.enableVideoCall = YES;
|
self.enableVideoCall = YES;
|
||||||
self.enableAudioCall = YES;
|
self.enableAudioCall = YES;
|
||||||
self.enableWelcomeCustomMessage = YES;
|
self.enableWelcomeCustomMessage = YES;
|
||||||
|
|||||||
Reference in New Issue
Block a user