| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292 |
- //
- // UpHotView.m
- // YBVideo
- //
- // Created by ybRRR on 2023/7/10.
- // Copyright © 2023 cat. All rights reserved.
- //
- #import "UpHotView.h"
- #import "UphotCoinCell.h"
- #import "EditPayView.h"
- @interface UpHotView ()<UICollectionViewDelegate,UICollectionViewDataSource,UIGestureRecognizerDelegate>
- {
- UILabel *exposureLb;
- UILabel *payLb;
- UILabel *userNumLb;
- UICollectionView *_collectionView;
- UIView *backView;
- }
- @property (nonatomic, strong)NSMutableArray *dataArr;
- @property (nonatomic, strong)EditPayView *editPayView;
- @end
- @implementation UpHotView
- -(instancetype)initWithFrame:(CGRect)frame
- {
- self = [super initWithFrame:frame];
- if(self){
- _dataArr = [NSMutableArray array];
- self.backgroundColor = RGBA(1, 1, 1, 0.4);
- UITapGestureRecognizer *closeTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(closeTapClick)];
- closeTap.delegate = self;
- [self addGestureRecognizer:closeTap];
- [self createUI];
- [self getHotLiveRules];
-
- }
- return self;
- }
- -(void)getHotLiveRules{
- [ YBNetworking postWithUrl:@"Popular.getHotLiveRules" Dic:@{@"uid":[Config getOwnID],@"token":[Config getOwnToken]} Suc:^(int code, id info, NSString *msg) {
- if(code == 0){
- [_dataArr removeAllObjects];
- NSDictionary *infoDic = [info firstObject];
- NSArray *rulesArr = [infoDic valueForKey:@"rules"];
- [_dataArr addObjectsFromArray:rulesArr];
- [_dataArr addObject:@{@"coin":YZMsg(@"自定义")}];
- [_collectionView reloadData];
-
- exposureLb.text = minstr([infoDic valueForKey:@"exposure"]);
- userNumLb.text = [NSString stringWithFormat:@"%@-%@人",minstr([infoDic valueForKey:@"user_min_num"]),minstr([infoDic valueForKey:@"user_max_num"])];
- if(rulesArr.count > 0){
- payLb.text =minstr([[rulesArr firstObject] valueForKey:@"coin"]);
- }
- }
- } Fail:^(id fail) {
-
- }] ;
-
- }
- -(void)closeTapClick{
- if(self.closeEvent){
- self.closeEvent(@"关闭",@"");
- }
- }
- -(void)createUI{
- backView = [[UIView alloc]init];
- backView.backgroundColor = Normal_Color;
- backView.frame = CGRectMake(0, _window_height-_window_height *0.5, _window_width, _window_height *0.5);
- [self addSubview:backView];
-
- UILabel *titleLb = [[UILabel alloc]init];
- titleLb.frame = CGRectMake(0, 10, backView.width, 20);
- titleLb.textColor = UIColor.whiteColor;
- titleLb.font = [UIFont systemFontOfSize:16];
- titleLb.text = YZMsg(@"直播上热门");
- titleLb.textAlignment = NSTextAlignmentCenter;
- [backView addSubview:titleLb];
-
- UIButton *upinfoBtn = [UIButton buttonWithType:0];
- upinfoBtn.frame = CGRectMake(backView.width-30, 10, 20, 20);
- [upinfoBtn setImage:[UIImage imageNamed:@"uphotInfo"] forState:0];
- [upinfoBtn addTarget:self action:@selector(uphotInfoClick) forControlEvents:UIControlEventTouchUpInside];
- [backView addSubview:upinfoBtn];
-
- UILabel *subTitleLb = [[UILabel alloc]init];
- subTitleLb.frame = CGRectMake(0, titleLb.bottom+5, backView.width, 20);
- subTitleLb.textColor = UIColor.grayColor;
- subTitleLb.font = [UIFont systemFontOfSize:12];
- subTitleLb.text = YZMsg(@"预计曝光量");
- subTitleLb.textAlignment = NSTextAlignmentCenter;
- [backView addSubview:subTitleLb];
-
- exposureLb = [[UILabel alloc]init];
- exposureLb.frame = CGRectMake(backView.width/2-40, subTitleLb.bottom+5, 80, 20);
- exposureLb.textColor = UIColor.grayColor;
- exposureLb.font = [UIFont systemFontOfSize:12];
- exposureLb.text = YZMsg(@"1000+");
- exposureLb.textAlignment = NSTextAlignmentCenter;
- [exposureLb setBackgroundColor:Normal_SubColor];
- [backView addSubview:exposureLb];
-
- [PublicObj lineViewWithFrame:CGRectMake(10, exposureLb.bottom+10, _window_width-20, 1) andColor:Normal_SubColor andView:backView];
-
- CGFloat pwidth = [PublicObj widthOfString:YZMsg(@"预估带来的观众数:") andFont:[UIFont systemFontOfSize:14] andHeight:20];
- UILabel *peopleLb = [[UILabel alloc]init];
- peopleLb.frame = CGRectMake(20, exposureLb.bottom+15, pwidth, 20);
- peopleLb.text =YZMsg(@"预估带来的观众数:");
- peopleLb.textColor = UIColor.grayColor;
- peopleLb.font = [UIFont systemFontOfSize:14];
- [backView addSubview:peopleLb];
-
- userNumLb= [[UILabel alloc]init];
- userNumLb.frame = CGRectMake(peopleLb.right+5, exposureLb.bottom+15, 160, 20);
- userNumLb.text =@"0";
- userNumLb.textColor = Pink_Cor;
- userNumLb.font = [UIFont systemFontOfSize:14];
- [backView addSubview:userNumLb];
-
- UILabel *peopleTipLb = [[UILabel alloc]init];
- peopleTipLb.frame = CGRectMake(20, peopleLb.bottom+5, backView.width-20, 20);
- peopleTipLb.text =YZMsg(@"实际效果与直播效果有关");
- peopleTipLb.textColor = UIColor.grayColor;
- peopleTipLb.font = [UIFont systemFontOfSize:12];
- [backView addSubview:peopleTipLb];
-
- [PublicObj lineViewWithFrame:CGRectMake(10, peopleTipLb.bottom+10, _window_width-20, 1) andColor:Normal_SubColor andView:backView];
-
- UILabel *subCoinLb = [[UILabel alloc]init];
- subCoinLb.frame = CGRectMake(20, peopleTipLb.bottom+20, pwidth, 20);
- subCoinLb.text =YZMsg(@"投放金额");
- subCoinLb.textColor = UIColor.grayColor;
- subCoinLb.font = [UIFont systemFontOfSize:14];
- [backView addSubview:subCoinLb];
- UICollectionViewFlowLayout *flow = [[UICollectionViewFlowLayout alloc]init];
- flow.scrollDirection = UICollectionViewScrollDirectionVertical;
- flow.itemSize = CGSizeMake((_window_width-90)/3, 30);
- flow.minimumLineSpacing = 10;
- flow.minimumInteritemSpacing = 10;
- _collectionView = [[UICollectionView alloc]initWithFrame:CGRectMake(20, subCoinLb.bottom+10, backView.width-40, 120) collectionViewLayout:flow];
- _collectionView.delegate = self;
- _collectionView.dataSource = self;
- [_collectionView registerNib:[UINib nibWithNibName:@"UphotCoinCell" bundle:nil] forCellWithReuseIdentifier:@"UphotCoinCell"];
- _collectionView.backgroundColor = UIColor.clearColor;
- [backView addSubview:_collectionView];
-
-
- UIView *bottomView = [[UIView alloc]init];
- bottomView.frame = CGRectMake(0, backView.height-50-ShowDiff, backView.width, 50+ShowDiff);
- bottomView.backgroundColor = RGB_COLOR(@"#272048", 1);
- [backView addSubview:bottomView];
-
- UILabel *paytitleLb = [[UILabel alloc]init];
- paytitleLb.frame = CGRectMake(12, 20, 70, 20);
- paytitleLb.font = [UIFont systemFontOfSize:16];
- paytitleLb.text = YZMsg(@"待支付:");
- paytitleLb.textColor = UIColor.whiteColor;
- paytitleLb.adjustsFontSizeToFitWidth = YES;
- [bottomView addSubview:paytitleLb];
-
- payLb = [[UILabel alloc]init];
- payLb.frame = CGRectMake(paytitleLb.right+5, 20, 80, 20);
- payLb.font = [UIFont systemFontOfSize:16];
- payLb.text = YZMsg(@"100");
- payLb.textColor = UIColor.whiteColor;
- [bottomView addSubview:payLb];
-
- UIButton *payBtn = [UIButton buttonWithType:0];
- payBtn.frame = CGRectMake(backView.width-110, 0, 110, 50);
- [payBtn setBackgroundColor:RGB_COLOR(@"#EA377F", 1)];
- [payBtn setTitle:YZMsg(@"确定支付") forState:0];
- payBtn.titleLabel.adjustsFontSizeToFitWidth = YES;
- [payBtn setTitleColor: UIColor.whiteColor forState:0];
- payBtn.titleLabel.font = [UIFont systemFontOfSize:14];
- [payBtn addTarget:self action:@selector(payBtnClick) forControlEvents:UIControlEventTouchUpInside];
- [bottomView addSubview:payBtn];
- }
- -(void)payBtnClick{
- NSString *titleStr = [NSString stringWithFormat:@"您将支付%@%@,进行直播上热门投放,是否继续",payLb.text,[common name_coin]];
- UIAlertController *alertcontrol = [UIAlertController alertControllerWithTitle:nil message:titleStr preferredStyle:UIAlertControllerStyleAlert];
-
- UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:YZMsg(@"取消") style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
-
- }];
- [cancelAction setValue:UIColor.grayColor forKey:@"_titleTextColor"];
- UIAlertAction *sureAction = [UIAlertAction actionWithTitle:YZMsg(@"确定支付") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
- [ YBNetworking postWithUrl:@"Popular.createHotLiveOrder" Dic:@{@"uid":[Config getOwnID],@"token":[Config getOwnToken],@"nums": payLb.text} Suc:^(int code, id info, NSString *msg) {
- if(code == 0){
- NSDictionary *infos = [info firstObject];
- NSString *orderid = [infos valueForKey:@"orderid"];
- if(self.closeEvent){
- self.closeEvent(@"确定",orderid);
- }
- }else{
- [MBProgressHUD showError:msg];
- }
- } Fail:^(id fail) {
-
- }] ;
- }];
- [cancelAction setValue:UIColor.grayColor forKey:@"_titleTextColor"];
- [sureAction setValue:Pink_Cor forKey:@"_titleTextColor"];
- [alertcontrol addAction:cancelAction];
- [alertcontrol addAction:sureAction];
- [[[YBBaseAppDelegate sharedAppDelegate] topViewController]presentViewController:alertcontrol animated:YES completion:nil];
-
-
- }
- -(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
- return _dataArr.count;
- }
- -(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
- {
-
- return UIEdgeInsetsMake(5, 5, 5, 5);
- }
- -(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
- return 1;
- }
- -(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
- UphotCoinCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"UphotCoinCell" forIndexPath:indexPath];
- cell.backgroundColor = RGB_COLOR(@"#272048", 1);
- cell.layer.cornerRadius = 5;
- cell.layer.masksToBounds = YES;
- cell.dataDic = _dataArr[indexPath.item];
- return cell;
-
- }
- -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
- {
- if(indexPath.item == _dataArr.count-1){
- [self showEditPayView];
- }else{
- NSDictionary *itemData = _dataArr[indexPath.item];
- payLb.text =[itemData valueForKey:@"coin"];
- [self getExposureByCoin:minstr([itemData valueForKey:@"coin"])];
- }
-
- }
- -(void)getExposureByCoin:(NSString *)coinStr{
- [YBNetworking postWithUrl:@"Popular.getExposureByCoin" Dic:@{@"nums":coinStr} Suc:^(int code, id info, NSString *msg) {
- if(code == 0){
- NSDictionary *infoDic = [info firstObject];
- exposureLb.text =[NSString stringWithFormat:@"%@+",minstr([infoDic valueForKey:@"exposure"])];
- userNumLb.text = [NSString stringWithFormat:@"%@-%@人",minstr([infoDic valueForKey:@"user_min_num"]),minstr([infoDic valueForKey:@"user_max_num"])];
- }
- } Fail:^(id fail) {
-
- }];
- }
- -(void)uphotInfoClick{
- NSString *url =[NSString stringWithFormat:@"%@/appapi/page/news?id=163",h5url];
- PubH5 *h5VC = [[PubH5 alloc]init];
- h5VC.url =url;
- [[YBBaseAppDelegate sharedAppDelegate]pushViewController:h5VC animated:YES];
- }
- - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
- NSLog(@"s0000000000:%@",NSStringFromClass([touch.view class]));
- if ([touch.view isDescendantOfView:backView] ||[touch.view isDescendantOfView:_editPayView] ) {
- return NO;
- }
- return YES;
- }
- -(void)showEditPayView{
- YBWeakSelf;
- _editPayView = [[EditPayView alloc]initWithFrame:CGRectMake(0, 0, _window_width, _window_height)];
- _editPayView.closeEvent = ^(NSString *type, NSString *coinStr) {
- if([type isEqual:@"确定"]){
- [weakSelf.dataArr removeLastObject];
- [weakSelf.dataArr addObject:@{@"coin":coinStr}];
- payLb.text =coinStr;
- [self getExposureByCoin:coinStr];
- NSIndexPath *lastIndex = [NSIndexPath indexPathForItem:weakSelf.dataArr.count-1 inSection:0];
- UphotCoinCell *cell = [_collectionView cellForItemAtIndexPath:lastIndex];
- cell.coinLb.text =coinStr;
- // [_collectionView reloadData];
- }
- [weakSelf.editPayView removeFromSuperview];
- weakSelf.editPayView = nil;
- };
- [self addSubview:_editPayView];
- }
- @end
|