| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542 |
- //
- // MOCrazyShowView.m
- // MiMoLive
- //
- // Created by SuperC on 2024/1/15.
- //
- #define kShowViewHeight 25.0
- #define kShowTimeViewWidth 40.0
- #define kShowHeadWidth 22.0
- #define kShowGiftWidth 30.0
- #define kShowGiftFont 12.0
- #define kShowGiftBigFont 16.0
- #define kMOSuperGiftViewWidth (SCREENWIDTH - 32.0 * 2.0)
- #define kMOSuperGiftViewLeftAndRightSpacing ((SCREENWIDTH - kMOSuperGiftViewWidth) / 2.0)
- #define kMoBannerHeight 32.0
- #define kLeftSpacing kScaleWidth(26.0)
- #define kRightSpacing kScaleWidth(32.0)
-
- #import "MOCrazyShowView.h"
- #import "MOSuperNumView.h"
- #import "MOLevelUpNoticeView.h"//升级
- #import "MOLuckyFloatingView.h"//幸运礼物 / 红包
- #import "UIImageView+Gift.h"
- @interface MOCrazyShowView ()
- @property (nonatomic, strong) UIView *bgView;
- @property (nonatomic, strong) UIImageView *bgImgView;
- @property (nonatomic, strong) UIImageView *timeImgView;
- @property (nonatomic, strong) UIImageView *headImgView;
- @property (nonatomic, strong) UILabel *contentLab;
- @property (nonatomic, strong) UIImageView *giftImgView;
- @property (nonatomic, strong) UIButton *throughBtn;
- @property (nonatomic, strong) UIImageView *rightTagImgView;
- @property (nonatomic, strong) UIScrollView *contentScrollView;
- @property (nonatomic, strong) MOSuperNumView *superNumView;
- @property (nonatomic, strong) MOLevelUpNoticeView *levelUpNoticeView;//升级
- @property (nonatomic, strong) MOLuckyFloatingView *luckyFloatingView;//宝箱 / 红包
- @end
- @implementation MOCrazyShowView
- - (instancetype)initWithFrame:(CGRect)frame{
- self = [super initWithFrame:frame];
- if (self)
- {
- self.backgroundColor = [UIColor clearColor];
- [self setupUI];
- }
- return self;
- }
- - (void)setupUI{
- [self addSubview:self.bgView];
- [self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.right.equalTo(self);
- make.height.equalTo(@(kShowViewHeight));
- make.centerY.equalTo(self);
- }];
- self.bgView.layer.cornerRadius = kShowViewHeight / 2.0;
- // self.bgView.layer.borderWidth = 1.0;
- // self.bgView.layer.borderColor = [MOTools colorWithHexString:@"#FFFFFF" alpha:1.0].CGColor;
-
- CGFloat bgImgViewWidth = kMOSuperGiftViewWidth;
- CGFloat bgImgViewHeight = bgImgViewWidth * 64.0 / 630.0;
-
- [self.bgView addSubview:self.bgImgView];
- [self.bgImgView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.center.equalTo(self.bgView);
- make.height.equalTo(@(bgImgViewHeight));
- make.width.equalTo(@(bgImgViewWidth));
- }];
-
- [self addSubview:self.timeImgView];
- [self.timeImgView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.equalTo(self).offset(-kLeftSpacing);
- make.width.equalTo(@(kShowTimeViewWidth));
- make.height.equalTo(@30.0);
- make.centerY.equalTo(self);
- }];
-
- [self addSubview:self.headImgView];
- [self.headImgView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.equalTo(self.timeImgView.mas_right).offset(10.0);
- make.width.height.equalTo(@(kShowHeadWidth));
- make.centerY.equalTo(self);
- }];
- self.headImgView.layer.cornerRadius = kShowHeadWidth / 2.0;
- self.headImgView.layer.masksToBounds = YES;
-
- [self addSubview:self.superNumView];
- [self.superNumView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.height.equalTo(@29.0);
- make.width.equalTo(@45.0);
- make.centerX.equalTo(self.timeImgView.mas_centerX);
- make.centerY.equalTo(self.timeImgView.mas_centerY);
- }];
-
- [self addSubview:self.giftImgView];
- [self.giftImgView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.right.equalTo(self).offset(kRightSpacing);
- make.height.width.equalTo(@(kShowGiftWidth));
- make.centerY.equalTo(self);
- }];
-
- [self addSubview:self.rightTagImgView];
- [self.rightTagImgView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.right.equalTo(self.giftImgView.mas_left).offset(-5.0);
- make.height.equalTo(@9.0);
- make.width.equalTo(@6.0);
- make.centerY.equalTo(self);
- }];
-
- [self.bgView addSubview:self.contentScrollView];
- [self.contentScrollView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.equalTo(self.headImgView.mas_right).offset(5.0);
- make.right.equalTo(self.rightTagImgView.mas_left).offset(-5.0);
- make.centerY.equalTo(self.bgView);
- make.height.equalTo(@(kShowViewHeight));
- }];
-
- [self.contentScrollView addSubview:self.contentLab];
- [self.contentLab mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.equalTo(self.contentScrollView).offset(0.0);
- make.right.equalTo(self.contentScrollView).offset(0.0);
- make.centerY.equalTo(self.bgView);
- make.height.equalTo(@(kShowViewHeight));
- }];
-
- // [self.bgView addSubview:self.contentLab];
- // [self.contentLab mas_makeConstraints:^(MASConstraintMaker *make) {
- // make.left.equalTo(self.headImgView.mas_right).offset(5.0);
- // make.right.equalTo(self.giftImgView.mas_left).offset(-5.0);
- // make.centerY.equalTo(self.bgView);
- // }];
-
- [self addSubview:self.throughBtn];
- [self.throughBtn mas_makeConstraints:^(MASConstraintMaker *make) {
- make.edges.equalTo(self);
- }];
-
- CGFloat vipWidth = SCREENWIDTH - 30.0 * 2.0;
- [self addSubview:self.levelUpNoticeView];
- [self.levelUpNoticeView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerX.equalTo(self);
- make.centerY.equalTo(self);
- make.width.equalTo(@(vipWidth));
- make.height.equalTo(@(30.0));
- }];
-
- [self addSubview:self.luckyFloatingView];
- [self.luckyFloatingView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerX.equalTo(self);
- make.centerY.equalTo(self);
- make.width.equalTo(@(kMOSuperGiftViewWidth));
- make.height.equalTo(@(kMoBannerHeight));
- }];
- self.luckyFloatingView.hidden = YES;
-
- }
- - (void)setViewModel:(MORtmEntity *)viewModel{
- _viewModel = viewModel;
- MORtmJosnEntity *jsonEntity = (MORtmJosnEntity *)viewModel.data;
-
- self.levelUpNoticeView.hidden = YES;
- self.luckyFloatingView.hidden = YES;
-
- self.bgView.hidden = NO;
- self.timeImgView.hidden = NO;
- self.superNumView.hidden = NO;
- self.headImgView.hidden = NO;
- self.giftImgView.hidden = NO;
- self.rightTagImgView.hidden = NO;
-
-
- if(jsonEntity.type == 26){
- self.bgView.hidden = YES;
- self.timeImgView.hidden = YES;
- self.superNumView.hidden = YES;
- self.headImgView.hidden = YES;
- self.giftImgView.hidden = YES;
- self.rightTagImgView.hidden = YES;
-
- self.levelUpNoticeView.hidden = NO;
- self.levelUpNoticeView.viewModel = viewModel;
-
- return;
- }
-
- if(jsonEntity.type == 4 || jsonEntity.type == 17 || jsonEntity.type == 10){ // 4 / 17 SuperLucky 10 红包
- self.bgView.hidden = YES;
- self.timeImgView.hidden = YES;
- self.superNumView.hidden = YES;
- self.headImgView.hidden = YES;
- self.giftImgView.hidden = YES;
- self.rightTagImgView.hidden = YES;
-
- self.luckyFloatingView.hidden = NO;
- self.luckyFloatingView.viewModel = viewModel;
- return;
- }
-
- if(jsonEntity.type == 4){
- //Super Lucky 飘屏
-
- self.timeImgView.hidden = NO;
- self.superNumView.hidden = YES;
-
- self.giftImgView.hidden = YES;
- CGFloat needOffset = 10.0 + kShowGiftWidth;
- // [self.giftImgView mas_updateConstraints:^(MASConstraintMaker *make) {
- // make.right.equalTo(self.rightTagImgView.mas_left).offset(needOffset);
- // }];
- self.rightTagImgView.hidden = YES;
-
-
- [self.bgImgView setImage:[UIImage imageNamed:@"icon_super_lucky_bg_top"]];
-
- [self.timeImgView setImage:[UIImage imageNamed:@"icon_super_lucky_treasure"]];
-
- MORtmUser *user = jsonEntity.activitySuperLucky2.user;
-
- [self.headImgView sd_setImageWithURL:[NSURL URLWithString:user.avatar] placeholderImage:[UIImage imageNamed:@"icon_mine_placeHolder"]];
-
- NSString *contentStr = [NSString stringWithFormat:@"%@ is happy to win the Superlucky %zd diamonds",user.username,jsonEntity.activitySuperLucky2.diamond];
- self.contentLab.attributedText = [self colorfulStringWith:contentStr Num:jsonEntity.activitySuperLucky2.diamond name:user.username];
- }
- else{
-
- self.timeImgView.hidden = YES;
- self.superNumView.hidden = NO;
-
- CGFloat theSuperNumViewWidth = [MOSuperNumView getTheViewWidth:jsonEntity.giftSuperLucky.multiple];
- [self.superNumView mas_updateConstraints:^(MASConstraintMaker *make) {
- make.width.equalTo(@(theSuperNumViewWidth));
- }];
- self.superNumView.theNum = jsonEntity.giftSuperLucky.multiple;
- [self.superNumView toShowNewNumber];
-
- //礼物暴击 一般500倍以上才会收到
- MORtmUser *user = jsonEntity.giftSuperLucky.user;
- MOGiftInfo *giftInfo = [[MOSvgaSourceManage shareManager] getGiftInfoWithCode:jsonEntity.giftSuperLucky.giftCode];
- [self.headImgView sd_setImageWithURL:[NSURL URLWithString:user.avatar] placeholderImage:[UIImage imageNamed:@"icon_mine_placeHolder"]];
-
- [self.giftImgView mo_setGiftImageWith:giftInfo.giftPath];
-
- NSString *contentStr = [NSString stringWithFormat:@"%@ win %zd diamonds with",user.username,jsonEntity.giftSuperLucky.diamond];
- self.contentLab.attributedText = [self colorfulStringWith:contentStr Num:jsonEntity.giftSuperLucky.diamond];
-
- if(jsonEntity.giftSuperLucky.multiple >= 1000){
- [self.timeImgView setImage:[UIImage imageNamed:@"icon_live_re_1000_time"]];
- [self.bgImgView setImage:[UIImage imageNamed:@"icon_live_re_1000_time_new_bg"]];
- }
- else{
- [self.timeImgView setImage:[UIImage imageNamed:@"icon_live_re_500_time"]];
- [self.bgImgView setImage:[UIImage imageNamed:@"icon_live_re_500_time_new_bg"]];
- }
-
- self.giftImgView.hidden = NO;
- self.rightTagImgView.hidden = NO;
- }
-
-
- }
- - (void)toJudgeNeedAnimationScrollView{
-
- MORtmJosnEntity *jsonEntity = (MORtmJosnEntity *)self.viewModel.data;
-
- if(jsonEntity.type == 26){//升级提示
- [self.levelUpNoticeView toJudgeNeedAnimationScrollView];
- return;
- }
-
- if(jsonEntity.type == 4 || jsonEntity.type == 17 || jsonEntity.type == 10){ // 4 / 17 SuperLucky 10 红包
- [self.luckyFloatingView toJudgeNeedAnimationScrollView];
- return;
- }
-
- // 取消之前的动画
- [self.contentScrollView.layer removeAllAnimations];
- self.contentScrollView.contentOffset = CGPointZero;
-
- if(jsonEntity.type == 4){
- MORtmUser *user = jsonEntity.activitySuperLucky2.user;
- NSString *contentStr = [NSString stringWithFormat:@"%@ is happy to win the Superlucky %zd diamonds",user.username,jsonEntity.activitySuperLucky2.diamond];
- NSAttributedString *tempStr = [self colorfulStringWith:contentStr Num:jsonEntity.activitySuperLucky2.diamond name:user.username];
- CGFloat contentWidth = [MOTextTools getTheAttributedTextWidthWith:tempStr] + 15.0;
-
- CGFloat realSpacing = kMOCrazyShowViewWidth + 10.0 - kShowTimeViewWidth - 10.0 - kShowHeadWidth - 5.0 - 5.0 * 2;
-
- self.contentScrollView.contentSize = CGSizeMake(contentWidth, kShowViewHeight);
- if(contentWidth > realSpacing){
- [UIView animateKeyframesWithDuration:2
- delay:0
- options:UIViewAnimationOptionAutoreverse //动画重复自动反向,需要和上面这个一起用
- |UIViewAnimationOptionCurveLinear //动画的时间曲线,滚动字幕线性比较合理
- animations:^{
- // 计算移动的距离
- CGPoint point = self.contentScrollView.contentOffset;
- point.x = contentWidth - realSpacing;
- self.contentScrollView.contentOffset = point;
- }
- completion:^(BOOL finished) {
- // 重置动画,将 contentOffset 重置为初始值
- self.contentScrollView.contentOffset = CGPointZero;
- }];
- }
-
- }
- else{
- MORtmUser *user = jsonEntity.giftSuperLucky.user;
- NSString *contentStr = [NSString stringWithFormat:@"%@ win %zd diamonds with",user.username,jsonEntity.giftSuperLucky.diamond];
- NSAttributedString *tempStr = [self colorfulStringWith:contentStr Num:jsonEntity.giftSuperLucky.diamond];
- CGFloat contentWidth = [MOTextTools getTheAttributedTextWidthWith:tempStr] + 15.0;
-
- CGFloat realSpacing = kMOCrazyShowViewWidth + kLeftSpacing - kShowTimeViewWidth - 10.0 - kShowHeadWidth + kRightSpacing - kShowGiftWidth - 5.0 - 6.0 - 5.0 * 2;
-
- self.contentScrollView.contentSize = CGSizeMake(contentWidth, kShowViewHeight);
- if(contentWidth > realSpacing){
- [UIView animateKeyframesWithDuration:2
- delay:0
- options:UIViewAnimationOptionAutoreverse //动画重复自动反向,需要和上面这个一起用
- |UIViewAnimationOptionCurveLinear //动画的时间曲线,滚动字幕线性比较合理
- animations:^{
- // 计算移动的距离
- CGPoint point = self.contentScrollView.contentOffset;
- point.x = contentWidth - realSpacing;
- self.contentScrollView.contentOffset = point;
- }
- completion:^(BOOL finished) {
- // 重置动画,将 contentOffset 重置为初始值
- self.contentScrollView.contentOffset = CGPointZero;
- }];
- }
-
- }
- }
- - (NSAttributedString *)colorfulStringWith:(NSString *)contentStr Num:(NSInteger)num name:(NSString *)nameStr{
-
- NSString *needStr;
-
- if(num == 0){
- needStr = contentStr;
- // 创建属性字符串,整体颜色为白色
- NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:needStr attributes:@{NSForegroundColorAttributeName: [MOTools colorWithHexString:@"#F4AEFF" alpha:1.0],NSFontAttributeName : [MOTextTools getTheFontWithSize:kShowGiftFont AndFontName:kNormalContentFontStr]}];
- return attributedString;
- }
- else{
- NSString *numStr = [NSString stringWithFormat:@"%zd",num];
-
- needStr = contentStr;
-
- // 创建属性字符串,整体颜色为白色
- NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:needStr attributes:@{NSForegroundColorAttributeName: [MOTools colorWithHexString:@"#F4AEFF" alpha:1.0],NSFontAttributeName : [MOTextTools getTheFontWithSize:kShowGiftFont AndFontName:kNormalContentFontStr]}];
-
- NSRange blueRange = [needStr rangeOfString:nameStr];
- if(blueRange.location != NSNotFound){
- // 将最后三个字符的颜色设置为红色
- [attributedString addAttribute:NSForegroundColorAttributeName value:[MOTools colorWithHexString:@"#1EE2BB" alpha:1.0] range:blueRange];
- }
-
- NSRange redRange = [needStr rangeOfString:numStr];
- if(redRange.location != NSNotFound){
- // 将最后三个字符的颜色设置为红色
- [attributedString addAttribute:NSForegroundColorAttributeName value:[MOTools colorWithHexString:@"#FFDC9D" alpha:1.0] range:redRange];
- // 设置字体大小的属性
- [attributedString addAttribute:NSFontAttributeName value:[MOTextTools getTheFontWithSize:kShowGiftBigFont AndFontName:kNormalContentBlodFontStr] range:redRange];
- }
- return attributedString;
- }
- }
- - (NSAttributedString *)colorfulStringWith:(NSString *)nameStr Num:(NSInteger)num{
-
- NSString *needStr;
-
- if(num == 0){
- needStr = nameStr;
- // 创建属性字符串,整体颜色为白色
- NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:needStr attributes:@{NSForegroundColorAttributeName: [MOTools colorWithHexString:@"#FFC4C3" alpha:1.0],NSFontAttributeName : [MOTextTools getTheFontWithSize:kShowGiftFont AndFontName:kNormalContentFontStr]}];
- return attributedString;
- }
- else{
- NSString *numStr = [NSString stringWithFormat:@"%zd",num];
-
- needStr = nameStr;
-
- // 创建属性字符串,整体颜色为白色
- NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:needStr attributes:@{NSForegroundColorAttributeName: [MOTools colorWithHexString:@"#FFC4C3" alpha:1.0],NSFontAttributeName : [MOTextTools getTheFontWithSize:kShowGiftFont AndFontName:kNormalContentFontStr]}];
-
- NSRange redRange = [needStr rangeOfString:numStr];
- if(redRange.location != NSNotFound){
- // 将最后三个字符的颜色设置为红色
- [attributedString addAttribute:NSForegroundColorAttributeName value:[MOTools colorWithHexString:@"#FFDC9D" alpha:1.0] range:redRange];
- // 设置字体大小的属性
- [attributedString addAttribute:NSFontAttributeName value:[MOTextTools getTheFontWithSize:kShowGiftBigFont AndFontName:kNormalContentBlodFontStr] range:redRange];
- }
- return attributedString;
- }
- }
- #pragma mark - Lazy
- - (UIView *)bgView{
- if(!_bgView){
- _bgView = [[UIView alloc] init];
- _bgView.backgroundColor = [UIColor clearColor];
- }
- return _bgView;
- }
- - (UIImageView *)timeImgView{
- if (!_timeImgView)
- {
- _timeImgView = [[UIImageView alloc] init];
- _timeImgView.contentMode = UIViewContentModeScaleAspectFill;
- [_timeImgView setImage:[UIImage imageNamed:@"icon_live_re_500_time"]];
- }
- return _timeImgView;
- }
- - (UIImageView *)bgImgView{
- if (!_bgImgView)
- {
- _bgImgView = [[UIImageView alloc] init];
- _bgImgView.contentMode = UIViewContentModeScaleToFill;
- [_bgImgView setImage:[UIImage imageNamed:@"icon_live_re_500_time_bg"]];
- }
- return _bgImgView;
- }
- - (UIImageView *)headImgView{
- if (!_headImgView)
- {
- _headImgView = [[UIImageView alloc] init];
- _headImgView.contentMode = UIViewContentModeScaleAspectFill;
- [_headImgView setImage:[UIImage imageNamed:@"icon_mine_placeHolder"]];
- }
- return _headImgView;
- }
- - (UIImageView *)rightTagImgView{
- if (!_rightTagImgView)
- {
- _rightTagImgView = [[UIImageView alloc] init];
- _rightTagImgView.contentMode = UIViewContentModeScaleAspectFit;
- [_rightTagImgView setImage:[UIImage imageNamed:@"icon_live_right_white"]];
- }
- return _rightTagImgView;
- }
- - (UILabel *)contentLab{
- if (!_contentLab)
- {
- _contentLab = [[UILabel alloc] init];
- _contentLab.text = @"";
- _contentLab.font = [MOTextTools getTheFontWithSize:kShowGiftFont AndFontName:kNormalContentFontStr];
- _contentLab.textColor = [MOTools colorWithHexString:@"#FFC4C3" alpha:1.0];
- _contentLab.textAlignment = NSTextAlignmentRight;
- _contentLab.numberOfLines = 1;
-
- }
- return _contentLab;
- }
- - (UIImageView *)giftImgView{
- if (!_giftImgView)
- {
- _giftImgView = [[UIImageView alloc] init];
- _giftImgView.contentMode = UIViewContentModeScaleAspectFit;
- [_giftImgView setImage:[UIImage imageNamed:@"icon_mine_placeHolder"]];
- }
- return _giftImgView;
- }
- - (UIButton *)throughBtn{
- if(!_throughBtn){
- _throughBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- [_throughBtn setTitle:@"" forState:UIControlStateNormal];
- [_throughBtn addTarget:self action:@selector(allBtnClick) forControlEvents:UIControlEventTouchUpInside];
- }
- return _throughBtn;
- }
- - (void)allBtnClick{
- self.throughRoomBlock ? self.throughRoomBlock(self.viewModel) : nil;
- }
- - (UIScrollView *)contentScrollView{
- if(!_contentScrollView){
- _contentScrollView = [[UIScrollView alloc] init];
- _contentScrollView.contentSize = CGSizeMake(kMOCrazyShowViewWidth, kShowViewHeight);
- _contentScrollView.showsHorizontalScrollIndicator = NO;
- }
- return _contentScrollView;
- }
- - (MOSuperNumView *)superNumView{
- if(!_superNumView){
- _superNumView = [MOSuperNumView moSuperNumView];
- }
- return _superNumView;
- }
- - (MOLevelUpNoticeView *)levelUpNoticeView{
- if(!_levelUpNoticeView){
- CGFloat width = SCREENWIDTH - 30.0 * 2.0;
- _levelUpNoticeView = [[MOLevelUpNoticeView alloc] initWithFrame:CGRectMake(0.0, 0.0, width, 30.0)];
- }
- return _levelUpNoticeView;
- }
- - (MOLuckyFloatingView *)luckyFloatingView{
- if(!_luckyFloatingView){
- _luckyFloatingView = [[MOLuckyFloatingView alloc] initWithFrame:CGRectMake(SCREENWIDTH + kMOSuperGiftViewLeftAndRightSpacing, 0, SCREENWIDTH - 2 * kMOSuperGiftViewLeftAndRightSpacing, kMoBannerHeight)];
- }
- return _luckyFloatingView;
- }
- @end
|