结构调整
This commit is contained in:
229
QXLive/Room(房间)/View/PK/QXRoomPKTimeSetView.m
Normal file
229
QXLive/Room(房间)/View/PK/QXRoomPKTimeSetView.m
Normal file
@@ -0,0 +1,229 @@
|
||||
//
|
||||
// QXRoomPKTimeSetView.m
|
||||
// QXLive
|
||||
//
|
||||
// Created by 启星 on 2025/7/3.
|
||||
//
|
||||
|
||||
#import "QXRoomPKTimeSetView.h"
|
||||
#import "QXSelectAuctionInfoView.h"
|
||||
#import "QXMineNetwork.h"
|
||||
|
||||
@interface QXRoomPKTimeSetView()<UIGestureRecognizerDelegate,UICollectionViewDataSource,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout,UITextFieldDelegate>
|
||||
@property (nonatomic,strong)UIView *bgView;
|
||||
@property (nonatomic,strong)UILabel *titleLabel;
|
||||
@property (nonatomic,strong)UICollectionView *collectionView;
|
||||
@property (nonatomic,strong)NSMutableArray *dataArray;
|
||||
@property (nonatomic,strong)QXRoomRelationModel *timeModel;
|
||||
|
||||
@property (nonatomic,strong)UITextField *textField;
|
||||
@property (nonatomic,strong)UIView *line;
|
||||
|
||||
@property (nonatomic,strong)UIButton *commitBtn;
|
||||
@property (nonatomic,strong)UIButton *cancelBtn;
|
||||
@end
|
||||
|
||||
@implementation QXRoomPKTimeSetView
|
||||
- (instancetype)init
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
self.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
|
||||
[self initSubviews];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
|
||||
return touch.view == self;
|
||||
}
|
||||
|
||||
-(void)initSubviews{
|
||||
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hide)];
|
||||
tap.delegate = self;
|
||||
[self addGestureRecognizer:tap];
|
||||
self.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.3];
|
||||
|
||||
self.bgView = [[UIView alloc] initWithFrame:CGRectMake(0, ScaleWidth(144), SCREEN_WIDTH, ScaleWidth(429)+kSafeAreaBottom)];
|
||||
self.bgView.backgroundColor = UIColor.whiteColor;
|
||||
[self.bgView addRoundedCornersWithRadius:16 byRoundingCorners:(UIRectCornerTopLeft|UIRectCornerTopRight)];
|
||||
[self addSubview:self.bgView];
|
||||
|
||||
self.titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(16, 16, 300, 24)];
|
||||
self.titleLabel.text = @"请选择PK时长";
|
||||
self.titleLabel.font = [UIFont boldSystemFontOfSize:16];
|
||||
self.titleLabel.textColor = [UIColor colorWithHexString:@"#333333"];
|
||||
[self.bgView addSubview:self.titleLabel];
|
||||
|
||||
|
||||
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
|
||||
layout.minimumLineSpacing = 12;
|
||||
layout.minimumInteritemSpacing = 12;
|
||||
layout.sectionInset = UIEdgeInsetsMake(0, 16, 0, 16);
|
||||
// layout.scrollDirection = UICollectionViewScrollDirectionVertical;
|
||||
self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, self.titleLabel.bottom+12, self.bgView.width,self.bgView.height-12-42-self.titleLabel.bottom ) collectionViewLayout:layout];
|
||||
[self.collectionView registerClass:[QXSelectAuctionInfoCell class] forCellWithReuseIdentifier:@"QXSelectAuctionInfoCell"];
|
||||
self.collectionView.delegate = self;
|
||||
self.collectionView.dataSource = self;
|
||||
self.collectionView.showsHorizontalScrollIndicator = NO;
|
||||
self.collectionView.showsVerticalScrollIndicator = NO;
|
||||
self.collectionView.bounces = NO;
|
||||
self.collectionView.backgroundColor = [UIColor clearColor];
|
||||
[self.bgView addSubview:self.collectionView];
|
||||
|
||||
QXRoomRelationModel *time1 = [[QXRoomRelationModel alloc] init];
|
||||
time1.name = @"5分钟";
|
||||
time1.relation_id = @"5";
|
||||
[self.dataArray addObject:time1];
|
||||
|
||||
QXRoomRelationModel *time2 = [[QXRoomRelationModel alloc] init];
|
||||
time2.name = @"10分钟";
|
||||
time2.relation_id = @"10";
|
||||
[self.dataArray addObject:time2];
|
||||
|
||||
QXRoomRelationModel *time3 = [[QXRoomRelationModel alloc] init];
|
||||
time3.name = @"15分钟";
|
||||
time3.relation_id = @"15";
|
||||
[self.dataArray addObject:time3];
|
||||
|
||||
QXRoomRelationModel *time4 = [[QXRoomRelationModel alloc] init];
|
||||
time4.name = @"20分钟";
|
||||
time4.relation_id = @"20";
|
||||
[self.dataArray addObject:time4];
|
||||
|
||||
QXRoomRelationModel *time5 = [[QXRoomRelationModel alloc] init];
|
||||
time5.name = @"25分钟";
|
||||
time5.relation_id = @"25";
|
||||
[self.dataArray addObject:time5];
|
||||
|
||||
QXRoomRelationModel *time6 = [[QXRoomRelationModel alloc] init];
|
||||
time6.name = @"30分钟";
|
||||
time6.relation_id = @"30";
|
||||
[self.dataArray addObject:time6];
|
||||
|
||||
QXRoomRelationModel *time7 = [[QXRoomRelationModel alloc] init];
|
||||
time7.name = @"35分钟";
|
||||
time7.relation_id = @"35";
|
||||
[self.dataArray addObject:time7];
|
||||
|
||||
QXRoomRelationModel *time8 = [[QXRoomRelationModel alloc] init];
|
||||
time8.name = @"40分钟";
|
||||
time8.relation_id = @"40";
|
||||
[self.dataArray addObject:time8];
|
||||
|
||||
// self.textField = [[UITextField alloc] initWithFrame:CGRectMake(16, self.collectionView.bottom+10, self.bgView.width-32, 30)];
|
||||
// self.textField.font = [UIFont systemFontOfSize:14];
|
||||
// self.textField.textColor = RGB16(0x333333);
|
||||
// self.textField.placeholder = @"请输入自定义时间,最少5分钟";
|
||||
// self.textField.delegate = self;
|
||||
// self.textField.returnKeyType = UIReturnKeyDone;
|
||||
// [self.bgView addSubview:self.textField];
|
||||
//
|
||||
// self.line = [[UIView alloc] initWithFrame:CGRectMake(16, self.textField.bottom, self.bgView.width-32, 1)];
|
||||
// self.line.backgroundColor = RGB16(0x999999);
|
||||
// [self.bgView addSubview:self.line];
|
||||
self.cancelBtn = [[UIButton alloc] initWithFrame:CGRectMake(38, self.bgView.height-kSafeAreaBottom-42, 95 , 42)];
|
||||
[self.cancelBtn setTitle:QXText(@"取消") forState:(UIControlStateNormal)];
|
||||
[self.cancelBtn setTitleColor:UIColor.whiteColor forState:(UIControlStateNormal)];
|
||||
[self.cancelBtn addTarget:self action:@selector(cancelAction) forControlEvents:(UIControlEventTouchUpInside)];
|
||||
[self.cancelBtn addRoundedCornersWithRadius:21];
|
||||
self.cancelBtn.titleLabel.font = [UIFont systemFontOfSize:14];
|
||||
self.cancelBtn.backgroundColor = RGB16(0x333333);
|
||||
[self.bgView addSubview:self.cancelBtn];
|
||||
|
||||
self.commitBtn = [[UIButton alloc] initWithFrame:CGRectMake(self.cancelBtn.right+16, self.bgView.height-kSafeAreaBottom-42, self.bgView.width-38-self.cancelBtn.right-16, 42)];
|
||||
[self.commitBtn setTitle:QXText(@"确认") forState:(UIControlStateNormal)];
|
||||
[self.commitBtn setTitleColor:QXConfig.btnTextColor forState:(UIControlStateNormal)];
|
||||
[self.commitBtn addTarget:self action:@selector(commitAction) forControlEvents:(UIControlEventTouchUpInside)];
|
||||
[self.commitBtn addRoundedCornersWithRadius:21];
|
||||
self.commitBtn.titleLabel.font = [UIFont systemFontOfSize:14];
|
||||
self.commitBtn.backgroundColor = QXConfig.themeColor;
|
||||
[self.bgView addSubview:self.commitBtn];
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
-(void)commitAction{
|
||||
if (self.timeModel == nil) {
|
||||
showToast(@"请选择PK时长");
|
||||
return;
|
||||
}
|
||||
MJWeakSelf
|
||||
[QXMineNetwork roomPkStartWithPk_id:self.pkId pk_times:self.timeModel.relation_id successBlock:^(NSDictionary * _Nonnull dict) {
|
||||
[weakSelf hide];
|
||||
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
|
||||
showToast(msg);
|
||||
}];
|
||||
}
|
||||
|
||||
-(void)cancelAction{
|
||||
[self hide];
|
||||
}
|
||||
|
||||
#pragma mark - UITextFieldDelegate
|
||||
//-(BOOL)textFieldShouldReturn:(UITextField *)textField{
|
||||
// [textField resignFirstResponder];
|
||||
// return YES;
|
||||
//}
|
||||
//-(void)textFieldDidBeginEditing:(UITextField *)textField{
|
||||
// [UIView animateWithDuration:0.3 animations:^{
|
||||
// self.bgView.y = kSafeAreaTop+90;
|
||||
// } completion:^(BOOL finished) {
|
||||
//
|
||||
// }];
|
||||
//}
|
||||
//-(void)textFieldDidEndEditing:(UITextField *)textField{
|
||||
// [UIView animateWithDuration:0.3 animations:^{
|
||||
// self.bgView.y = SCREEN_HEIGHT-ScaleWidth(429);
|
||||
// } completion:^(BOOL finished) {
|
||||
//
|
||||
// }];
|
||||
//}
|
||||
|
||||
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
|
||||
return 1;
|
||||
}
|
||||
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
|
||||
return self.dataArray.count;
|
||||
}
|
||||
-(__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
|
||||
QXSelectAuctionInfoCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"QXSelectAuctionInfoCell" forIndexPath:indexPath];
|
||||
cell.timeModel = self.dataArray[indexPath.row];
|
||||
return cell;
|
||||
}
|
||||
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
|
||||
CGFloat width = (SCREEN_WIDTH-16*2-12*3)/4;
|
||||
return CGSizeMake(width, 44);
|
||||
|
||||
}
|
||||
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
|
||||
QXRoomRelationModel *model = self.dataArray[indexPath.row];
|
||||
if (model.isSelected) {
|
||||
return;
|
||||
}
|
||||
self.timeModel.isSelected = NO;
|
||||
model.isSelected = YES;
|
||||
self.timeModel = model;
|
||||
[collectionView reloadData];
|
||||
}
|
||||
-(NSMutableArray *)dataArray{
|
||||
if (!_dataArray) {
|
||||
_dataArray = [NSMutableArray array];
|
||||
}
|
||||
return _dataArray;
|
||||
}
|
||||
-(void)showInView:(UIView *)view{
|
||||
self.bgView.y = SCREEN_HEIGHT;
|
||||
[view addSubview:self];
|
||||
[UIView animateWithDuration:0.3 animations:^{
|
||||
self.bgView.y = SCREEN_HEIGHT-ScaleWidth(429)-kSafeAreaBottom;
|
||||
}];
|
||||
}
|
||||
-(void)hide{
|
||||
[UIView animateWithDuration:0.3 animations:^{
|
||||
self.bgView.y = SCREEN_HEIGHT;
|
||||
} completion:^(BOOL finished) {
|
||||
[self removeFromSuperview];
|
||||
}];
|
||||
}
|
||||
@end
|
||||
Reference in New Issue
Block a user