// // QXRoomSeatBarCabinView.m // QXLive // // Created by 启星 on 2026/1/5. // #import "QXRoomSeatBarCabinView.h" #import "QXMineNetwork.h" #import "UIView+FloatingAnimation.h" #import "QXAgoraEngine.h" #import "QXSeductionAlertView.h" @class QXRoomSeatBarCabinGiftView; @interface QXRoomSeatBarCabinView() //倒计时 @property (nonatomic,strong)UIImageView *timeDownBgView; @property (nonatomic,strong)UILabel *timeDownLabel; @property (nonatomic,strong)QXRoomSeatContentView *leftSeatView; //@property (nonatomic,strong)UIImageView *bgImageView; @property (nonatomic,strong)UIImageView *heartCenterImageView; @property (nonatomic,strong)UILabel *numberLabel; @property (nonatomic,strong)QXRoomSeatContentView *rightSeatView; /// 退出房间按钮 @property (nonatomic,strong) UIButton *closeBtn; /// @property (nonatomic,strong) UILabel *titleLabel; @property (nonatomic,strong) UIView *giftContentView; @property (nonatomic,strong) QXRoomSeatBarCabinGiftView *giftView1; @property (nonatomic,strong) QXRoomSeatBarCabinGiftView *giftView2; @property (nonatomic,strong) QXRoomSeatBarCabinGiftView *giftView3; @property (nonatomic,strong) QXRoomSeatBarCabinGiftView *giftView4; @property (nonatomic,strong) QXRoomSeatBarCabinGiftView *giftView5; @property (nonatomic,strong) QXRoomSeatBarCabinGiftView *giftView6; @property (nonatomic,strong) NSMutableArray *dataArray; @property (nonatomic,strong) NSMutableArray *giftViewArray; @property (nonatomic,strong)UIButton *micBtn; @property (nonatomic,strong)UIButton *voiceBtn; @property (nonatomic,strong)UIButton *openCabinBtn; @property (nonatomic,strong)QXTimer *timer; @property (nonatomic,assign)long startTime; @property (nonatomic,assign)BOOL isNoAlert; @end @implementation QXRoomSeatBarCabinView - (instancetype)init { self = [super init]; if (self) { [self initSubviews]; } return self; } -(void)initSubviews{ [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(rechargeSuccess) name:noticeAlipayResult object:nil]; self.titleLabel = [[UILabel alloc] init]; self.titleLabel.text = @"房间名称"; self.titleLabel.font = [UIFont systemFontOfSize:14]; self.titleLabel.textColor = [UIColor whiteColor]; [self addSubview:self.titleLabel]; [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(2); make.left.mas_equalTo(16); make.height.mas_equalTo(ScaleWidth(30)); }]; self.closeBtn = [[UIButton alloc] init]; [self.closeBtn addTarget:self action:@selector(closeAction) forControlEvents:(UIControlEventTouchUpInside)]; [self.closeBtn setImage:[UIImage imageNamed:@"room_close"] forState:(UIControlStateNormal)]; [self addSubview:self.closeBtn]; [self.closeBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.width.height.mas_equalTo(ScaleWidth(40)); make.right.mas_equalTo(-5); make.centerY.equalTo(self.titleLabel); }]; // self.bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_friend_cabin_bg"]]; // self.bgImageView.contentMode = UIViewContentModeScaleToFill; // [self addSubview:self.bgImageView]; // [self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) { // make.left.right.top.equalTo(self); // make.height.mas_equalTo(ScaleWidth(330)); // }]; self.timeDownLabel = [[UILabel alloc] initWithFrame:self.timeDownBgView.frame]; self.timeDownLabel.textColor = [UIColor colorWithHexString:@"#ffffff"]; self.timeDownLabel.font = [UIFont systemFontOfSize:12]; self.timeDownLabel.text = @"倒计时:00:00:00"; self.timeDownLabel.textAlignment = NSTextAlignmentCenter; [self addSubview:self.timeDownLabel]; [self.timeDownLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(self); make.top.equalTo(self.titleLabel.mas_bottom).offset(16); make.height.mas_equalTo(24); }]; self.timeDownBgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_cabin_timedown_bg"]]; self.timeDownBgView.contentMode = UIViewContentModeScaleToFill; [self insertSubview:self.timeDownBgView belowSubview:self.timeDownLabel]; [self.timeDownBgView mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(self.timeDownLabel); }]; self.heartCenterImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bar_room_cabin_heart"]]; [self addSubview:self.heartCenterImageView]; [self.heartCenterImageView mas_makeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(self); make.top.equalTo(self.timeDownBgView).offset(38); make.height.mas_equalTo(ScaleWidth(120)); make.width.mas_equalTo(ScaleWidth(128)); }]; self.numberLabel = [[UILabel alloc] init]; self.numberLabel.text = @"0"; self.numberLabel.textAlignment = NSTextAlignmentCenter; self.numberLabel.textColor = [UIColor colorWithHexString:@"#FF07C5"]; self.numberLabel.font = [UIFont fontWithName:@"DIN Alternate" size:24]; [self addSubview:self.numberLabel]; [self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(self.heartCenterImageView).offset(-5); make.centerX.equalTo(self.heartCenterImageView); }]; self.leftSeatView = [[QXRoomSeatContentView alloc] init]; [self addSubview:self.leftSeatView]; [self.leftSeatView mas_makeConstraints:^(MASConstraintMaker *make) { make.right.equalTo(self.heartCenterImageView.mas_left); make.width.mas_equalTo(ScaleWidth(75)); make.height.mas_equalTo(ScaleWidth(75)+25); make.top.equalTo(self.heartCenterImageView).offset(-7); }]; self.rightSeatView = [[QXRoomSeatContentView alloc] init]; [self addSubview:self.rightSeatView]; [self.rightSeatView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.heartCenterImageView.mas_right); make.width.mas_equalTo(ScaleWidth(75)); make.height.mas_equalTo(ScaleWidth(75)+25); make.top.equalTo(self.leftSeatView); }]; CGFloat giftConetntHeight = 180; CGFloat giftWidth = 72; CGFloat giftHeight = 85; CGFloat giftWidthSpace = (SCREEN_WIDTH-32-giftWidth*4)/3; CGFloat giftHeightSpace = 10; self.giftContentView = [[UIView alloc] init]; [self addSubview:self.giftContentView]; [self.giftContentView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.heartCenterImageView.mas_bottom).offset(-15); make.left.mas_equalTo(16); make.right.mas_equalTo(-16); make.height.mas_equalTo(giftConetntHeight); }]; self.giftView1 = [[QXRoomSeatBarCabinGiftView alloc] initWithFrame:CGRectMake(0, (giftConetntHeight-85)/2, giftWidth, giftHeight)]; self.giftView1.delegate = self; [self.giftContentView addSubview:self.giftView1]; self.giftView2 = [[QXRoomSeatBarCabinGiftView alloc] initWithFrame:CGRectMake(self.giftView1.right+giftWidthSpace, 0, giftWidth, giftHeight)]; self.giftView2.delegate = self; [self.giftContentView addSubview:self.giftView2]; self.giftView3 = [[QXRoomSeatBarCabinGiftView alloc] initWithFrame:CGRectMake(self.giftView2.right+giftWidthSpace, 0, giftWidth, giftHeight)]; self.giftView3.delegate = self; [self.giftContentView addSubview:self.giftView3]; self.giftView4 = [[QXRoomSeatBarCabinGiftView alloc] initWithFrame:CGRectMake(self.giftView3.right+giftWidthSpace, (giftConetntHeight-85)/2, giftWidth, giftHeight)]; self.giftView4.delegate = self; [self.giftContentView addSubview:self.giftView4]; self.giftView5 = [[QXRoomSeatBarCabinGiftView alloc] initWithFrame:CGRectMake(self.giftView1.right+giftWidthSpace, self.giftView2.bottom+giftHeightSpace, giftWidth, giftHeight)]; self.giftView5.delegate = self; [self.giftContentView addSubview:self.giftView5]; self.giftView6 = [[QXRoomSeatBarCabinGiftView alloc] initWithFrame:CGRectMake(self.giftView5.right+giftWidthSpace, self.giftView5.top, giftWidth, giftHeight)]; self.giftView6.delegate = self; [self.giftContentView addSubview:self.giftView6]; [self.giftViewArray addObject:self.giftView1]; [self.giftViewArray addObject:self.giftView2]; [self.giftViewArray addObject:self.giftView3]; [self.giftViewArray addObject:self.giftView4]; [self.giftViewArray addObject:self.giftView5]; [self.giftViewArray addObject:self.giftView6]; // self.playAudioBtn = [[QXBadgeButton alloc] init]; // self.playAudioBtn.tag = 20; // [self.playAudioBtn setImage:[UIImage imageNamed:@"room_event_play_audio_nor"] forState:(UIControlStateNormal)]; // [self.playAudioBtn setImage:[UIImage imageNamed:@"room_event_play_audio_sel"] forState:(UIControlStateSelected)]; // [self.playAudioBtn addTarget:self action:@selector(eventAction:) forControlEvents:(UIControlEventTouchUpInside)]; // self.playAudioBtn.hidden = YES; // [self addSubview:self.playAudioBtn]; // // // self.audioBtn = [[QXBadgeButton alloc] init]; // self.audioBtn.tag = 21; // [self.audioBtn setImage:[UIImage imageNamed:@"room_event_mute_audio_nor"] forState:(UIControlStateNormal)]; // [self.audioBtn setImage:[UIImage imageNamed:@"room_event_mute_audio_sel"] forState:(UIControlStateSelected)]; } -(void)setRoomModel:(QXRoomModel *)roomModel{ _roomModel = roomModel; QXRoomPitModel *pit1 = [[QXRoomPitModel alloc] init]; QXRoomPitModel *pit2 = [[QXRoomPitModel alloc] init];; if ([roomModel.cp_user.user_id isEqualToString:QXGlobal.shareGlobal.loginModel.user_id]) { pit1.user_id = roomModel.cp_user.user_id; pit1.nickname = roomModel.cp_user.nickname; pit1.dress = roomModel.cp_user.dress; pit1.avatar = roomModel.cp_user.avatar; pit2.user_id = roomModel.cp_user.user_id1; pit2.nickname = roomModel.cp_user.nickname1; pit2.dress = roomModel.cp_user.dress1; pit2.avatar = roomModel.cp_user.avatar1; }else{ pit2.user_id = roomModel.cp_user.user_id; pit2.nickname = roomModel.cp_user.nickname; pit2.dress = roomModel.cp_user.dress; pit2.avatar = roomModel.cp_user.avatar; pit1.user_id = roomModel.cp_user.user_id1; pit1.nickname = roomModel.cp_user.nickname1; pit1.dress = roomModel.cp_user.dress1; pit1.avatar = roomModel.cp_user.avatar1; } self.leftSeatView.pitModel = pit1; self.rightSeatView.pitModel = pit2; [self.leftSeatView hideCharm]; [self.rightSeatView hideCharm]; self.titleLabel.text = self.roomModel.room_info.room_name; self.numberLabel.text = self.roomModel.room_info.hot_value; [self startTimer]; [self getGiftList]; } -(void)rechargeSuccess{ [self getWallet]; } -(void)getGiftList{ MJWeakSelf // [QXMineNetwork giftListWithLabel:@"99" roomId:self.roomModel.room_info.room_id successBlock:^(NSArray * _Nonnull list) { // [weakSelf.dataArray removeAllObjects]; // [weakSelf.dataArray addObjectsFromArray:list]; // for (int i = 0; i < list.count; i++) { // if (i < 6) { // QXRoomSeatBarCabinGiftView *giftView = self.giftViewArray[i]; // QXGiftModel *gift = list[i]; // giftView.giftModel = gift; // [giftView startFloating]; // } // } // } failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) { // // }]; // MJWeakSelf [QXMineNetwork getRoomNewGiftListWithLabel:@"16" type:@"6" successBlock:^(NSArray * _Nonnull list) { [weakSelf.dataArray removeAllObjects]; [weakSelf.dataArray addObjectsFromArray:list]; for (int i = 0; i < list.count; i++) { if (i < 6) { QXRoomSeatBarCabinGiftView *giftView = self.giftViewArray[i]; QXGiftModel *gift = list[i]; giftView.giftModel = gift; [giftView startFloating]; } } } failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) { }]; } -(void)didSendGiftWithGiftModel:(QXGiftModel *)giftModel giftView:(QXRoomSeatBarCabinGiftView *)giftView{ if (self.isNoAlert) { [self sendGiftNetWorkWithGiftModel:giftModel giftView:giftView]; }else{ QXSeductionAlertView *seductionView = [[QXSeductionAlertView alloc] init]; seductionView.alertType = QXSeductionAlertTypeSendGift; seductionView.roomId = self.roomModel.room_info.room_id; seductionView.giftModel = giftModel; [seductionView showInView:self.viewController.view]; __weak typeof(self) weakSelf = self; seductionView.commitBlock = ^(BOOL isNoAlert) { __strong typeof(weakSelf) strongSelf = weakSelf; if (!strongSelf) return; strongSelf.isNoAlert = isNoAlert; [strongSelf sendGiftNetWorkWithGiftModel:giftModel giftView:giftView]; }; } } -(void)sendGiftNetWorkWithGiftModel:(QXGiftModel*)giftModel giftView:(QXRoomSeatBarCabinGiftView *)giftView{ NSString *to_uid = @""; if ([self.roomModel.cp_user.user_id isEqualToString:QXGlobal.shareGlobal.loginModel.user_id]) { to_uid = self.roomModel.cp_user.user_id1; }else{ to_uid = self.roomModel.cp_user.user_id; } __weak typeof(self) weakSelf = self; [QXMineNetwork roomSendGiftWithRoomId:self.roomModel.room_info.room_id gift_id:giftModel.gift_id gift_num:@"1" to_uid:to_uid heart_id:@"" type:@"1" pit_number:@"" gift_bag_id:giftModel.gift_bag successBlock:^(NSDictionary * _Nonnull dict) { __strong typeof(weakSelf) strongSelf = weakSelf; if (!strongSelf) return; [strongSelf getWallet]; } failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) { showToast(msg); }]; [giftView stopFloatingAnimation]; [UIView animateWithDuration:0.3 animations:^{ giftView.alpha = 0; } completion:^(BOOL finished) { [self giftViewShow:giftView]; }]; } -(void)getWallet{ __weak typeof(self) weakSelf = self; [QXMineNetwork getWalletInfoSuccessBlock:^(NSString * _Nonnull coin, NSString * _Nonnull earnings, NSString * _Nonnull title, NSString * _Nonnull url) { __strong typeof(weakSelf) strongSelf = weakSelf; if (!strongSelf) return; QXRoomViewController *vc = (QXRoomViewController *)strongSelf.viewController; vc.coinLabel.text = coin; } failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) { }]; } -(void)giftViewShow:(QXRoomSeatBarCabinGiftView*)giftView{ QXGiftModel *gift = [self randomResultGift]; giftView.giftModel = gift; [UIView animateWithDuration:0.3 animations:^{ giftView.alpha = 1; } completion:^(BOOL finished) { [giftView startFloating]; }]; } -(QXGiftModel*)randomResultGift{ NSUInteger randomIndex = arc4random() % self.dataArray.count; QXGiftModel *result = self.dataArray[randomIndex]; return result; } -(void)cabinRoomHotValueDidChanged:(NSString *)hot_value{ self.roomModel.room_info.hot_value = hot_value; self.numberLabel.text = self.roomModel.room_info.hot_value; } -(void)friendCabinRoomTimeDelayWithTime:(NSString*)end_time{ self.roomModel.cp_user.time_day = end_time; [self stopTimer]; [self startTimer]; } -(void)friendCabinRoomIsQuit{ } -(void)startTimer{ MJWeakSelf NSTimeInterval timeInterval = [[NSDate date] timeIntervalSince1970]; // 将秒转换为毫秒 long long milliseconds = (long long)(timeInterval); self.startTime = self.roomModel.cp_user.time_day.longLongValue - milliseconds; if (self.startTime <= 0) { //时间错误不进行倒计时 self.timeDownLabel.text = @"倒计时:00:00:00"; return; } [self stopTimer]; _timer = [QXTimer scheduledTimerWithTimeInterval:1 repeats:YES queue:dispatch_get_main_queue() block:^{ dispatch_async(dispatch_get_main_queue(), ^{ weakSelf.startTime--; NSInteger hour = self.startTime/60/60; NSInteger min = (self.startTime % 3600) / 60; NSInteger second = self.startTime % 60; weakSelf.timeDownLabel.text = [NSString stringWithFormat:@"倒计时:%02ld:%02ld:%02ld",hour,min,(long)second]; if (weakSelf.startTime<=0) { [weakSelf stopTimer]; weakSelf.timeDownLabel.text = @"00:00:00"; } }); }]; } -(void)stopTimer{ if (_timer) { [self->_timer invalidate]; self->_timer= nil; } } -(void)closeAction{ MJWeakSelf UIAlertController *al = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:(UIAlertControllerStyleActionSheet)]; // [al addAction:[UIAlertAction actionWithTitle:@"最小化房间" style:(UIAlertActionStyleDefault) handler:^(UIAlertAction * _Nonnull action) { // [weakSelf miniRoom]; // [[QXGlobal shareGlobal] miniRoomWithRoomId:weakSelf.roomModel.room_info.room_id roomCover:weakSelf.roomModel.room_info.room_cover]; // }]]; [al addAction:[UIAlertAction actionWithTitle:@"退出房间" style:(UIAlertActionStyleDefault) handler:^(UIAlertAction * _Nonnull action) { [weakSelf leaveRoom]; }]]; [al addAction:[UIAlertAction actionWithTitle:@"取消" style:(UIAlertActionStyleCancel) handler:^(UIAlertAction * _Nonnull action) { }]]; [self.viewController presentViewController:al animated:YES completion:nil]; } -(void)leaveRoom{ UINavigationController *na = (UINavigationController *)KEYWINDOW.rootViewController; if ([self.roomModel.room_info.type_id isEqualToString:@"6"] && [self.roomModel.room_info.label_id isEqualToString:@"11"]) { [[QXGlobal shareGlobal] quitRoomWithRoomId:self.roomModel.room_info.room_id removeListener:YES]; NSMutableArray *viewControllers = [NSMutableArray arrayWithArray:na.viewControllers]; for (int i = 0; i < viewControllers.count; i++) { UIViewController *vc = [viewControllers objectAtIndex:i]; if ([vc isEqual:self.viewController]) { QXRoomViewController *roomVc = [[QXRoomViewController alloc] init]; roomVc.roomId = QXGlobal.shareGlobal.superRoomId; [viewControllers insertObject:roomVc atIndex:i]; QXGlobal.shareGlobal.roomVC = roomVc; QXGlobal.shareGlobal.roomId = roomVc.roomId; break; } } [UIApplication sharedApplication].idleTimerDisabled = YES; na.viewControllers = viewControllers; [na popViewControllerAnimated:YES]; QXGlobal.shareGlobal.superRoomId = @""; [[QXRoomMessageManager shared] quitExGroup]; }else{ [[QXGlobal shareGlobal]quitRoomWithRoomId:self.roomModel.room_info.room_id removeListener:YES]; // self.navigationController.interactivePopGestureRecognizer.enabled = YES; [na popViewControllerAnimated:YES]; } } -(void)stopHWDMP4{ [self.leftSeatView stopHWDMP4]; [self.rightSeatView stopHWDMP4]; } -(void)playHWDMP4{ [self.leftSeatView playHWDMP4]; [self.rightSeatView playHWDMP4]; } -(void)destroyViews{ if (_leftSeatView) { [_leftSeatView destroyViews]; _leftSeatView = nil; } if (_rightSeatView) { [_rightSeatView destroyViews]; _rightSeatView = nil; } [self stopTimer]; [[NSNotificationCenter defaultCenter] removeObserver:self]; } -(NSMutableArray *)dataArray{ if (!_dataArray) { _dataArray = [NSMutableArray array]; } return _dataArray; } -(NSMutableArray *)giftViewArray{ if (!_giftViewArray) { _giftViewArray = [NSMutableArray array]; } return _giftViewArray; } @end @implementation QXRoomSeatBarCabinGiftView - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { [self initSubviews]; } return self; } -(void)setGiftModel:(QXGiftModel *)giftModel{ _giftModel = giftModel; [self.giftCoinBtn setTitle:giftModel.gift_price forState:(UIControlStateNormal)]; [self.giftImageView sd_setImageWithURL:[NSURL URLWithString:giftModel.base_image]]; if (giftModel.gift_price.intValue<101) { [self.giftBgImageView mas_remakeConstraints:^(MASConstraintMaker *make) { make.width.height.mas_equalTo(45); make.centerX.equalTo(self); make.top.equalTo(self); }]; [self.giftImageView mas_remakeConstraints:^(MASConstraintMaker *make) { make.left.top.equalTo(self.giftBgImageView).offset(11); make.right.equalTo(self.giftBgImageView).offset(-11); make.height.equalTo(self.giftImageView.mas_width); }]; [self.giftCoinBtn mas_remakeConstraints:^(MASConstraintMaker *make) { make.left.right.equalTo(self); make.top.equalTo(self.giftBgImageView.mas_bottom); make.height.mas_equalTo(16); }]; return; }else if (giftModel.gift_price.intValue > 100 && giftModel.gift_price.intValue < 501){ [self.giftBgImageView mas_remakeConstraints:^(MASConstraintMaker *make) { make.width.height.mas_equalTo(60); make.centerX.equalTo(self); make.top.equalTo(self); }]; [self.giftImageView mas_remakeConstraints:^(MASConstraintMaker *make) { make.left.top.equalTo(self.giftBgImageView).offset(11); make.right.equalTo(self.giftBgImageView).offset(-11); make.height.equalTo(self.giftImageView.mas_width); }]; [self.giftCoinBtn mas_remakeConstraints:^(MASConstraintMaker *make) { make.left.right.equalTo(self); make.top.equalTo(self.giftBgImageView.mas_bottom); make.height.mas_equalTo(16); }]; return; }else{ [self.giftBgImageView mas_remakeConstraints:^(MASConstraintMaker *make) { make.left.right.top.equalTo(self); make.height.equalTo(self.giftBgImageView.mas_width); }]; [self.giftImageView mas_remakeConstraints:^(MASConstraintMaker *make) { make.left.top.equalTo(self.giftBgImageView).offset(11); make.right.equalTo(self.giftBgImageView).offset(-11); make.height.equalTo(self.giftImageView.mas_width); }]; [self.giftCoinBtn mas_remakeConstraints:^(MASConstraintMaker *make) { make.left.right.equalTo(self); make.top.equalTo(self.giftBgImageView.mas_bottom); make.height.mas_equalTo(16); }]; } } -(void)giftAction:(UIButton*)sender{ if (self.delegate && [self.delegate respondsToSelector:@selector(didSendGiftWithGiftModel:giftView:)]) { [self.delegate didSendGiftWithGiftModel:self.giftModel giftView:self]; } } -(void)initSubviews{ self.giftBgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bar_room_cabin_gift_bg"]]; self.giftBgImageView.contentMode = UIViewContentModeScaleToFill; [self addSubview:self.giftBgImageView]; [self.giftBgImageView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.equalTo(self); make.height.equalTo(self.giftBgImageView.mas_width); }]; self.giftImageView = [[UIImageView alloc] init]; self.giftImageView.contentMode = UIViewContentModeScaleToFill; [self addSubview:self.giftImageView]; [self.giftImageView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.top.equalTo(self.giftBgImageView).offset(11); make.right.mas_equalTo(-11); make.height.equalTo(self.giftImageView.mas_width); }]; self.giftCoinBtn = [[UIButton alloc] init]; self.giftCoinBtn.userInteractionEnabled = NO; [self.giftCoinBtn setImage:[UIImage imageNamed:@"mine_live_gift_corn"] forState:(UIControlStateNormal)]; [self.giftCoinBtn setTitleColor:RGB16(0xDBEB23) forState:(UIControlStateNormal)]; [self.giftCoinBtn setTitle:@"0" forState:(UIControlStateNormal)]; self.giftCoinBtn.titleLabel.font = [UIFont systemFontOfSize:12]; [self addSubview:self.giftCoinBtn]; [self.giftCoinBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.equalTo(self); make.top.equalTo(self.giftBgImageView.mas_bottom); make.height.mas_equalTo(16); }]; self.button = [[UIButton alloc] init]; [self.button addTarget:self action:@selector(giftAction:) forControlEvents:(UIControlEventTouchUpInside)]; [self addSubview:self.button]; [self.button mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.bottom.top.equalTo(self); }]; } @end