结构调整
This commit is contained in:
196
QXLive/Room(房间)/View/点歌/QXRoomSongListSubView.m
Normal file
196
QXLive/Room(房间)/View/点歌/QXRoomSongListSubView.m
Normal file
@@ -0,0 +1,196 @@
|
||||
//
|
||||
// QXRoomSongListSubView.m
|
||||
// QXLive
|
||||
//
|
||||
// Created by 启星 on 2025/6/9.
|
||||
//
|
||||
|
||||
#import "QXRoomSongListSubView.h"
|
||||
#import "QXRoomSongListCell.h"
|
||||
#import "QXAgoraEngine.h"
|
||||
#import "QXMineNetwork.h"
|
||||
|
||||
@interface QXRoomSongListSubView()<UITableViewDataSource,UITableViewDelegate,UITextFieldDelegate>
|
||||
@property (nonatomic,strong)UIView *searchBgView;
|
||||
@property (nonatomic,strong)UIImageView *searchIcon;
|
||||
@property (nonatomic,strong)UITextField *textField;
|
||||
|
||||
@property (nonatomic,strong)NSMutableArray *dataArray;
|
||||
@property (nonatomic,assign)NSInteger page;
|
||||
@end
|
||||
|
||||
@implementation QXRoomSongListSubView
|
||||
|
||||
-(UIView *)listView{
|
||||
return self;
|
||||
}
|
||||
-(void)listWillAppear{
|
||||
if (!self.isSearch) {
|
||||
[self getSongList];
|
||||
}
|
||||
}
|
||||
- (instancetype)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self initSubviews];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
-(void)initSubviews{
|
||||
self.page = 1;
|
||||
self.searchBgView = [[UIView alloc] initWithFrame:CGRectMake(16, 6, self.width-32, 35)];
|
||||
self.searchBgView.backgroundColor = RGB16(0xEFF2F8);
|
||||
[self.searchBgView addRoundedCornersWithRadius:17.5];
|
||||
[self addSubview:self.searchBgView];
|
||||
|
||||
self.searchIcon = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_song_search"]];
|
||||
self.searchIcon.frame = CGRectMake(10, 10, 15, 15);
|
||||
[self.searchBgView addSubview:self.searchIcon];
|
||||
|
||||
|
||||
self.textField = [[UITextField alloc] initWithFrame:CGRectMake(self.searchIcon.right+2, 0, self.width-self.searchIcon.right-2-10, 35)];
|
||||
self.textField.textColor = RGB16(0x333333);
|
||||
self.textField.placeholder = QXText(@"请输入歌名搜索");
|
||||
self.textField.font = [UIFont systemFontOfSize:13];
|
||||
self.textField.returnKeyType = UIReturnKeyDone;
|
||||
[self.textField addTarget:self action:@selector(textDidChange:) forControlEvents:UIControlEventEditingChanged];
|
||||
self.textField.delegate = self;
|
||||
[self.searchBgView addSubview:self.textField];
|
||||
|
||||
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, self.searchBgView.bottom+10, self.width, self.height-self.searchBgView.bottom-10) style:(UITableViewStylePlain)];
|
||||
self.tableView.delegate = self;
|
||||
self.tableView.dataSource = self;
|
||||
self.tableView.backgroundColor = [UIColor clearColor];
|
||||
self.tableView.rowHeight = 72;
|
||||
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
||||
MJWeakSelf
|
||||
self.tableView.mj_footer = [MJRefreshBackStateFooter footerWithRefreshingBlock:^{
|
||||
weakSelf.page++;
|
||||
[weakSelf getSongList];
|
||||
}];
|
||||
self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
|
||||
weakSelf.page = 1;
|
||||
[weakSelf getSongList];
|
||||
}];
|
||||
[self addSubview:self.tableView];
|
||||
// [self getSongList];
|
||||
}
|
||||
-(void)setIsBgMusic:(BOOL)isBgMusic{
|
||||
_isBgMusic = isBgMusic;
|
||||
[self.tableView reloadData];
|
||||
}
|
||||
#pragma mark - UITextFieldDelegate
|
||||
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
|
||||
[textField resignFirstResponder];
|
||||
return YES;
|
||||
}
|
||||
-(void)textFieldDidBeginEditing:(UITextField *)textField{
|
||||
if (self.beiginEditBlock) {
|
||||
self.beiginEditBlock();
|
||||
}
|
||||
}
|
||||
-(void)textFieldDidEndEditing:(UITextField *)textField{
|
||||
if (self.endEditBlock) {
|
||||
self.endEditBlock();
|
||||
}
|
||||
}
|
||||
-(void)setIsSearch:(BOOL)isSearch{
|
||||
_isSearch = isSearch;
|
||||
self.searchBgView.hidden = !isSearch;
|
||||
self.tableView.frame = CGRectMake(0, isSearch?self.searchBgView.bottom+10:6, self.width, isSearch?(self.height-self.searchBgView.bottom-10):self.height - 6);
|
||||
|
||||
}
|
||||
-(void)setRoomId:(NSString *)roomId{
|
||||
_roomId = roomId;
|
||||
[self getSongList];
|
||||
}
|
||||
-(void)getSongList{
|
||||
MJWeakSelf
|
||||
if (self.isSearch) {
|
||||
if (self.textField.text.length == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
[[QXAgoraEngine sharedEngine] searchSongWithKeyword:self.textField.text page:self.page resultBlock:^(NSArray<AgoraMusic *> * _Nonnull songList, BOOL isReload) {
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
if (isReload) {
|
||||
[weakSelf.dataArray removeAllObjects];
|
||||
}
|
||||
for (AgoraMusic*music in songList) {
|
||||
if ([music.singer isEqualToString:@"彭丽媛"]) {
|
||||
continue;
|
||||
}
|
||||
QXSongListModel *model = [[QXSongListModel alloc] init];
|
||||
model.song_code = music.songCode;
|
||||
model.song_name = music.name;
|
||||
model.poster = music.poster;
|
||||
model.singer = music.singer;
|
||||
model.duration = music.durationS;
|
||||
[weakSelf.dataArray addObject:model];
|
||||
}
|
||||
[weakSelf.tableView reloadData];
|
||||
if (songList.count == 0) {
|
||||
weakSelf.tableView.mj_footer.state = MJRefreshStateNoMoreData;
|
||||
}else{
|
||||
[weakSelf.tableView.mj_footer endRefreshing];
|
||||
}
|
||||
[weakSelf.tableView.mj_header endRefreshing];
|
||||
});
|
||||
}];
|
||||
}else{
|
||||
if (self.isBgMusic) {
|
||||
self.dataArray = [NSMutableArray arrayWithArray:[QXAgoraEngine sharedEngine].bgMusicArray];
|
||||
[self.tableView reloadData];
|
||||
[self.tableView.mj_header endRefreshing];
|
||||
self.tableView.mj_footer.state = MJRefreshStateNoMoreData;
|
||||
}else{
|
||||
|
||||
[QXMineNetwork roomSongListWithRoomId:self.roomId successBlock:^(NSArray<QXSongListModel *> * _Nonnull list) {
|
||||
[weakSelf.dataArray removeAllObjects];
|
||||
[weakSelf.dataArray addObjectsFromArray:list];
|
||||
[weakSelf.tableView reloadData];
|
||||
weakSelf.tableView.mj_footer.state = MJRefreshStateNoMoreData;
|
||||
[weakSelf.tableView.mj_header endRefreshing];
|
||||
|
||||
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
|
||||
[weakSelf.tableView.mj_header endRefreshing];
|
||||
}];
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
-(void)textDidChange:(UITextField*)textField{
|
||||
[self getSongList];
|
||||
}
|
||||
|
||||
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
|
||||
return self.dataArray.count;
|
||||
}
|
||||
|
||||
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
|
||||
MJWeakSelf
|
||||
QXRoomSongListCell *cell = [QXRoomSongListCell cellWithTableView:tableView];
|
||||
cell.isBgMusic = self.isBgMusic;
|
||||
cell.isCompere = self.isCompere;
|
||||
cell.roomId = self.roomId;
|
||||
cell.isSearch = self.isSearch;
|
||||
cell.model = [self.dataArray objectAtIndex:indexPath.row];
|
||||
cell.moveSuccessBlock = ^{
|
||||
[weakSelf getSongList];
|
||||
};
|
||||
return cell;
|
||||
}
|
||||
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
|
||||
// QXSongListModel *model = self.dataArray[indexPath.row];
|
||||
// [[QXAgoraEngine sharedEngine] ktv_EndSing];
|
||||
// [[QXAgoraEngine sharedEngine] ktv_StartSing:YES withSong:model];
|
||||
}
|
||||
-(NSMutableArray *)dataArray{
|
||||
if (!_dataArray) {
|
||||
_dataArray = [NSMutableArray array];
|
||||
}
|
||||
return _dataArray;
|
||||
}
|
||||
@end
|
||||
Reference in New Issue
Block a user