Files
yuyin_ios/SweetParty/主类/音悦新增/房间榜&CP榜/YYRoomCPRankView.m

186 lines
6.0 KiB
Mathematica
Raw Normal View History

2025-08-08 11:05:33 +08:00
//
// YYRoomCPRankView.m
// SweetParty
//
// Created by bj_szd on 2023/12/25.
//
#import "YYRoomCPRankView.h"
#import "YYRoomCPRankCell.h"
@interface YYRoomCPRankView () <UITableViewDataSource, UITableViewDelegate, JXCategoryViewDelegate>
@property (nonatomic, strong) NSArray *titles;
@property (nonatomic, strong) JXCategoryTitleView *categoryView;
@property (nonatomic, assign) NSInteger currentIndex;
@property (nonatomic, strong) NSMutableArray *dataArray;
@property (nonatomic, assign) NSInteger page;
@end
@implementation YYRoomCPRankView
- (void)awakeFromNib {
[super awakeFromNib];
self.titles = @[@"日榜", @"周榜", @"月榜"];
self.dataArray = [[NSMutableArray alloc] init];
self.page = 1;
[self createUI];
[self fetchData];
}
- (void)createUI {
WEAK_SELF
[self.touchImgV dg_Tapped:^{
[weakSelf removeFromSuperview];
}];
[self.titleBgView addSubview:self.categoryView];
[self.categoryView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(0);
}];
self.tableView.separatorStyle = NO;
self.tableView.delegate = self;
self.tableView.dataSource = self;
[self.tableView registerNib:[UINib nibWithNibName:@"YYRoomCPRankCell" bundle:nil] forCellReuseIdentifier:@"YYRoomCPRankCell"];
self.tableView.rowHeight = 110;
//
self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(refreshFetchData)];
self.tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(fetchMoreData)];
}
- (void)fetchData {
NSDictionary *params = @{@"time":@(self.currentIndex+1), @"page":@(self.page), @"page_limit":@(10)};
[AFNetworkRequset.shared postRequestWithParams:params Path:@"/api/coupling/get_cp_rank" Loading:NO Hud:NO Success:^(id _Nonnull responseDic) {
if (self.page == 1) {
[self.dataArray removeAllObjects];
[self.tableView reloadData];
}
[self endRefresh];
NSArray *arr = [YYRoomCPRankModel mj_objectArrayWithKeyValuesArray:responseDic[@"data"][@"list"]];
[self.dataArray addObjectsFromArray:arr];
[self.tableView reloadData];
if (arr.count > 0) {
[self endFooterRefreshWithMore];
}else {
[self endFooterRefreshWithNoMore];
}
} Failure:^(id _Nonnull errorData) {
[self endRefresh];
}];
}
- (void)refreshFetchData {
self.page = 1;
[self fetchData];
}
- (void)fetchMoreData {
self.page ++;
[self fetchData];
}
- (void)endRefresh {
if ([self.tableView.mj_header isRefreshing]) {
[self.tableView.mj_header endRefreshing];
} else if ([self.tableView.mj_footer isRefreshing]) {
[self.tableView.mj_footer endRefreshing];
}
}
-(void)endFooterRefreshWithMore{
self.tableView.mj_footer.hidden = NO;
[self.tableView.mj_footer endRefreshing];
}
-(void)endFooterRefreshWithNoMore{
self.tableView.mj_footer.hidden = NO;
[self.tableView.mj_footer endRefreshingWithNoMoreData];
}
- (IBAction)onDismiss:(id)sender {
[self removeFromSuperview];
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.dataArray.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
YYRoomCPRankCell *cell = [tableView dequeueReusableCellWithIdentifier:@"YYRoomCPRankCell" forIndexPath:indexPath];
cell.selectionStyle = NO;
YYRoomCPRankModel *model = self.dataArray[indexPath.row];
cell.model = model;
// if (indexPath.row < 3) {
// cell.orderImgV.hidden = YES;
// cell.orderLab.hidden = YES;
// cell.orderImgV.image = [UIImage imageNamed:[NSString stringWithFormat:@"cp_rank_%ld", indexPath.row+1]];
// }else {
// cell.orderImgV.hidden = YES;
// cell.orderLab.hidden = NO;
// cell.orderLab.text = [NSString stringWithFormat:@"%ld", indexPath.row+1];
// }
cell.orderLab.text = [NSString stringWithFormat:@"%02ld", indexPath.row+1];
return cell;
}
- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index {
self.currentIndex = index;
[self refreshFetchData];
}
//
- (JXCategoryTitleView *)categoryView {
if (!_categoryView) {
_categoryView = [[JXCategoryTitleView alloc] init];
_categoryView.delegate = self;
_categoryView.titleFont = YBMediumFont(14);
_categoryView.titleSelectedFont = YBBoldFont(14);
_categoryView.titleColor = HEXCOLORA(0xFFFFFF, 1);
_categoryView.titleSelectedColor = HEXCOLOR(0xE100E1);
_categoryView.cellWidth = 240/3;
_categoryView.cellSpacing = 0;
_categoryView.contentEdgeInsetLeft = 0;
_categoryView.contentEdgeInsetRight = 0;
_categoryView.averageCellSpacingEnabled = NO;
_categoryView.backgroundColor = HEXCOLORA(0x000000, 0.15);
_categoryView.layer.cornerRadius =34/2;
_categoryView.layer.masksToBounds = YES;
_categoryView.titles = self.titles;
JXCategoryIndicatorBackgroundView *backgroundView = [[JXCategoryIndicatorBackgroundView alloc] init];
backgroundView.indicatorHeight = 34;
backgroundView.indicatorWidthIncrement = 0;
backgroundView.indicatorCornerRadius = 17;
// backgroundView.indicatorColor = [UIColor bm_colorGradientChangeWithSize:CGSizeMake(240/3, 34) direction:FXGradientChangeDirectionHorizontal startColor:mainLightColor endColor:mainDeepColor];
backgroundView.indicatorColor = kWhiteColor;
// backgroundView.layer.borderWidth = 1;
// backgroundView.layer.borderColor = HEXCOLOR(0xFFFFFF).CGColor;
_categoryView.indicators = @[backgroundView];
}
return _categoryView;
}
@end