Files
featherVoice/QXLive/HomePage(声播)/View/房间/拍卖房/QXRoomAuctionRankView.m
2025-08-08 10:49:36 +08:00

178 lines
6.5 KiB
Objective-C

//
// QXRoomAuctionRankView.m
// QXLive
//
// Created by 启星 on 2025/7/1.
//
#import "QXRoomAuctionRankView.h"
#import "QXMineNetwork.h"
#import "QXRoomRankSubView.h"
#import "QXBlackListCell.h"
@interface QXRoomAuctionRankView()<UIGestureRecognizerDelegate,UITableViewDataSource,UITableViewDelegate>
@property (nonatomic,strong)UILabel *titleLabel;
@property (nonatomic,strong)UIImageView *bgImageView;
@property (nonatomic,strong)UIView *bgView;
@property (nonatomic,strong)UIView *tableHeaderView;
@property (nonatomic,strong)QXRoomRankTopThreeView *firstView;
@property (nonatomic,strong)QXRoomRankTopThreeView *secondView;
@property (nonatomic,strong)QXRoomRankTopThreeView *thirdView;
@property (nonatomic,strong)UITableView *tableView;
@property (nonatomic,strong)NSMutableArray *dataArray;
@property (nonatomic,assign)NSInteger page;
@end
@implementation QXRoomAuctionRankView
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self initSubviews];
}
return self;
}
-(void)initSubviews{
self.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.3];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hide)];
tap.delegate = self;
[self addGestureRecognizer:tap];
self.bgView = [[UIView alloc] initWithFrame:CGRectMake(0, ScaleWidth(144), SCREEN_WIDTH, SCREEN_HEIGHT-ScaleWidth(144))];
[self.bgView addRoundedCornersWithRadius:16 byRoundingCorners:(UIRectCornerTopLeft|UIRectCornerTopRight)];
[self addSubview:self.bgView];
self.bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_rank_bg"]];
self.bgImageView.contentMode = UIViewContentModeScaleToFill;
self.bgImageView.frame = self.bgView.bounds;
[self.bgView addSubview:self.bgImageView];
self.titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 12, self.bgView.width, 30)];
self.titleLabel.font = [UIFont boldSystemFontOfSize:18];
self.titleLabel.textColor = [UIColor whiteColor];
self.titleLabel.text = @"出价榜单";
self.titleLabel.textAlignment = NSTextAlignmentCenter;
[self.bgView addSubview:self.titleLabel];
self.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.width, 220+44+38+40+8)];
CGFloat itemWidth = (self.width-36)/3;
self.secondView = [[QXRoomRankTopThreeView alloc] initWithFrame:CGRectMake(18, 44+38+40+8+50, itemWidth, 135)];
self.secondView.number = 2;
[self.tableHeaderView addSubview:self.secondView];
self.firstView = [[QXRoomRankTopThreeView alloc] initWithFrame:CGRectMake(self.secondView.right, 44+38+40+8, itemWidth, 161)];
self.firstView.number = 1;
[self.tableHeaderView addSubview:self.firstView];
self.thirdView = [[QXRoomRankTopThreeView alloc] initWithFrame:CGRectMake(self.firstView.right, 44+38+40+8+50, itemWidth, 135)];
self.thirdView.number = 3;
[self.tableHeaderView addSubview:self.thirdView];
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.width, self.bgView.height) style:(UITableViewStylePlain)];
self.tableView.delegate = self;
self.tableView.dataSource = self;
self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.rowHeight = 60;
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
self.tableView.tableHeaderView = self.tableHeaderView;
MJWeakSelf
self.tableView.mj_footer = [MJRefreshBackStateFooter footerWithRefreshingBlock:^{
weakSelf.page++;
[weakSelf getAuctionUserList];
}];
self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
weakSelf.page = 1;
[weakSelf getAuctionUserList];
}];
[self.bgView addSubview:self.tableView];
}
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
return touch.view == self;
}
-(void)setAuctionId:(NSString *)auctionId{
_auctionId = auctionId;
self.page = 1;
[self getAuctionUserList];
}
-(void)getAuctionUserList{
MJWeakSelf
[QXMineNetwork roomAuctionUserListWithAuctionId:self.auctionId successBlock:^(NSArray<QXRoomOnlineList *> * _Nonnull list) {
if (weakSelf.page == 1) {
weakSelf.firstView.md = nil;
weakSelf.secondView.md = nil;
weakSelf.thirdView.md = nil;
[weakSelf.dataArray removeAllObjects];
for (int i = 0 ; i < list.count; i++) {
QXRoomOnlineList*md = list[i];
if (i == 0) {
// [weakSelf.topArray addObject:md];
weakSelf.firstView.md = md;
}else if (i == 1) {
weakSelf.secondView.md = md;
}else if (i == 2) {
weakSelf.thirdView.md = md;
}else{
[weakSelf.dataArray addObject:md];
}
}
}else{
[weakSelf.dataArray addObjectsFromArray:list];
}
[self.tableView reloadData];
if (list.count == 0) {
self.tableView.mj_footer.state = MJRefreshStateNoMoreData;
}else{
[self.tableView.mj_footer endRefreshing];
}
[self.tableView.mj_header endRefreshing];
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
[self.tableView.mj_header endRefreshing];
[self.tableView.mj_footer endRefreshing];
}];
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return self.dataArray.count;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
QXBlackListCell *cell = [QXBlackListCell cellWithTableView:tableView];
cell.cellType = QXBlackListCellTypeRank;
cell.backgroundColor = [UIColor clearColor];
cell.titleLabel.text = [NSString stringWithFormat:@"%ld",indexPath.row+4];
cell.rankModel = self.dataArray[indexPath.row];
return cell;
}
-(void)showInView:(UIView *)view{
self.bgView.y = SCREEN_HEIGHT;
[view addSubview:self];
[UIView animateWithDuration:0.3 animations:^{
self.bgView.y = ScaleWidth(144);
}];
}
-(void)hide{
[UIView animateWithDuration:0.3 animations:^{
self.bgView.y = SCREEN_HEIGHT;
} completion:^(BOOL finished) {
[self removeFromSuperview];
}];
}
-(NSMutableArray *)dataArray{
if (!_dataArray) {
_dataArray = [NSMutableArray array];
}
return _dataArray;
}
@end