首页完成

This commit is contained in:
启星
2025-10-21 10:29:06 +08:00
parent 412e8be86b
commit c0502d1f7b
25 changed files with 326 additions and 40 deletions

View File

@@ -1064,7 +1064,7 @@
DEVELOPMENT_TEAM = 8798G5VMH9;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = QXLiveScreen/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "秘地";
INFOPLIST_KEY_CFBundleDisplayName = "羽声语音";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = (
@@ -1090,7 +1090,7 @@
DEVELOPMENT_TEAM = 8798G5VMH9;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = QXLiveScreen/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "秘地";
INFOPLIST_KEY_CFBundleDisplayName = "羽声语音";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = (
@@ -1116,7 +1116,7 @@
DEVELOPMENT_TEAM = 8798G5VMH9;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "QXLiveScreen copy-Info.plist";
INFOPLIST_KEY_CFBundleDisplayName = "秘地";
INFOPLIST_KEY_CFBundleDisplayName = "羽声语音测试";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = (
@@ -1142,7 +1142,7 @@
DEVELOPMENT_TEAM = 8798G5VMH9;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "QXLiveScreen copy-Info.plist";
INFOPLIST_KEY_CFBundleDisplayName = "秘地";
INFOPLIST_KEY_CFBundleDisplayName = "羽声语音测试";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = (

View File

@@ -17,7 +17,7 @@
[super viewDidLoad];
// Do any additional setup after loading the view.
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.view addSubview:self.bgImaegView];
// [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(loginSuccess) name:noticeUserLogin object:nil];

View File

@@ -229,13 +229,10 @@
if (weakSelf.isClickJoinRoom) {
return;
}
// showLoadingInView(KEYWINDOW)
weakSelf.isClickJoinRoom = YES;
[[QXRoomMessageManager shared] joinGroupWithRoomId:roomId];
[QXMineNetwork joinRoomWithRoomId:roomId successBlock:^(QXRoomModel * _Nonnull roomModel) {
[UIApplication sharedApplication].idleTimerDisabled = YES;
// hideLoadingInView(KEYWINDOW)
// roomModel.room_info.pk_room_id = @"33";
weakSelf.isClickJoinRoom = NO;
weakSelf.roomVC = [[QXRoomViewController alloc] init];
weakSelf.roomVC.roomId = roomId;
@@ -247,7 +244,6 @@
weakSelf.roomId = roomId;
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
showToast(msg);
// hideLoadingInView(KEYWINDOW)
weakSelf.isClickJoinRoom = NO;
}];
}

View File

@@ -26,8 +26,10 @@
#import "QXNiceGiftPopView.h" //
#import "QXFirstRechargeView.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)JXCategoryTitleView *categoryView;
@property (nonatomic,strong)NSMutableArray <UIViewController*>*listVCArray;
@@ -401,7 +403,7 @@
self.appStoreView.hidden = YES;
}
// weakSelf.appStoreView.dataArray = list;
[self.topView reloadData];
self.topView.dataArray = list;
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
}];
@@ -483,6 +485,31 @@
[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{
@@ -602,6 +629,7 @@
-(QXHomeTopView *)topView{
if (!_topView) {
_topView = [[QXHomeTopView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, ScaleWidth(184))];
_topView.delegate = self;
}
return _topView;
}

View 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

View 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

View 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

View 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

View 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>

View File

@@ -6,7 +6,7 @@
//
#import <UIKit/UIKit.h>
#import "QXRoomListModel.h"
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger) {
/// 热门房间
@@ -29,7 +29,7 @@ typedef NS_ENUM(NSInteger) {
@end
@interface QXHomeTopView : UIView
@property (weak,nonatomic)id<QXHomeTopViewDelegate>delegate;
-(void)reloadData;
@property (nonatomic,strong)NSArray<QXRoomListModel*> *dataArray;
@end

View File

@@ -6,12 +6,17 @@
//
#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 *hotIconImageView;
@property (nonatomic,strong)UILabel *hotLabel;
@property (nonatomic,strong)UIButton *hotRoomBtn;
@property (nonatomic,strong)SDCycleScrollView *roomView;
@property (nonatomic,strong)QXHomeTopSubView *myRoomView;
@property (nonatomic,strong)QXHomeTopSubView *rankView;
@@ -49,6 +54,20 @@
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 setImage:[UIImage imageNamed:@"home_hot_room_goto"] forState:(UIControlStateNormal)];
[self.hotRoomBtn addTarget:self action:@selector(hotRoomAction) forControlEvents:(UIControlEventTouchUpInside)];
@@ -104,9 +123,24 @@
make.height.mas_equalTo(ScaleWidth(56));
}];
}
-(void)reloadData{
- (UINib *)customCollectionViewCellNibForCycleScrollView:(SDCycleScrollView *)view{
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{
if (self.delegate && [self.delegate respondsToSelector:@selector(didClickTopViewType:)]) {

View File

@@ -13,7 +13,7 @@
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>midilive</string>
<string>qxlive</string>
</array>
</dict>
<dict>

View File

@@ -82,7 +82,7 @@
}
-(void)configLanguage{
[self.comitUserInfoBtn setTitle:QXText(@"进入秘地") forState:(UIControlStateNormal)];
[self.comitUserInfoBtn setTitle:QXText(@"进入羽声语音") forState:(UIControlStateNormal)];
[self.comitUserInfoBtn setTitleColor:QXConfig.btnTextColor forState:(UIControlStateNormal)];
self.comitUserInfoBtn.backgroundColor = QXConfig.themeColor;
self.nickTitleLabel.text = QXText(@"起个好听的名字");

View File

@@ -78,7 +78,7 @@
self.isCodeLogin = YES;
// self.welcomeLabel = [[UILabel alloc] initWithFrame:CGRectMake(16, kSafeAreaTop+86, SCREEN_WIDTH-32, 36)];
// self.welcomeLabel.font = [UIFont boldSystemFontOfSize:24];
//// self.welcomeLabel.text = QXText(@"欢迎来到秘地");
//// self.welcomeLabel.text = QXText(@"欢迎来到羽声语音");
//// welcome_midi
// self.welcomeLabel.textColor = QXConfig.textColor;
// [self.view addSubview:self.welcomeLabel];

View File

@@ -11,6 +11,7 @@
#import "QXGiftPlayerManager.h"
#import "QXGiftDisplayManager.h"
#import <AgoraRtcKit/AgoraRtcEngineKit.h>
#import "TUIChatConfig.h"
@interface QXRoomMessageManager() <V2TIMGroupListener,V2TIMSimpleMsgListener,V2TIMAdvancedMsgListener>
@property (nonatomic,strong)NSString *groupId;
@@ -25,6 +26,19 @@
});
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{
MJWeakSelf
if (self.groupId) {

View File

@@ -131,7 +131,7 @@
-(QXSystemTopView *)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;
}
return _topView;

View File

@@ -24,17 +24,27 @@
}
-(void)initSubviews{
MJWeakSelf
self.noticeView = [[QXSystemTopSubView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 74)];
self.noticeView.iconImageView.image = [UIImage imageNamed:@"notice_icon"];
self.noticeView.titleLabel.text = QXText(@"官方公告");
[self.noticeView addTapBlock:^(id _Nonnull obj) {
if (weakSelf.delegate && [weakSelf.delegate respondsToSelector:@selector(didClickNoticeWithType:)]) {
[weakSelf.delegate didClickNoticeWithType:0];
}
}];
[self addSubview:self.noticeView];
// self.noticeView = [[QXSystemTopSubView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 74)];
// self.noticeView.iconImageView.image = [UIImage imageNamed:@"notice_icon"];
// self.noticeView.titleLabel.text = QXText(@"官方公告");
// [self.noticeView addTapBlock:^(id _Nonnull obj) {
// if (weakSelf.delegate && [weakSelf.delegate respondsToSelector:@selector(didClickNoticeWithType:)]) {
// [weakSelf.delegate didClickNoticeWithType:0];
// }
// }];
// [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.titleLabel.text = QXText(@"系统消息");
[self addSubview:self.systemView];

View File

@@ -271,7 +271,7 @@
if (self.selectedPayTypeModel.type.intValue == 2) {
NSDictionary *resultDict = dict[@"data"];
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);
}];
@@ -300,7 +300,7 @@
NSMutableDictionary*dic = [NSMutableDictionary dictionaryWithDictionary:dict[@"data"][@"tl"]];
[dic removeObjectForKey:@"json_data"];
NSString *json = [dic jsonStringEncoded];
NSString *thirdPartSchema = @"thirdPartSchema=qxlive://";
NSString *thirdPartSchema = [NSString stringWithFormat:@"thirdPartSchema=%@://",AppScheme];
NSString *json1 = [json stringByReplacingOccurrencesOfString:@"\\" withString:@""];
NSCharacterSet *customSet1 = [[NSCharacterSet characterSetWithCharactersInString:@"!*'();:@&=+$,/?%#[]{}\""] invertedSet];
// NSCharacterSet *customSet2 = [[NSCharacterSet characterSetWithCharactersInString:@"!*'();:@&=+$,/?%#[]{}\""] invertedSet];

View File

@@ -17,7 +17,7 @@
<rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<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"/>
</imageView>
</subviews>
@@ -37,7 +37,7 @@
</scene>
</scenes>
<resources>
<image name="app_start_midi1" width="375" height="812"/>
<image name="app_start_yusheng.png" width="750" height="1624"/>
<systemColor name="systemBackgroundColor">
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</systemColor>

View File

@@ -20,6 +20,7 @@ typedef NS_ENUM(NSInteger) {
// 三方平台
#if DEVELOPENT == 1
static NSString *const AppScheme = @"qxlivetest";
static NSString *const WechatAppId = @"wxfc7bf7ca8c71840d";
static NSString *const WechatAppSecret = @"b220c133628ac57252cfa2deef03b144";
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=";
#else
static NSString *const AppScheme = @"qxlive";
static NSString *const WechatAppId = @"wxfc7bf7ca8c71840d";
static NSString *const WechatAppSecret = @"b220c133628ac57252cfa2deef03b144";
static NSString *const WechatUniversalLink = @"https://mdh.xscmmidi.site/";

Binary file not shown.

Before

Width:  |  Height:  |  Size: 448 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 433 KiB

View File

@@ -30,7 +30,7 @@ NSPhotoLibraryUsageDescription = "访问您的相册,允许可以把视频保存
"青少年模式" = "青少年模式";
//登录
"欢迎来到秘地" = "欢迎来到秘地";
"欢迎来到羽声语音" = "欢迎来到羽声语音";
"密码登录" = "密码登录";
"验证码登录" = "验证码登录";
"其他方式登录" = "其他方式登录";
@@ -56,7 +56,7 @@ NSPhotoLibraryUsageDescription = "访问您的相册,允许可以把视频保存
"资源加载错误" = "资源加载错误";
"请不要上传超过1M的头像" = "请不要上传超过1M的头像";
"文件上传失败,请重新尝试" = "文件上传失败,请重新尝试";
"进入秘地" = "进入秘地";
"进入羽声语音" = "进入羽声语音";
"希望大家怎么称呼你" = "希望大家怎么称呼你";
"选择您的性别" = "选择您的性别";
"注册成功,不可更改" = "注册成功,不可更改";

View File

@@ -168,7 +168,7 @@ NSInteger maxMessageCount = 20;
-(void)insertNoitce{
QXRoomChatListModel *model = [QXRoomChatListModel new];
model.messageType = QXRoomChatMessageTypeSystem;
model.text = @"秘地严禁未成年人进行直播或打赏官方将24小时在线巡查。我们提倡绿色直播直播间严禁出现涉政、涉恐、涉黄、涉赌等违法违规内容严禁宣传封建迷信、宗教极端思想、出现低俗色情、吸烟酗酒等内容严禁违反社会主义核心价值观、践踏社会道德底线、诱导打赏、低俗 PK 、买卖金币等行为,请大家共同遵守、监督并及时举报。请勿相信各类刷钻、购买礼包、游戏币及电商贩卖等非官方广告信息,谨防网络诈骗。";
model.text = @"羽声语音严禁未成年人进行直播或打赏官方将24小时在线巡查。我们提倡绿色直播直播间严禁出现涉政、涉恐、涉黄、涉赌等违法违规内容严禁宣传封建迷信、宗教极端思想、出现低俗色情、吸烟酗酒等内容严禁违反社会主义核心价值观、践踏社会道德底线、诱导打赏、低俗 PK 、买卖金币等行为,请大家共同遵守、监督并及时举报。请勿相信各类刷钻、购买礼包、游戏币及电商贩卖等非官方广告信息,谨防网络诈骗。";
[self.dataArray addObject:model];
[self.tableView reloadData];
[self scrollToBottom];

View File

@@ -17,7 +17,8 @@
- (id)init {
self = [super init];
if (self) {
self.msgNeedReadReceipt = YES;
///
self.msgNeedReadReceipt = NO;
self.enableVideoCall = YES;
self.enableAudioCall = YES;
self.enableWelcomeCustomMessage = YES;