| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243 |
- //
- // YBGiftPage.m
- // YBVideo
- //
- // Created by YB007 on 2020/10/10.
- // Copyright © 2020 cat. All rights reserved.
- //
- #import "YBGiftPage.h"
- #import "TYTabPagerBar.h"
- #import "TYPagerView.h"
- @interface YBGiftPage()<TYPagerViewDataSource,TYPagerViewDelegate,TYTabPagerBarDataSource,TYTabPagerBarDelegate,UIGestureRecognizerDelegate>
- @property(nonatomic,strong)TYTabPagerBar *tabBar;
- @property(nonatomic,strong)TYPagerView *pageView;
- @property(nonatomic,strong)NSArray *pageData;
- @property(nonatomic,strong)YBGiftView *normalGiftView;
- @property(nonatomic,strong)YBGiftView *bagGiftView;
- @end
- @implementation YBGiftPage
- +(instancetype)showGiftViewComplete:(RewardGiftBlock)complete {
- YBGiftPage *gV = [[YBGiftPage alloc]init];
- gV.giftEvent = complete;
- [gV setUpView];
- return gV;
- }
- -(void)requestGiftData{
- [_normalGiftView requestGiftData:@"Live.getGiftList"];
- [_bagGiftView requestGiftData:@"Backpack.getBackpack"];
- }
- -(void)setUpView{
- self.frame = [UIScreen mainScreen].bounds;
-
- UITapGestureRecognizer *tagGes = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(dismiss)];
- tagGes.delegate = self;
- [self addGestureRecognizer:tagGes];
-
- //注意这里的高度和YBGiftView中bgView高度[_bgViewHeight]相同
- CGFloat subViewHeight = (_window_width*322/375+ShowDiff);
- if (IS_IPHONE_5) {
- subViewHeight = (_window_width*322/375+ShowDiff)+15;
- }
-
- _pageView = [[TYPagerView alloc]init];
- _pageView.frame = CGRectMake(0, _window_height - subViewHeight, _window_width, subViewHeight);
- _pageView.layout.autoMemoryCache = NO;
- _pageView.dataSource = self;
- _pageView.delegate = self;
- [_pageView.layout registerClass:[UIView class] forItemWithReuseIdentifier:@"cellId"];
- _pageView.scrollView.bounces = NO;
- _pageView.backgroundColor = UIColor.whiteColor;
- [self addSubview:_pageView];
-
- _tabBar = [[TYTabPagerBar alloc]init];
- _tabBar.frame = CGRectMake(10, _window_height - subViewHeight, _window_width/2, 44);
- _tabBar.layout.barStyle = TYPagerBarStyleProgressElasticView;
- _tabBar.dataSource = self;
- _tabBar.delegate = self;
- _tabBar.layout.cellWidth = 0;
- _tabBar.layout.selectedTextColor = RGB_COLOR(@"#000000", 1);
- _tabBar.layout.normalTextColor = RGB_COLOR(@"#969696", 1);
- _tabBar.layout.progressColor = Pink_Cor;
- _tabBar.layout.progressHeight = 3;
- _tabBar.layout.progressRadius = 1.5;
- _tabBar.layout.progressVerEdging = 5;
- _tabBar.backgroundColor = UIColor.whiteColor;
- [_tabBar registerClass:[TYTabPagerBarCell class] forCellWithReuseIdentifier:[TYTabPagerBarCell cellIdentifier]];
- [self addSubview:_tabBar];
- UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:_pageView.bounds byRoundingCorners:UIRectCornerTopRight|UIRectCornerTopLeft cornerRadii:CGSizeMake(10, 10)];
- CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
- maskLayer.frame = _pageView.bounds;
- maskLayer.path = maskPath.CGPath;
- _pageView.layer.mask = maskLayer;
- _pageData = @[YZMsg(@"打赏礼物"),YZMsg(@"我的背包")];
- YBWeakSelf;
- _normalGiftView = [YBGiftView showTypeOfGiftViewComplete:^(int eventCode,NSDictionary *giftDic) {
- if (eventCode == -1) {
- [weakSelf dismiss];
- }
- if (weakSelf.giftEvent) {
- weakSelf.giftEvent(eventCode, giftDic);
- }
- }];
- _normalGiftView.giftViewSwitchEvent = ^(id currentView) {
- [weakSelf cancelSelFlag:currentView];
- };
- _bagGiftView = [YBGiftView showTypeOfGiftViewComplete:^(int eventCode,NSDictionary *giftDic) {
- if (eventCode == -1) {
- [weakSelf dismiss];
- }
- if (weakSelf.giftEvent) {
- weakSelf.giftEvent(eventCode, giftDic);
- }
- }];
- _bagGiftView.giftViewSwitchEvent = ^(id currentView) {
- [weakSelf cancelSelFlag:currentView];
- };
- [_tabBar reloadData];
- [_pageView updateData];
-
- //添加手绘区域
- [self addSubview:self.paintedRegion];
- [_paintedRegion mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerX.equalTo(self);
- make.width.mas_equalTo(_window_width);
- make.top.equalTo(self.mas_top).offset(statusbarHeight);
- make.bottom.equalTo(self.pageView.mas_top).offset(45);
- }];
- _normalGiftView.paintedRegion = _paintedRegion;
- _bagGiftView.paintedRegion = _paintedRegion;
-
- [self showGiftPage];
- }
- #pragma mark - 必要参数
- - (void)setReceiveID:(NSString *)receiveID {
- _receiveID = receiveID;
- _normalGiftView.receiveID = _receiveID;
- _bagGiftView.receiveID = _receiveID;
- }
- - (void)setReceiveStream:(NSString *)receiveStream {
- _receiveStream = receiveStream;
- _normalGiftView.receiveStream = _receiveStream ? _receiveStream:@"";
- _bagGiftView.receiveStream = _receiveStream ? _receiveStream:@"";
-
- }
- - (void)setSendType:(SendGiftType)sendType {
- _sendType = sendType;
- _normalGiftView.sendType = _sendType;
- _bagGiftView.sendType = _sendType;
- }
- -(void)cancelSelFlag:(id)currentView {
- if (currentView == _normalGiftView) {
- [_bagGiftView cancelGiftSel];
- }else {
- [_normalGiftView cancelGiftSel];
- }
- }
- -(void)showGiftPage {
- [[UIApplication sharedApplication].delegate.window addSubview:self];
-
- [UIView animateWithDuration:0.3 animations:^{
-
- } completion:^(BOOL finished) {
- self.backgroundColor = RGB_COLOR(@"#000000", 0.4);
- }];
- }
- -(void)dismiss {
- if (self.giftEvent) {
- self.giftEvent(-1, @{});
- }
- [self.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
- [self removeFromSuperview];
- }
- - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch; {
- if (_paintedRegion.showPainted) {
- return NO;
- }
- if ([touch.view isDescendantOfView:self.pageView] || [touch.view isDescendantOfView:self.tabBar]) {
- return NO;
- }
- return YES;
- }
- #pragma mark - TYTabPagerBarDataSource
- - (NSInteger)numberOfItemsInPagerTabBar {
- return _pageData.count;
- }
- - (UICollectionViewCell<TYTabPagerBarCellProtocol> *)pagerTabBar:(TYTabPagerBar *)pagerTabBar cellForItemAtIndex:(NSInteger)index {
- UICollectionViewCell<TYTabPagerBarCellProtocol> *cell = [pagerTabBar dequeueReusableCellWithReuseIdentifier:[TYTabPagerBarCell cellIdentifier] forIndex:index];
- cell.titleLabel.text = _pageData[index];
- return cell;
- }
- #pragma mark - TYTabPagerBarDelegate
- - (CGFloat)pagerTabBar:(TYTabPagerBar *)pagerTabBar widthForItemAtIndex:(NSInteger)index {
- NSString *title = _pageData[index];
- return [pagerTabBar cellWidthForTitle:title];
- }
- - (void)pagerTabBar:(TYTabPagerBar *)pagerTabBar didSelectItemAtIndex:(NSInteger)index {
- [_pageView scrollToViewAtIndex:index animate:YES];
- }
- #pragma mark - TYPagerViewDataSource
- - (NSInteger)numberOfViewsInPagerView {
- return _pageData.count;
- }
- - (UIView *)pagerView:(TYPagerView *)pagerView viewForIndex:(NSInteger)index prefetching:(BOOL)prefetching {
- if (index == 0) {
- return _normalGiftView;
- } else{
- return _bagGiftView;
- }
- }
- #pragma mark - TYPagerViewDelegate
- - (void)pagerView:(TYPagerView *)pagerView willAppearView:(UIView *)view forIndex:(NSInteger)index {
- _paintedRegion.showPainted = NO;
- if (view == _normalGiftView) {
- [_normalGiftView judesSelIsPaintedGift];
- }
- if (view == _bagGiftView) {
- [_bagGiftView judesSelIsPaintedGift];
- }
- }
- - (void)pagerView:(TYPagerView *)pagerView willDisappearView:(UIView *)view forIndex:(NSInteger)index {
- //NSLog(@"---------willDisappearView:%ld",index);
-
- }
- - (void)pagerView:(TYPagerView *)pagerView transitionFromIndex:(NSInteger)fromIndex toIndex:(NSInteger)toIndex animated:(BOOL)animated {
- //NSLog(@"fromIndex:%ld, toIndex:%ld",fromIndex,toIndex);
- [_tabBar scrollToItemFromIndex:fromIndex toIndex:toIndex animate:animated];
- }
- - (void)pagerView:(TYPagerView *)pagerView transitionFromIndex:(NSInteger)fromIndex toIndex:(NSInteger)toIndex progress:(CGFloat)progress {
- //NSLog(@"fromIndex:%ld, toIndex:%ld progress%.3f",fromIndex,toIndex,progress);
- [_tabBar scrollToItemFromIndex:fromIndex toIndex:toIndex progress:progress];
- }
- #pragma mark - 手绘礼物
- - (RKPaintedGiftView *)paintedRegion {
- if (!_paintedRegion) {
- _paintedRegion = [[RKPaintedGiftView alloc]init];
- YBWeakSelf;
- _paintedRegion.paintedEvent = ^{
- [weakSelf dismiss];
- };
- }
- return _paintedRegion;
- }
- @end
|