1.0.30 封版

This commit is contained in:
edwinQQQ
2024-12-06 14:38:45 +08:00
parent 50bc8a28b3
commit 4c94a61da6
35 changed files with 295 additions and 187 deletions

View File

@@ -1,21 +0,0 @@
{
"images" : [
{
"filename" : "gift_tag_latest_ar.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -1,21 +0,0 @@
{
"images" : [
{
"filename" : "gift_tag_latest_en.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -58,7 +58,7 @@
ticket:ticket ticket:ticket
uid:uid uid:uid
page:@(page).stringValue page:@(page).stringValue
pageSize:@"2"]; pageSize:@"20"];
} }
- (void)loadRoomCard:(NSInteger)page - (void)loadRoomCard:(NSInteger)page

View File

@@ -512,7 +512,7 @@ static NSArray<NSDictionary<NSString *, NSNumber *> *> *MyDressUpOptions(void) {
config.imageType = ImageTypeUserIcon; config.imageType = ImageTypeUserIcon;
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_avatarView = [[NetImageView alloc] initWithConfig:config]; _avatarView = [[NetImageView alloc] initWithConfig:config];
[_avatarView setCornerRadius:73/2 [_avatarView setCornerRadius:kGetScaleWidth(73)/2
corners:kCALayerMinXMinYCorner | kCALayerMaxXMinYCorner | kCALayerMinXMaxYCorner | kCALayerMaxXMaxYCorner corners:kCALayerMinXMinYCorner | kCALayerMaxXMinYCorner | kCALayerMinXMaxYCorner | kCALayerMaxXMaxYCorner
borderWidth:2 borderWidth:2
borderColor:UIColorFromRGB(0xFBD99A)]; borderColor:UIColorFromRGB(0xFBD99A)];

View File

@@ -250,7 +250,6 @@
[self.contentView layoutIfNeeded]; [self.contentView layoutIfNeeded];
} }
break; break;
default: default:
break; break;
} }
@@ -258,7 +257,8 @@
self.titleLabel.text = model.name; self.titleLabel.text = model.name;
if (model.dressType == 3) { if (model.dressType == 3) {
[self play:model.effect]; NSString *url = [NSString isEmpty:model.effect] ? model.pic : model.effect;
[self play:url];
self.playButton.hidden = YES; self.playButton.hidden = YES;
self.itemImageView.hidden = YES; self.itemImageView.hidden = YES;
} else { } else {
@@ -306,7 +306,6 @@
} }
#pragma mark - HWDMP4PlayDelegate #pragma mark - HWDMP4PlayDelegate
//truefalse
- (BOOL)shouldStartPlayMP4:(VAPView *)container config:(QGVAPConfigModel *)config { - (BOOL)shouldStartPlayMP4:(VAPView *)container config:(QGVAPConfigModel *)config {
return YES; return YES;
} }
@@ -790,7 +789,7 @@
@property (nonatomic, strong) NSMutableSet<NSNumber *> *requestedPages; // , @property (nonatomic, strong) NSMutableSet<NSNumber *> *requestedPages; // ,
@property (nonatomic, strong) NSIndexPath *selectedIndexPath; @property (nonatomic, strong) NSIndexPath *selectedIndexPath;
@property(nonatomic, strong) NSMutableArray<NSNumber *> *myDressingDataPagesNumbers; // API @property(nonatomic, strong) NSMutableArray<NSNumber *> *myDressingDataPagesNumbers; // API
@property(nonatomic, strong) NSMutableArray<NSNumber *> *myDressingUsingItemPages; //使
@property(nonatomic, assign) NSInteger currengCategoryIndex; @property(nonatomic, assign) NSInteger currengCategoryIndex;
@end @end
@@ -817,6 +816,7 @@
self.dataCache = @{}.mutableCopy; self.dataCache = @{}.mutableCopy;
self.myDressingDataCache = @{}.mutableCopy; self.myDressingDataCache = @{}.mutableCopy;
self.myDressingDataPagesNumbers = @[].mutableCopy; self.myDressingDataPagesNumbers = @[].mutableCopy;
self.myDressingUsingItemPages = @[@(NO), @(NO), @(NO), @(NO), @(NO)].mutableCopy;
self.requestedPages = [NSMutableSet set]; // self.requestedPages = [NSMutableSet set]; //
self.mallItemsScrollView.delegate = self; // self.mallItemsScrollView.delegate = self; //
@@ -981,7 +981,6 @@
- (void)updateItemCollectionViewWithMyDressingData:(NSArray <MyDressingDataModel *>*)data - (void)updateItemCollectionViewWithMyDressingData:(NSArray <MyDressingDataModel *>*)data
pageNum:(NSInteger)pageNum pageNum:(NSInteger)pageNum
atIndex:(NSInteger)index { atIndex:(NSInteger)index {
NSMutableArray <MyDressingDataModel *>*sortedData = data.mutableCopy; NSMutableArray <MyDressingDataModel *>*sortedData = data.mutableCopy;
[sortedData sortUsingComparator:^NSComparisonResult(MyDressingDataModel * _Nonnull obj1, MyDressingDataModel * _Nonnull obj2) { [sortedData sortUsingComparator:^NSComparisonResult(MyDressingDataModel * _Nonnull obj1, MyDressingDataModel * _Nonnull obj2) {
if (obj1.used) { if (obj1.used) {
@@ -999,6 +998,15 @@
NSMutableArray *array = self.myDressingDataCache[@(index)].mutableCopy; NSMutableArray *array = self.myDressingDataCache[@(index)].mutableCopy;
[array addObjectsFromArray:sortedData]; [array addObjectsFromArray:sortedData];
self.myDressingDataCache[@(index)] = array.copy; self.myDressingDataCache[@(index)] = array.copy;
sortedData = array;
}
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"used == 1"];
BOOL containsYes = [sortedData filteredArrayUsingPredicate:predicate].count > 0;
if (containsYes) {
self.myDressingUsingItemPages[index] = @(YES);
} else {
self.myDressingUsingItemPages[index] = @(NO);
} }
if (index < self.itemCollectionViewArray.count) { if (index < self.itemCollectionViewArray.count) {
@@ -1031,11 +1039,8 @@
- (void)refreshCurrentPageData { - (void)refreshCurrentPageData {
UICollectionView *itemView = [self.itemCollectionViewArray xpSafeObjectAtIndex:self.currengCategoryIndex]; UICollectionView *itemView = [self.itemCollectionViewArray xpSafeObjectAtIndex:self.currengCategoryIndex];
if (itemView) { if (itemView) {
// [itemView setContentOffset:CGPointZero animated:YES]; [self handlePullToRefresh:itemView.refreshControl];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ }
[self handlePullToRefresh:itemView.refreshControl];
});
}
} }
@@ -1083,6 +1088,10 @@
cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MyDressingItemCard_NotUsed" cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MyDressingItemCard_NotUsed"
forIndexPath:indexPath]; forIndexPath:indexPath];
cell.model = nil; cell.model = nil;
NSNumber *isUsed = [self.myDressingUsingItemPages xpSafeObjectAtIndex:collectionView.tag];
if (isUsed) {
cell.selected = !isUsed.boolValue;
}
} else { } else {
cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MyDressingItemCard" cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MyDressingItemCard"
forIndexPath:indexPath]; forIndexPath:indexPath];
@@ -1174,7 +1183,7 @@
} }
- (void)addLoadMoreForCollectionView:(UICollectionView *)collectionView { - (void)addLoadMoreForCollectionView:(UICollectionView *)collectionView {
if (collectionView.tag == 0) { if (collectionView.tag == 0 || collectionView.tag == 1) {
return; return;
} }
@kWeakify(self); @kWeakify(self);

View File

@@ -134,6 +134,36 @@
self.itemImageView.imageUrl = myDressingModel.pic; self.itemImageView.imageUrl = myDressingModel.pic;
self.nameLabel.text = myDressingModel.name; self.nameLabel.text = myDressingModel.name;
if (myDressingModel.dressType == 3) {
switch (myDressingModel.effectType) {
case 1:{
[self addSubview:self.mp4View];
[self.mp4View mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.itemImageView);
}];
self.mp4Parser = [[XPRoomGiftAnimationParser alloc] init];
NSString *url = [NSString isEmpty:myDressingModel.effect] ? myDressingModel.pic : myDressingModel.effect;
@kWeakify(self);
[self.mp4Parser parseWithURL:url
completionBlock:^(NSString * _Nullable videoUrl) {
@kStrongify(self);
if (![NSString isEmpty:videoUrl]) {
[self.mp4View playHWDMP4:videoUrl repeatCount:-1 delegate:nil];
}
} failureBlock:^(NSError * _Nullable error) { }];
}
self.itemImageView.hidden = YES;
break;
case 0:
case 2:
default:
break;
}
}
if (self.isVaild) { if (self.isVaild) {
self.buyButton.hidden = NO; self.buyButton.hidden = NO;
self.pricePerDayLabel.attributedText = [myDressingModel generateAttributedStringWithIncludeOriginalPrice:YES]; self.pricePerDayLabel.attributedText = [myDressingModel generateAttributedStringWithIncludeOriginalPrice:YES];
@@ -176,7 +206,7 @@
[self addSubview:self.nameLabel]; [self addSubview:self.nameLabel];
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) { [self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self); make.leading.trailing.mas_equalTo(self).inset(6);
make.top.mas_equalTo(self.itemImageBGView.mas_bottom).offset(4); make.top.mas_equalTo(self.itemImageBGView.mas_bottom).offset(4);
make.height.mas_equalTo(22); make.height.mas_equalTo(22);
}]; }];

View File

@@ -132,6 +132,9 @@ NSString * const kMessageShowReadDotKey = @"kMessageShowReadDotKey";
#pragma mark - UITableViewDelegate #pragma mark - UITableViewDelegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
if (self.recentSessions.count == 0) {
return;
}
[tableView deselectRowAtIndexPath:indexPath animated:YES]; [tableView deselectRowAtIndexPath:indexPath animated:YES];
if (self.openType == SessionListOpenTypeRoom) { if (self.openType == SessionListOpenTypeRoom) {
NIMRecentSession *recentSession = self.recentSessions[indexPath.row]; NIMRecentSession *recentSession = self.recentSessions[indexPath.row];

View File

@@ -110,6 +110,7 @@ HWDMP4PlayDelegate>
/// ///
@property (nonatomic, strong) SpriteSheetImageManager *manager; @property (nonatomic, strong) SpriteSheetImageManager *manager;
@property (nonatomic, strong) SVGAImageView *headWearSvgaImageView; @property (nonatomic, strong) SVGAImageView *headWearSvgaImageView;
@property (nonatomic, strong) SVGAImageView *headWearSvgaImageView_cp_me;
@property (nonatomic, strong) SVGAImageView *headWearSvgaImageView_cp; @property (nonatomic, strong) SVGAImageView *headWearSvgaImageView_cp;
@property (nonatomic, strong) UIImageView *cpAvatarHeart; @property (nonatomic, strong) UIImageView *cpAvatarHeart;
@@ -335,6 +336,12 @@ HWDMP4PlayDelegate>
make.leading.mas_equalTo(self.headWearSvgaImageView.mas_trailing).offset(kGetScaleWidth(16)); make.leading.mas_equalTo(self.headWearSvgaImageView.mas_trailing).offset(kGetScaleWidth(16));
make.centerY.equalTo(self.userInfoView.mas_top); make.centerY.equalTo(self.userInfoView.mas_top);
}]; }];
[self addSubview:self.headWearSvgaImageView_cp_me];
[self.headWearSvgaImageView_cp_me mas_makeConstraints:^(MASConstraintMaker *make) {
make.center.mas_equalTo(self.avatarView);
make.width.height.mas_equalTo(kGetScaleWidth(114));
}];
[self addSubview:self.headWearSvgaImageView_cp]; [self addSubview:self.headWearSvgaImageView_cp];
[self.headWearSvgaImageView_cp mas_makeConstraints:^(MASConstraintMaker *make) { [self.headWearSvgaImageView_cp mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -908,6 +915,8 @@ HWDMP4PlayDelegate>
if (level == 0) { if (level == 0) {
return; return;
} }
self.headWearSvgaImageView.videoItem = nil;
[self.headWearSvgaImageView stopAnimation];
@kWeakify(self); @kWeakify(self);
SVGAParser *parser = [SVGAParser new]; SVGAParser *parser = [SVGAParser new];
@@ -915,10 +924,10 @@ HWDMP4PlayDelegate>
inBundle:[NSBundle mainBundle] inBundle:[NSBundle mainBundle]
completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
@kStrongify(self); @kStrongify(self);
self.headWearSvgaImageView.hidden = NO; self.headWearSvgaImageView_cp_me.hidden = NO;
self.headWearSvgaImageView_cp.hidden = NO; self.headWearSvgaImageView_cp.hidden = NO;
self.headWearSvgaImageView.videoItem = videoItem; self.headWearSvgaImageView_cp_me.videoItem = videoItem;
[self.headWearSvgaImageView startAnimation]; [self.headWearSvgaImageView_cp_me startAnimation];
self.headWearSvgaImageView_cp.videoItem = videoItem; self.headWearSvgaImageView_cp.videoItem = videoItem;
[self.headWearSvgaImageView_cp startAnimation]; [self.headWearSvgaImageView_cp startAnimation];
} failureBlock:^(NSError * _Nonnull error) { } failureBlock:^(NSError * _Nonnull error) {
@@ -1336,6 +1345,18 @@ HWDMP4PlayDelegate>
return _headWearSvgaImageView; return _headWearSvgaImageView;
} }
- (SVGAImageView *)headWearSvgaImageView_cp_me {
if (!_headWearSvgaImageView_cp_me) {
_headWearSvgaImageView_cp_me = [[SVGAImageView alloc]init];
_headWearSvgaImageView_cp_me.hidden = YES;
_headWearSvgaImageView_cp_me.backgroundColor = [UIColor clearColor];
_headWearSvgaImageView_cp_me.frame = self.bounds;
_headWearSvgaImageView_cp_me.userInteractionEnabled = YES;
_headWearSvgaImageView_cp_me.autoPlay = YES;
}
return _headWearSvgaImageView_cp_me;
}
- (SVGAImageView *)headWearSvgaImageView_cp { - (SVGAImageView *)headWearSvgaImageView_cp {
if (!_headWearSvgaImageView_cp) { if (!_headWearSvgaImageView_cp) {
_headWearSvgaImageView_cp = [[SVGAImageView alloc]init]; _headWearSvgaImageView_cp = [[SVGAImageView alloc]init];
@@ -1393,13 +1414,7 @@ HWDMP4PlayDelegate>
if (!_personalBGMP4) { if (!_personalBGMP4) {
_personalBGMP4 = [[VAPView alloc] initWithFrame:CGRectMake(0, kGetScaleWidth(-82/2), KScreenWidth, kGetScaleWidth(370))]; _personalBGMP4 = [[VAPView alloc] initWithFrame:CGRectMake(0, kGetScaleWidth(-82/2), KScreenWidth, kGetScaleWidth(370))];
_personalBGMP4.contentMode = UIViewContentModeScaleAspectFill; _personalBGMP4.contentMode = UIViewContentModeScaleAspectFill;
// _vapView.
_personalBGMP4.hwd_Delegate = self; _personalBGMP4.hwd_Delegate = self;
// @kWeakify(self);
// [_vapView addVapTapGesture:^(UIGestureRecognizer *gestureRecognizer, BOOL insideSource, QGVAPSourceDisplayItem *source) {
// @kStrongify(self);
// [self removeCPAnimation];
// }];
} }
return _personalBGMP4; return _personalBGMP4;
} }

View File

@@ -21,6 +21,8 @@
- (instancetype)initWithFrame:(CGRect)frame { - (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) { if (self = [super initWithFrame:frame]) {
self.backgroundColor = [UIColor clearColor];
self.contentView.backgroundColor = [UIColor clearColor];
[self.contentView addSubview:self.selectedStatusImageView]; [self.contentView addSubview:self.selectedStatusImageView];
[self.selectedStatusImageView mas_makeConstraints:^(MASConstraintMaker *make) { [self.selectedStatusImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(self.contentView); make.centerY.mas_equalTo(self.contentView);
@@ -106,7 +108,7 @@
[self updateUI]; [self updateUI];
} failure:^(NSError * _Nonnull error) { } failure:^(NSError * _Nonnull error) {
@kStrongify(self); @kStrongify(self);
[self dismissViewControllerAnimated:YES completion:nil]; [self.navigationController popViewControllerAnimated:YES];
}]; }];
} }
@@ -165,6 +167,12 @@
make.height.mas_equalTo(140); make.height.mas_equalTo(140);
}]; }];
[self.view addSubview:self.placeholderLabel];
[self.placeholderLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.reasonTextView).offset(10);
make.leading.trailing.mas_equalTo(self.reasonTextView).inset(12);
}];
[self.view addSubview:self.blockButton]; [self.view addSubview:self.blockButton];
[self.blockButton mas_makeConstraints:^(MASConstraintMaker *make) { [self.blockButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self.view); make.centerX.mas_equalTo(self.view);
@@ -198,7 +206,7 @@
} }
- (void)didTapBlock { - (void)didTapBlock {
if ([NSString isEmpty:self.reasonTextView.text]) { if (self.reasonTextView.text.length == 0) {
} else { } else {
@kWeakify(self); @kWeakify(self);
@@ -207,7 +215,7 @@
resaon:self.reasonTextView.text resaon:self.reasonTextView.text
success:^{ success:^{
@kStrongify(self); @kStrongify(self);
[self dismissViewControllerAnimated:YES completion:nil]; [self.navigationController popViewControllerAnimated:YES];
} failure:^(NSError * _Nonnull error) { } failure:^(NSError * _Nonnull error) {
}]; }];
@@ -226,8 +234,8 @@
#pragma mark - UITextViewDelegate #pragma mark - UITextViewDelegate
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
NSString *newText = [textView.text stringByReplacingCharactersInRange:range withString:text]; NSString *newText = [textView.text stringByReplacingCharactersInRange:range withString:text];
self.placeholderLabel.hidden = ![NSString isEmpty:newText]; self.placeholderLabel.hidden = newText.length != 0;
self.blockButton.alpha = [NSString isEmpty:newText] ? 0.5 : 1; self.blockButton.alpha = newText.length == 0 ? 0.5 : 1;
return YES; return YES;
} }
@@ -304,6 +312,7 @@
_blockedTimeCollectionView.allowsMultipleSelection = NO; _blockedTimeCollectionView.allowsMultipleSelection = NO;
_blockedTimeCollectionView.delegate = self; _blockedTimeCollectionView.delegate = self;
_blockedTimeCollectionView.dataSource = self; _blockedTimeCollectionView.dataSource = self;
_blockedTimeCollectionView.backgroundColor = [UIColor whiteColor];
[_blockedTimeCollectionView registerClass:[BlockHourCell class] forCellWithReuseIdentifier:@"BlockHourCell"]; [_blockedTimeCollectionView registerClass:[BlockHourCell class] forCellWithReuseIdentifier:@"BlockHourCell"];
} }
return _blockedTimeCollectionView; return _blockedTimeCollectionView;
@@ -315,13 +324,7 @@
_reasonTextView.delegate = self; _reasonTextView.delegate = self;
[_reasonTextView setCornerRadius:10]; [_reasonTextView setCornerRadius:10];
_reasonTextView.backgroundColor = UIColorFromRGB(0xf6f6f6); _reasonTextView.backgroundColor = UIColorFromRGB(0xf6f6f6);
_reasonTextView.textColor = [UIColor darkGrayColor];
[_reasonTextView addSubview:self.placeholderLabel];
[self.placeholderLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(10);
make.leading.mas_equalTo(12);
make.trailing.mas_equalTo(-12);
}];
} }
return _reasonTextView; return _reasonTextView;
} }
@@ -345,6 +348,7 @@
_placeholderLabel = [UILabel labelInitWithText:YMLocalizedString(@"1.0.30_text_30") _placeholderLabel = [UILabel labelInitWithText:YMLocalizedString(@"1.0.30_text_30")
font:kFontRegular(14) font:kFontRegular(14)
textColor:UIColorFromRGB(0x7b7b7d)]; textColor:UIColorFromRGB(0x7b7b7d)];
_placeholderLabel.numberOfLines = 0;
} }
return _placeholderLabel; return _placeholderLabel;
} }

View File

@@ -48,7 +48,6 @@
self.membersCount = (kGetScaleWidth(345) - kGetScaleWidth(90))/kGetScaleWidth(20); self.membersCount = (kGetScaleWidth(345) - kGetScaleWidth(90))/kGetScaleWidth(20);
for (int i = 0; i < self.membersCount; i++) { for (int i = 0; i < self.membersCount; i++) {
// for (int i = 0; i < 20; i++) {
NetImageConfig *config = [[NetImageConfig alloc]init]; NetImageConfig *config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
NetImageView *iconView = [[NetImageView alloc]initWithConfig:config]; NetImageView *iconView = [[NetImageView alloc]initWithConfig:config];
@@ -126,8 +125,6 @@
[self.rankImageView mas_makeConstraints:^(MASConstraintMaker *make) { [self.rankImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.contentView).insets(UIEdgeInsetsMake(-20, -10, 0, -10)); make.edges.mas_equalTo(self.contentView).insets(UIEdgeInsetsMake(-20, -10, 0, -10));
// make.center.mas_equalTo(self.contentView);
// make.size.mas_equalTo(self.contentView).multipliedBy(1.1);
}]; }];
[self.tagImageView mas_makeConstraints:^(MASConstraintMaker *make) { [self.tagImageView mas_makeConstraints:^(MASConstraintMaker *make) {

View File

@@ -99,8 +99,8 @@
extModel.gender = userInfo.gender; extModel.gender = userInfo.gender;
extModel.fromSayHelloChannel = userInfo.fromSayHelloChannel; extModel.fromSayHelloChannel = userInfo.fromSayHelloChannel;
extModel.platformRole = userInfo.platformRole; extModel.platformRole = userInfo.platformRole;
extModel.nick = userInfo.nick;
NSMutableDictionary *ext = [NSMutableDictionary dictionaryWithObject:extModel.model2dictionary forKey:[NSString stringWithFormat:@"%ld", userInfo.uid]]; NSMutableDictionary *ext = [NSMutableDictionary dictionaryWithObject:extModel.model2dictionary forKey:[NSString stringWithFormat:@"%ld", userInfo.uid]];
request.roomExt = [ext toJSONString]; request.roomExt = [ext toJSONString];
@kWeakify(self); @kWeakify(self);

View File

@@ -186,9 +186,9 @@ PIUniversalBannerViewDelegate>
@property (nonatomic, strong) AttachmentModel *cpAttachment; @property (nonatomic, strong) AttachmentModel *cpAttachment;
@property(nonatomic, strong) GiftReceiveInfoModel *mp4TempReceiveInfoModel; @property(nonatomic, strong) GiftReceiveInfoModel *mp4TempReceiveInfoModel;
@property(nonatomic, strong) NetImageView *mp4AvatarLoader_1; //@property(nonatomic, strong) NetImageView *mp4AvatarLoader_1;
@property(nonatomic, strong) NetImageView *mp4AvatarLoader_2; //@property(nonatomic, strong) NetImageView *mp4AvatarLoader_2;
@property(nonatomic, strong) NSMutableArray *embeddedTargetDatas; @property(nonatomic, strong) NSMutableArray *avatarLoaders;
@end @end
@@ -308,6 +308,20 @@ PIUniversalBannerViewDelegate>
GiftReceiveInfoModel * receiveInfo = [GiftReceiveInfoModel modelWithJSON:attachment.data]; GiftReceiveInfoModel * receiveInfo = [GiftReceiveInfoModel modelWithJSON:attachment.data];
if (attachment.second == Custom_Message_Sub_Gift_EmbeddedStyle) { if (attachment.second == Custom_Message_Sub_Gift_EmbeddedStyle) {
if (receiveInfo.giftVo) {
receiveInfo.gift = receiveInfo.giftVo;
// receiveInfo.targetUid = receiveInfo.recvUserUid;
// receiveInfo.targetNick = receiveInfo.recvUserNick;
// receiveInfo.targetUids = @[receiveInfo.recvUserUid];
// if (<#condition#>) {
// <#statements#>
// }
// [data setObject:[[obj objectForKey:@"uid"] stringValue] forKey:@"targetUid"];
// [data setObject:[obj objectForKey:@"nick"] forKey:@"targetNick"];
// [data setObject:[obj objectForKey:@"avatar"] forKey:@"targetAvatar"];
}
// TODO:
receiveInfo.targetUid = [[attachment.data objectForKey:@"recvUserUid"] stringValue]; receiveInfo.targetUid = [[attachment.data objectForKey:@"recvUserUid"] stringValue];
receiveInfo.targetNick = [attachment.data objectForKey:@"recvUserNick"]; receiveInfo.targetNick = [attachment.data objectForKey:@"recvUserNick"];
receiveInfo.targetAvatar = [attachment.data objectForKey:@"recvUserAvatar"]; receiveInfo.targetAvatar = [attachment.data objectForKey:@"recvUserAvatar"];
@@ -327,11 +341,7 @@ PIUniversalBannerViewDelegate>
receiveInfo.targetUids = @[@(receiveInfo.uid.integerValue)]; receiveInfo.targetUids = @[@(receiveInfo.uid.integerValue)];
} }
} }
if (!_embeddedTargetDatas) {
_embeddedTargetDatas = @[].mutableCopy;
}
receiveInfo.isLuckyBagGift = attachment.second == Custom_Message_Sub_Gift_LuckySend; receiveInfo.isLuckyBagGift = attachment.second == Custom_Message_Sub_Gift_LuckySend;
receiveInfo.isBatch = (attachment.second == Custom_Message_Sub_AllBatchSend || attachment.second == Custom_Message_Sub_AllBatchMicroLuckySend); receiveInfo.isBatch = (attachment.second == Custom_Message_Sub_AllBatchSend || attachment.second == Custom_Message_Sub_AllBatchMicroLuckySend);
receiveInfo.isComboBatch = attachment.second == Custom_Message_Sub_AllMicroSend; receiveInfo.isComboBatch = attachment.second == Custom_Message_Sub_AllMicroSend;
@@ -350,16 +360,12 @@ PIUniversalBannerViewDelegate>
} }
} }
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
if (receiveInfo.gift.notifyFull) {
return;
}
[self receiveGift:receiveInfo]; [self receiveGift:receiveInfo];
}); });
} else { } else {
if (receiveInfo.gift.notifyFull) { if (receiveInfo.gift.notifyFull && attachment.second == Custom_Message_Sub_Gift_Send) {
return; return;
} }
[self.embeddedTargetDatas insertObject:receiveInfo atIndex:0];
[self receiveGift:receiveInfo]; [self receiveGift:receiveInfo];
} }
} else if (attachment.first == CustomMessageType_AllMicroSend) { // } else if (attachment.first == CustomMessageType_AllMicroSend) { //
@@ -385,15 +391,9 @@ PIUniversalBannerViewDelegate>
} }
} }
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
if (receiveInfo.gift.notifyFull) {
return;
}
[self receiveGift:receiveInfo]; [self receiveGift:receiveInfo];
}); });
} else { } else {
if (receiveInfo.gift.notifyFull) {
return;
}
[self receiveGift:receiveInfo]; [self receiveGift:receiveInfo];
} }
} else if (attachment.first == CustomMessageType_LuckyBag ) {// } else if (attachment.first == CustomMessageType_LuckyBag ) {//
@@ -1114,18 +1114,28 @@ PIUniversalBannerViewDelegate>
#pragma mark - XXX #pragma mark - XXX
- (void)userEnterRoom:(NIMChatroomNotificationContent *)content ext:(XPMessageRemoteExtModel *)extModel { - (void)userEnterRoom:(NIMChatroomNotificationContent *)content ext:(XPMessageRemoteExtModel *)extModel {
NSString *userName = content.source.nick;
if ([NSString isEmpty:userName] && content.source.userId.intValue == self.delegate.getUserInfo.uid) {
userName = self.delegate.getUserInfo.nick;
} else if ([NSString isEmpty:userName]) {
userName = extModel.nick;
} else if ([NSString isEmpty:userName]) {
userName = @"";
}
if(extModel.enterRoomEffects.length > 0){ if(extModel.enterRoomEffects.length > 0){
NSString * title = [NSString stringWithFormat:YMLocalizedString(@"XPRoomAnimationView0"), content.source.nick]; NSString * title = [NSString stringWithFormat:YMLocalizedString(@"XPRoomAnimationView0"), userName];
if (self.enterEffectQueue.count ==0) { if (self.enterEffectQueue.count ==0) {
[self playUserEnterRoomAnimation:title experLevelSeq:extModel.experLevelSeq effectPath:extModel.enterRoomEffects]; [self playUserEnterRoomAnimation:title experLevelSeq:extModel.experLevelSeq effectPath:extModel.enterRoomEffects];
} }
NSDictionary * dic= @{@"title":title, @"experLevelSeq":[NSString stringWithFormat:@"%ld", extModel.experLevelSeq], @"effectPath" : extModel.enterRoomEffects.length ? extModel.enterRoomEffects : @""}; NSDictionary * dic= @{@"title":title, @"experLevelSeq":[NSString stringWithFormat:@"%ld", extModel.experLevelSeq], @"effectPath" : extModel.enterRoomEffects.length ? extModel.enterRoomEffects : @""};
[self.enterEffectQueue addObject:dic]; [self.enterEffectQueue addObject:dic];
return; return;
} else if (extModel.experLevelSeq < 30) {
return;
} }
if (extModel.experLevelSeq < 30) return; NSString * title = [NSString stringWithFormat:YMLocalizedString(@"XPRoomAnimationView0"), userName];
NSString * title = [NSString stringWithFormat:YMLocalizedString(@"XPRoomAnimationView0"), content.source.nick];
if (self.enterEffectQueue.count ==0) { if (self.enterEffectQueue.count ==0) {
[self playUserEnterRoomAnimation:title experLevelSeq:extModel.experLevelSeq effectPath:extModel.enterRoomEffects]; [self playUserEnterRoomAnimation:title experLevelSeq:extModel.experLevelSeq effectPath:extModel.enterRoomEffects];
} }
@@ -1141,14 +1151,17 @@ PIUniversalBannerViewDelegate>
NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:26], NSForegroundColorAttributeName:[UIColor whiteColor]}]; NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:26], NSForegroundColorAttributeName:[UIColor whiteColor]}];
[attribute setYy_alignment:NSTextAlignmentLeft]; [attribute setYy_alignment:NSTextAlignmentLeft];
BOOL needRemoveHandly = NO;
if (effectPath.length > 0) { if (effectPath.length > 0) {
needRemoveHandly = YES;
@kWeakify(self); @kWeakify(self);
[self.parser parseWithURL:[NSURL URLWithString:effectPath] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { [self.parser parseWithURL:[NSURL URLWithString:effectPath] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
@kStrongify(self); @kStrongify(self);
self.enterEffectView.loops = 2; self.enterEffectView.loops = 0;
self.enterEffectView.hidden = NO; self.enterEffectView.hidden = NO;
self.enterEffectView.clearsAfterStop = NO; self.enterEffectView.clearsAfterStop = YES;
self.enterEffectView.alpha = 1; self.enterEffectView.alpha = 1;
self.enterEffectView.videoItem = videoItem; self.enterEffectView.videoItem = videoItem;
[self.enterEffectView setAttributedText:attribute forKey:@"room_text"]; [self.enterEffectView setAttributedText:attribute forKey:@"room_text"];
@@ -1191,9 +1204,21 @@ PIUniversalBannerViewDelegate>
NSLog(@"%@", error); NSLog(@"%@", error);
}]; }];
} }
[UIView animateWithDuration:0.5 animations:^{ [UIView animateWithDuration:0.5 animations:^{
self.enterEffectView.frame = CGRectMake(0, 339 + kSafeAreaTopHeight, KScreenWidth, effectPath.length ? 75 : 40); self.enterEffectView.frame = CGRectMake(0, 339 + kSafeAreaTopHeight, KScreenWidth, effectPath.length ? 75 : 40);
} completion:^(BOOL finished) { } completion:^(BOOL finished) {
if (needRemoveHandly) {
// dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
// [self.enterEffectView stopAnimation];
// });
[UIView animateWithDuration:0.5 delay:1 options:UIViewAnimationOptionCurveEaseInOut animations:^{
self.enterEffectView.frame = CGRectMake(-KScreenWidth, 339 + kSafeAreaTopHeight, KScreenWidth, effectPath.length ? 75 : 40);
} completion:^(BOOL finished) {
[self.enterEffectView stopAnimation];
[self svgaPlayerDidFinishedAnimation:self.enterEffectView];
}];
}
}]; }];
} }
@@ -2287,7 +2312,7 @@ PIUniversalBannerViewDelegate>
@kWeakify(self); @kWeakify(self);
dispatch_source_set_event_handler(_timer, ^{ dispatch_source_set_event_handler(_timer, ^{
@kStrongify(self) @kStrongify(self)
NSLog(@"******************* 当前队列个数: %@", @(self.svgaQueue.count)); NSLog(@"******************* 当前队列个数: %@image loader 个数: %@", @(self.svgaQueue.count), @(self.avatarLoaders.count));
if (self.svgaQueue.count > 0) { if (self.svgaQueue.count > 0) {
dispatch_sync(dispatch_get_main_queue(), ^{ dispatch_sync(dispatch_get_main_queue(), ^{
if(self.isLargeGiftAnimating == NO){ if(self.isLargeGiftAnimating == NO){
@@ -2474,6 +2499,9 @@ PIUniversalBannerViewDelegate>
NSString *encodingUrl = [vapUrl pureURLString]; NSString *encodingUrl = [vapUrl pureURLString];
NSString *fileName = [[encodingUrl componentsSeparatedByString:@"/"] lastObject]; NSString *fileName = [[encodingUrl componentsSeparatedByString:@"/"] lastObject];
NSString *fullPath = [self.GiftDynamicEffectListPath stringByAppendingPathComponent:fileName]; NSString *fullPath = [self.GiftDynamicEffectListPath stringByAppendingPathComponent:fileName];
self.avatarLoaders = @[].mutableCopy;
if ([[NSFileManager defaultManager] fileExistsAtPath:fullPath]){ if ([[NSFileManager defaultManager] fileExistsAtPath:fullPath]){
vapUrl = fullPath; vapUrl = fullPath;
@@ -2833,6 +2861,9 @@ PIUniversalBannerViewDelegate>
if (self.mp4TempReceiveInfoModel) { if (self.mp4TempReceiveInfoModel) {
dispatch_async(dispatch_get_main_queue(), ^{ dispatch_async(dispatch_get_main_queue(), ^{
QGVAPSourceInfo *info = (QGVAPSourceInfo *)context[@"resource"]; QGVAPSourceInfo *info = (QGVAPSourceInfo *)context[@"resource"];
NSLog(@" MP4 的 key - info.contentTag : %@", info.contentTag);
if ([info.contentTag isEqualToString:@"avatar1"]) { if ([info.contentTag isEqualToString:@"avatar1"]) {
if ([NSString isEmpty:self.mp4TempReceiveInfoModel.avatar]) { if ([NSString isEmpty:self.mp4TempReceiveInfoModel.avatar]) {
completionBlock(kImage(@"common_avatar"), nil, @"dafeult image"); completionBlock(kImage(@"common_avatar"), nil, @"dafeult image");
@@ -2851,24 +2882,29 @@ PIUniversalBannerViewDelegate>
return; return;
break; break;
} }
self.mp4AvatarLoader_1 = [[NetImageView alloc] init];
[self.mp4AvatarLoader_1 loadImageWithUrl:path completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) { NetImageView *avatar_1_Loader = [[NetImageView alloc] init];
[avatar_1_Loader loadImageWithUrl:path completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
completionBlock(image, nil, urlStr); completionBlock(image, nil, urlStr);
}]; }];
[self.avatarLoaders addObject:avatar_1_Loader];
} }
} }
else if ([info.contentTag isEqualToString:@"avatar2"] ) { else if ([info.contentTag isEqualToString:@"avatar2"] ) {
GiftReceiveInfoModel *infoModel = self.mp4TempReceiveInfoModel;// [self.embeddedTargetDatas lastObject]; GiftReceiveInfoModel *infoModel = self.mp4TempReceiveInfoModel;// [self.embeddedTargetDatas lastObject];
if (!infoModel || [NSString isEmpty:infoModel.targetAvatar]) { if (!infoModel || [NSString isEmpty:infoModel.targetAvatar]) {
completionBlock(kImage(@"common_avatar"), nil, @"dafeult image"); completionBlock(kImage(@"common_avatar"), nil, @"dafeult image");
} else { } else {
self.mp4AvatarLoader_2 = [[NetImageView alloc] init];
[self.mp4AvatarLoader_2 loadImageWithUrl:infoModel.targetAvatar completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) { NetImageView *avatar_2_Loader = [[NetImageView alloc] init];
[avatar_2_Loader loadImageWithUrl:infoModel.targetAvatar completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
completionBlock(image, nil, urlStr); completionBlock(image, nil, urlStr);
}]; }];
[self.avatarLoaders addObject:avatar_2_Loader];
} }
} else { } else {
completionBlock(nil, nil, @"completionBlock"); completionBlock(kImage(@"common_avatar"), nil, @"completionBlock");
} }
}); });
} }
@@ -2877,11 +2913,11 @@ PIUniversalBannerViewDelegate>
- (NSString *)contentForVapTag:(NSString *)tag resource:(QGVAPSourceInfo *)info { - (NSString *)contentForVapTag:(NSString *)tag resource:(QGVAPSourceInfo *)info {
NSString *name1 = @""; NSString *name1 = @"";
switch (self.mp4TempReceiveInfoModel.gift.showAvatarType) { switch (self.mp4TempReceiveInfoModel.gift.showAvatarType) {
case 1: // 使 avatar case 1:
case 3: case 3:
name1 = self.mp4TempReceiveInfoModel.nick; name1 = self.mp4TempReceiveInfoModel.nick;
break; break;
case 2: // 使 target avatar case 2:
name1 = self.mp4TempReceiveInfoModel.targetNick; name1 = self.mp4TempReceiveInfoModel.targetNick;
break; break;
default: default:

View File

@@ -200,6 +200,8 @@
giftName = _broadcastModel.i18nGiftNameMap.en; giftName = _broadcastModel.i18nGiftNameMap.en;
} else if (isMSZH() && _broadcastModel.i18nGiftNameMap.zh.length > 0) { } else if (isMSZH() && _broadcastModel.i18nGiftNameMap.zh.length > 0) {
giftName = _broadcastModel.i18nGiftNameMap.zh; giftName = _broadcastModel.i18nGiftNameMap.zh;
} else if (isMSTR() && _broadcastModel.i18nGiftNameMap.tr.length > 0) {
giftName = _broadcastModel.i18nGiftNameMap.tr;
} }
NSString *message = [NSString stringWithFormat:@"%@ %@ %@ %@",sendUserNick,YMLocalizedString(@"XPRoomYearActivityView0"),recvUserNick,giftName]; NSString *message = [NSString stringWithFormat:@"%@ %@ %@ %@",sendUserNick,YMLocalizedString(@"XPRoomYearActivityView0"),recvUserNick,giftName];

View File

@@ -1140,7 +1140,7 @@
model.micQueue = self.delegate.getMicroQueue; model.micQueue = self.delegate.getMicroQueue;
model.superMangerList = self.delegate.getRoomSuperAdminList; model.superMangerList = self.delegate.getRoomSuperAdminList;
XPUserCardViewController * userCardVC = [[XPUserCardViewController alloc] initWithUser:model]; XPUserCardViewController * userCardVC = [[XPUserCardViewController alloc] initWithUser:model];
[self.delegate.getCurrentNav presentViewController:userCardVC animated:YES completion:nil]; [self.delegate.getCurrentNav presentViewController:userCardVC animated:NO completion:nil];
} }
#pragma mark - XPAnchorPkPanelViewDelegate #pragma mark - XPAnchorPkPanelViewDelegate

View File

@@ -52,7 +52,7 @@ static const NSInteger kItemsPerRow = 5;
[self.blurEffectView mas_makeConstraints:^(MASConstraintMaker *make) { [self.blurEffectView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.equalTo(self).inset(0); make.leading.trailing.equalTo(self).inset(0);
make.bottom.equalTo(self).offset(12); make.bottom.equalTo(self).offset(12);
make.height.mas_equalTo(kGetScaleWidth(246)); make.height.mas_equalTo(self.collectionView.mas_height).multipliedBy(1.1);
}]; }];
[self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.leading.trailing.equalTo(self).inset(kGetScaleWidth(0)); make.bottom.leading.trailing.equalTo(self).inset(kGetScaleWidth(0));
@@ -93,9 +93,9 @@ static const NSInteger kItemsPerRow = 5;
CGFloat calHeight = self.itemHeight; CGFloat calHeight = self.itemHeight;
CGFloat height = 20 + 56 * lineNum + 44 * (lineNum - 1) + 70; CGFloat height = 20 + 56 * lineNum + 44 * (lineNum - 1) + 70;
height = calHeight * lineNum; height = calHeight * lineNum;
[self.ms_bgView mas_updateConstraints:^(MASConstraintMaker *make) { // [self.ms_bgView mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(kGetScaleWidth(height + 12)); // make.height.mas_equalTo(kGetScaleWidth(height + 12));
}]; // }];
[self.collectionView mas_updateConstraints:^(MASConstraintMaker *make) { [self.collectionView mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(kGetScaleWidth(height)); make.height.mas_equalTo(kGetScaleWidth(height));
}]; }];

View File

@@ -85,6 +85,7 @@
extModel.androidBubbleUrl = userInfo.androidBubbleUrl; extModel.androidBubbleUrl = userInfo.androidBubbleUrl;
extModel.iosBubbleUrl = userInfo.iosBubbleUrl; extModel.iosBubbleUrl = userInfo.iosBubbleUrl;
extModel.fromSayHelloChannel = userInfo.fromSayHelloChannel; extModel.fromSayHelloChannel = userInfo.fromSayHelloChannel;
extModel.nick = userInfo.nick;
if([self.delegate getPublicScreenType]==1){ if([self.delegate getPublicScreenType]==1){
extModel.avatar = userInfo.avatar; extModel.avatar = userInfo.avatar;

View File

@@ -28,7 +28,7 @@
/// ///
@property (nonatomic,strong) UITapGestureRecognizer *tapEmptyRecognizer; @property (nonatomic,strong) UITapGestureRecognizer *tapEmptyRecognizer;
@property(nonatomic, strong) UIVisualEffectView *blurEffectView; //@property(nonatomic, strong) UIVisualEffectView *blurEffectView;
@end @end
@implementation XPRoomMessageTableViewCell @implementation XPRoomMessageTableViewCell
@@ -49,14 +49,12 @@
self.selectionStyle = UITableViewCellSelectionStyleNone; self.selectionStyle = UITableViewCellSelectionStyleNone;
self.backgroundColor = [UIColor clearColor]; self.backgroundColor = [UIColor clearColor];
[self.contentView addSubview:self.bubbleImageView]; [self.contentView addSubview:self.bubbleImageView];
[self.contentView addSubview:self.blurEffectView]; // [self.contentView addSubview:self.blurEffectView];
[self.contentView addSubview:self.contentLabel]; [self.contentView addSubview:self.contentLabel];
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTap)]; UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTap)];
tap.delegate = self; tap.delegate = self;
self.tapEmptyRecognizer = tap; self.tapEmptyRecognizer = tap;
[self.contentView addGestureRecognizer:self.tapEmptyRecognizer]; [self.contentView addGestureRecognizer:self.tapEmptyRecognizer];
} }
- (void)initSubViewConstraints { - (void)initSubViewConstraints {
@@ -74,9 +72,9 @@
make.width.mas_equalTo(kRoomMessageMaxWidth); make.width.mas_equalTo(kRoomMessageMaxWidth);
}]; }];
[self.blurEffectView mas_makeConstraints:^(MASConstraintMaker *make) { // [self.blurEffectView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.bubbleImageView); // make.edges.mas_equalTo(self.bubbleImageView);
}]; // }];
} }
- (void)setIsLeftBigImage:(BOOL)isLeftBigImage { - (void)setIsLeftBigImage:(BOOL)isLeftBigImage {
@@ -102,10 +100,10 @@
make.trailing.mas_equalTo(self.bubbleImageView).offset(-8); make.trailing.mas_equalTo(self.bubbleImageView).offset(-8);
}]; }];
[self.blurEffectView mas_remakeConstraints:^(MASConstraintMaker *make) { // [self.blurEffectView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.bubbleImageView); // make.edges.mas_equalTo(self.bubbleImageView);
}]; // }];
self.blurEffectView.hidden = NO; // self.blurEffectView.hidden = NO;
} }
} }
@@ -168,7 +166,7 @@
} }
- (void)updateLayoutWithBubble { - (void)updateLayoutWithBubble {
self.blurEffectView.hidden = !self.messageInfo.isHiddenBubble; // self.blurEffectView.hidden = !self.messageInfo.isHiddenBubble;
@kWeakify(self); @kWeakify(self);
[self.bubbleImageView loadImageWithUrl:self.messageInfo.bubbleImageUrl [self.bubbleImageView loadImageWithUrl:self.messageInfo.bubbleImageUrl
completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
@@ -195,7 +193,7 @@
} }
- (void)updateLayoutWithoutBubble { - (void)updateLayoutWithoutBubble {
self.blurEffectView.hidden = NO; // self.blurEffectView.hidden = NO;
self.bubbleImageView.image = [UIImage imageWithColor:[DJDKMIMOMColor messageBubbleColor]]; self.bubbleImageView.image = [UIImage imageWithColor:[DJDKMIMOMColor messageBubbleColor]];
[self.contentLabel mas_remakeConstraints:^(MASConstraintMaker *make) { [self.contentLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.messageInfo.contentTopMargin); make.top.mas_equalTo(self.messageInfo.contentTopMargin);
@@ -278,18 +276,18 @@
return _clickBtn; return _clickBtn;
} }
- (UIVisualEffectView *)blurEffectView { //- (UIVisualEffectView *)blurEffectView {
if (!_blurEffectView) { // if (!_blurEffectView) {
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; // UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
_blurEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect]; // _blurEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
//
// // //
_blurEffectView.frame = CGRectMake(0, 0, KScreenWidth*2/3, 200); // _blurEffectView.frame = CGRectMake(0, 0, KScreenWidth*2/3, 200);
_blurEffectView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; // _blurEffectView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
_blurEffectView.hidden = YES; // _blurEffectView.hidden = YES;
//
[_blurEffectView setCornerRadius:8]; // [_blurEffectView setCornerRadius:8];
} // }
return _blurEffectView; // return _blurEffectView;
} //}
@end @end

View File

@@ -630,7 +630,7 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
[self.messageTableView reloadData]; [self.messageTableView reloadData];
// //
[self scrollToBottom:YES]; [self scrollToBottom:NO];
} }
/// ///

View File

@@ -124,6 +124,7 @@
extModel.androidBubbleUrl = userInfo.androidBubbleUrl; extModel.androidBubbleUrl = userInfo.androidBubbleUrl;
extModel.iosBubbleUrl = userInfo.iosBubbleUrl; extModel.iosBubbleUrl = userInfo.iosBubbleUrl;
extModel.fromSayHelloChannel = userInfo.fromSayHelloChannel; extModel.fromSayHelloChannel = userInfo.fromSayHelloChannel;
extModel.nick = userInfo.nick;
NIMMessage * message = [[NIMMessage alloc] init]; NIMMessage * message = [[NIMMessage alloc] init];
message.text = text; message.text = text;

View File

@@ -111,6 +111,7 @@
extModel.gender = userInfo.gender; extModel.gender = userInfo.gender;
extModel.fromSayHelloChannel = userInfo.fromSayHelloChannel; extModel.fromSayHelloChannel = userInfo.fromSayHelloChannel;
extModel.platformRole = userInfo.platformRole; extModel.platformRole = userInfo.platformRole;
extModel.nick = userInfo.nick;
NSMutableDictionary *ext = [NSMutableDictionary dictionaryWithObject:extModel.model2dictionary forKey:[NSString stringWithFormat:@"%ld", userInfo.uid]]; NSMutableDictionary *ext = [NSMutableDictionary dictionaryWithObject:extModel.model2dictionary forKey:[NSString stringWithFormat:@"%ld", userInfo.uid]];
request.roomExt = [ext toJSONString]; request.roomExt = [ext toJSONString];

View File

@@ -71,7 +71,7 @@
extModel.androidBubbleUrl = userInfo.androidBubbleUrl; extModel.androidBubbleUrl = userInfo.androidBubbleUrl;
extModel.iosBubbleUrl = userInfo.iosBubbleUrl; extModel.iosBubbleUrl = userInfo.iosBubbleUrl;
extModel.fromSayHelloChannel = userInfo.fromSayHelloChannel; extModel.fromSayHelloChannel = userInfo.fromSayHelloChannel;
extModel.nick = userInfo.nick;
NIMMessage * message = [[NIMMessage alloc] init]; NIMMessage * message = [[NIMMessage alloc] init];
message.text = self.inputMessage; message.text = self.inputMessage;

View File

@@ -451,8 +451,10 @@
@"isFromWinning":@(NO)}]; @"isFromWinning":@(NO)}];
} else { } else {
self.errorMessage = msg; self.errorMessage = msg;
self.actionCallback(ComboAction_RemovePanel); if (self.actionCallback) {
self.actionCallback(ComboAction_Error); self.actionCallback(ComboAction_Error);
}
[self forceRemove];
} }
} }
targetUids:allUIDs targetUids:allUIDs
@@ -475,9 +477,15 @@
NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithDictionary:response.data]; NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithDictionary:response.data];
[dic setObject:@(self.combo) forKey:@"comboCount"]; [dic setObject:@(self.combo) forKey:@"comboCount"];
self.sendGiftReceiveInfo = receive;
if (self.handleComboSuccess) { if (self.handleComboSuccess) {
self.handleComboSuccess(receive, dic); self.handleComboSuccess(receive, dic);
} }
if (self.actionCallback) {
self.actionCallback(ComboAction_Update_After_Send_Success);
}
} }
- (void)sendCustomMessage:(AttachmentModel *)attachment { - (void)sendCustomMessage:(AttachmentModel *)attachment {

View File

@@ -58,6 +58,8 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,strong) NSArray<NSNumber *> *targetUids; @property (nonatomic,strong) NSArray<NSNumber *> *targetUids;
///礼物信息 - 来自礼物 API ///礼物信息 - 来自礼物 API
@property (nonatomic,strong) GiftInfoModel *gift; @property (nonatomic,strong) GiftInfoModel *gift;
///礼物信息 - 来自推送 35
@property (nonatomic,strong) GiftInfoModel *giftVo;
///礼物信息 ///礼物信息
@property (nonatomic,strong) GiftInfoModel *giftInfo; @property (nonatomic,strong) GiftInfoModel *giftInfo;
///送礼物的人uid ///送礼物的人uid
@@ -114,10 +116,12 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,copy) NSString *recvUserAvatar; @property (nonatomic,copy) NSString *recvUserAvatar;
///接收者的昵称 ///接收者的昵称
@property (nonatomic,copy) NSString *recvUserNick; @property (nonatomic,copy) NSString *recvUserNick;
@property (nonatomic,copy) NSString *recvUserUid;
///发送者的头像 ///发送者的头像
@property (nonatomic, copy) NSString *sendUserAvatar; @property (nonatomic, copy) NSString *sendUserAvatar;
///发送者的昵称 ///发送者的昵称
@property (nonatomic, copy) NSString *sendUserNick; @property (nonatomic, copy) NSString *sendUserNick;
@property (nonatomic,copy) NSString *sendUserUid;
///跳转的房间的uid ///跳转的房间的uid
@property (nonatomic,assign) NSInteger roomUid; @property (nonatomic,assign) NSInteger roomUid;
///平台id ///平台id

View File

@@ -14,6 +14,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, copy) NSString *zh; @property (nonatomic, copy) NSString *zh;
@property (nonatomic, copy) NSString *en; @property (nonatomic, copy) NSString *en;
@property (nonatomic, copy) NSString *ar; @property (nonatomic, copy) NSString *ar;
@property (nonatomic, copy) NSString *tr;
@end @end

View File

@@ -239,7 +239,7 @@
} }
- (UIImageView *)giftNewImageView { - (UIImageView *)giftNewImageView {
if (!_giftNewImageView) { if (!_giftNewImageView) {
_giftNewImageView = [self createImageView:[UIImage getLanguageText:@"gift_tag_latest"]]; _giftNewImageView = [self createImageView:@"gift_tag_latest"];
} }
return _giftNewImageView; return _giftNewImageView;
} }

View File

@@ -42,9 +42,18 @@
self.updateGoldQueue = @[].mutableCopy; self.updateGoldQueue = @[].mutableCopy;
[self setupNotification]; [self setupNotification];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapSpace)]; UIButton *b = [UIButton buttonWithType:UIButtonTypeCustom];
tap.delegate = self; [b addTarget:self action:@selector(handleTapSpace) forControlEvents:UIControlEventTouchUpInside];
[self addGestureRecognizer:tap]; [self addSubview:b];
[b mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.leading.trailing.mas_equalTo(self);
make.height.mas_equalTo(self.mas_height).multipliedBy(0.75);
}];
// UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapSpace)];
// tap.delegate = self;
// [self addGestureRecognizer:tap];
[self setupUI]; [self setupUI];
[self setupTimer]; [self setupTimer];
[self updateCount]; [self updateCount];
@@ -142,7 +151,7 @@
[self addSubview:self.comboGoldLabel]; [self addSubview:self.comboGoldLabel];
[self.comboGoldLabel mas_makeConstraints:^(MASConstraintMaker *make) { [self.comboGoldLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(44); make.leading.mas_equalTo(44);
make.bottom.mas_equalTo(-74); make.bottom.mas_equalTo(-44);
}]; }];
UIImageView *coin = [[UIImageView alloc] initWithImage:kImage(@"moli_money_icon")]; UIImageView *coin = [[UIImageView alloc] initWithImage:kImage(@"moli_money_icon")];
@@ -208,7 +217,7 @@
- (void)updateCurrentGold:(double)gold giftPrice:(double)price isFromWinning:(BOOL)isFromWinning { - (void)updateCurrentGold:(double)gold giftPrice:(double)price isFromWinning:(BOOL)isFromWinning {
if (isFromWinning) { if (isFromWinning) {
[self.updateGoldQueue addObject:[NSString stringWithFormat:@"+ %@", @(gold)]]; [self.updateGoldQueue insertObject:[NSString stringWithFormat:@"+ %@", @(gold)] atIndex:0];
} else { } else {
[self.updateGoldQueue addObject:@(-price).stringValue]; [self.updateGoldQueue addObject:@(-price).stringValue];
self.comboGoldLabel.text = @(gold).stringValue; self.comboGoldLabel.text = @(gold).stringValue;
@@ -230,17 +239,22 @@
self.isAnimatingUpdateGold = YES; self.isAnimatingUpdateGold = YES;
if (goldNum.integerValue < 0) {
self.updateGoldLabel.textColor = UIColorFromRGB(0xffd54c);
} else {
self.updateGoldLabel.textColor = UIColorFromRGB(0xBC36FF);
}
self.updateGoldLabel.text = goldNum.stringValue; self.updateGoldLabel.text = goldNum.stringValue;
self.updateGoldLabel.alpha = 0; self.updateGoldLabel.alpha = 0;
[UIView animateWithDuration:0.25 animations:^{ [UIView animateWithDuration:0.1 animations:^{
[self.updateGoldLabel mas_updateConstraints:^(MASConstraintMaker *make) { [self.updateGoldLabel mas_updateConstraints:^(MASConstraintMaker *make) {
make.bottom.mas_equalTo(self.comboGoldLabel.mas_bottom).offset(-40); make.bottom.mas_equalTo(self.comboGoldLabel.mas_bottom).offset(goldNum.integerValue > 0 ? -60 : -40);;
}]; }];
self.updateGoldLabel.alpha = 1; self.updateGoldLabel.alpha = 1;
[self layoutIfNeeded]; [self layoutIfNeeded];
} completion:^(BOOL finished) { } completion:^(BOOL finished) {
[UIView animateWithDuration:0.25 [UIView animateWithDuration:0.0
delay:0.25 delay:0.15
options:UIViewAnimationOptionCurveLinear options:UIViewAnimationOptionCurveLinear
animations:^{ animations:^{
[self.updateGoldLabel mas_updateConstraints:^(MASConstraintMaker *make) { [self.updateGoldLabel mas_updateConstraints:^(MASConstraintMaker *make) {

View File

@@ -306,16 +306,21 @@
canAddGift = true; canAddGift = true;
[tempTitles addObject:tab.nameMap.ar]; [tempTitles addObject:tab.nameMap.ar];
} }
} else if (isMSEN()) { } else if (isMSTR()) {
if ([tab.nameMap.en length] > 0) { if ([tab.nameMap.tr length] > 0) {
canAddGift = true; canAddGift = true;
[tempTitles addObject:tab.nameMap.en]; [tempTitles addObject:tab.nameMap.tr];
} }
} else { } else if (isMSZH()) {
if ([tab.nameMap.zh length] > 0) { if ([tab.nameMap.zh length] > 0) {
canAddGift = true; canAddGift = true;
[tempTitles addObject:tab.nameMap.zh]; [tempTitles addObject:tab.nameMap.zh];
} }
} else {
if ([tab.nameMap.en length] > 0) {
canAddGift = true;
[tempTitles addObject:tab.nameMap.en];
}
} }
[tempTags addObject:tab]; [tempTags addObject:tab];

View File

@@ -67,7 +67,7 @@ static NSString *kHideGiftViewInteractDot = @"kHideGiftViewInteractDot";//是否
[self.giftButton mas_makeConstraints:^(MASConstraintMaker *make) { [self.giftButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(16); make.leading.mas_equalTo(16);
make.centerY.mas_equalTo(self); make.centerY.mas_equalTo(self);
make.width.mas_equalTo(40); make.width.mas_greaterThanOrEqualTo(40);
}]; }];
// [self.arrowImageView mas_makeConstraints:^(MASConstraintMaker *make) { // [self.arrowImageView mas_makeConstraints:^(MASConstraintMaker *make) {
// make.bottom.mas_equalTo(self.bottomDevideView.mas_top); // make.bottom.mas_equalTo(self.bottomDevideView.mas_top);

View File

@@ -358,7 +358,7 @@ UIKIT_EXTERN NSString * kShowFirstRechargeView;
@kStrongify(self); @kStrongify(self);
AttachmentModel *attachment = [[AttachmentModel alloc] init]; AttachmentModel *attachment = [[AttachmentModel alloc] init];
attachment.first = CustomMessageType_Gift; attachment.first = CustomMessageType_Gift;
attachment.second = Custom_Message_Sub_Gift_EmbeddedStyle; attachment.second = Custom_Message_Sub_Gift_Send;
[data setObject:[[obj objectForKey:@"uid"] stringValue] forKey:@"targetUid"]; [data setObject:[[obj objectForKey:@"uid"] stringValue] forKey:@"targetUid"];
[data setObject:[obj objectForKey:@"nick"] forKey:@"targetNick"]; [data setObject:[obj objectForKey:@"nick"] forKey:@"targetNick"];
[data setObject:[obj objectForKey:@"avatar"] forKey:@"targetAvatar"]; [data setObject:[obj objectForKey:@"avatar"] forKey:@"targetAvatar"];

View File

@@ -830,7 +830,7 @@
model.delegate = self.hostDelegate; model.delegate = self.hostDelegate;
model.superMangerList = self.hostDelegate.getRoomSuperAdminList; model.superMangerList = self.hostDelegate.getRoomSuperAdminList;
XPUserCardViewController * userCardVC = [[XPUserCardViewController alloc] initWithUser:model]; XPUserCardViewController * userCardVC = [[XPUserCardViewController alloc] initWithUser:model];
[self.hostDelegate.getCurrentNav presentViewController:userCardVC animated:YES completion:nil]; [self.hostDelegate.getCurrentNav presentViewController:userCardVC animated:NO completion:nil];
[StatisticsServiceHelper trackEventWithKey:StatisticsServiceEventroom_mike_click eventAttributes:@{@"actionType" : @"userCard"}]; [StatisticsServiceHelper trackEventWithKey:StatisticsServiceEventroom_mike_click eventAttributes:@{@"actionType" : @"userCard"}];
return; return;
} }

View File

@@ -53,8 +53,8 @@
/// ///
+ (UIColor *)messageBubbleColor { + (UIColor *)messageBubbleColor {
// return UIColorRGBAlpha(0xFFFFFF, 0.15); return UIColorRGBAlpha(0xFFFFFF, 0.15);
return UIColorRGBAlpha(0x000000, 0.35); // return UIColorRGBAlpha(0x000000, 0.35);
} }
/// ///
+ (UIColor *)messageTextColor { + (UIColor *)messageTextColor {

View File

@@ -145,22 +145,28 @@
- (void)viewDidLoad { - (void)viewDidLoad {
[super viewDidLoad]; [super viewDidLoad];
self.view.backgroundColor = [UIColor clearColor];
self.view.hidden = YES;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.4 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
self.view.hidden = NO;
});
[self initHttp]; [self initHttp];
[self initSubViews];
[self initSubViewConstraints];
[self initEvent];
} }
#pragma mark - Private Method #pragma mark - Private Method
- (void)initSubViews { - (void)initSubViews {
self.view.backgroundColor = [UIColor clearColor];
/// stackView
[self.view addSubview:self.topTapView]; [self.view addSubview:self.topTapView];
[self.view addSubview:self.backView]; [self.view addSubview:self.backView];
[self.view addSubview:self.bottomTapView]; [self.view addSubview:self.bottomTapView];
[self.view addSubview:self.vapView]; [self.view addSubview:self.vapView];
[self.backView addSubview:self.stackView]; if (self.targetUserInfo.infoCardVo) {
[self.view addSubview:self.stackView];
} else {
[self.backView addSubview:self.stackView];
}
[self.view addSubview:self.nobleImageView]; [self.view addSubview:self.nobleImageView];
[self.stackView addArrangedSubview:self.userInfoView]; [self.stackView addArrangedSubview:self.userInfoView];
@@ -389,8 +395,7 @@
- (void)initHttp { - (void)initHttp {
[self.presenter getUserInfo:self.cardInfo.uid]; [self.presenter getUserInfo:self.cardInfo.uid];
[self.presenter getFunctionItemsByUserInfo:self.cardInfo]; // [self.presenter getFunctionItemsByUserInfo:self.cardInfo];
} }
- (void)configRoomDatingPickHeart { - (void)configRoomDatingPickHeart {
@@ -547,6 +552,13 @@
#pragma mark - XPUserCardProtocol #pragma mark - XPUserCardProtocol
- (void)onGetUserInfoSuccess:(UserInfoModel *)userInfo { - (void)onGetUserInfoSuccess:(UserInfoModel *)userInfo {
self.targetUserInfo = userInfo; self.targetUserInfo = userInfo;
[self initSubViews];
[self initSubViewConstraints];
[self initEvent];
[self.presenter getFunctionItemsByUserInfo:self.cardInfo];
self.avatarImageView.imageUrl = userInfo.avatar; self.avatarImageView.imageUrl = userInfo.avatar;
// self.nobleImageView.imageUrl = userInfo.userInfoCardPic; // self.nobleImageView.imageUrl = userInfo.userInfoCardPic;
@@ -719,14 +731,15 @@
[self.collectionView reloadData]; [self.collectionView reloadData];
} }
- (void)onGetMicroFunctionArraySuccess:(NSArray<XPUserCardMicroItemModel *> *)array { - (void)onGetMicroFunctionArraySuccess:(NSArray<XPUserCardMicroItemModel *> *)array {
if (array.count <= 0) { if (array.count <= 0) {
if (self.datasource.count > 0){ if (self.datasource.count > 0){
self.collectionView.hidden = NO; self.collectionView.hidden = NO;
[self.collectionView reloadData]; [self.collectionView reloadData];
[self updateCollectionHeight:self.datasource]; [self updateCollectionHeight:self.datasource];
} }
return;} return;
}
// self.operaStackView.hidden = NO; // self.operaStackView.hidden = NO;
// self.sepLineView.hidden = NO; // self.sepLineView.hidden = NO;
@@ -1302,7 +1315,7 @@
- (UIView *)backView { - (UIView *)backView {
if (!_backView) { if (!_backView) {
_backView = [[UIView alloc] init]; _backView = [[UIView alloc] init];
_backView.backgroundColor = [UIColor whiteColor]; _backView.backgroundColor = [UIColor whiteColor];
_backView.layer.masksToBounds = YES; _backView.layer.masksToBounds = YES;
_backView.layer.cornerRadius = 12; _backView.layer.cornerRadius = 12;
} }
@@ -1332,6 +1345,7 @@
if (!_effectView) { if (!_effectView) {
UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
_effectView = [[UIVisualEffectView alloc]initWithEffect:effect]; _effectView = [[UIVisualEffectView alloc]initWithEffect:effect];
_effectView.backgroundColor = [UIColor clearColor];
} }
return _effectView; return _effectView;
} }
@@ -1339,6 +1353,7 @@
- (NetImageView *)backImageView { - (NetImageView *)backImageView {
if (!_backImageView) { if (!_backImageView) {
_backImageView = [[NetImageView alloc] init]; _backImageView = [[NetImageView alloc] init];
_backImageView.backgroundColor = [UIColor clearColor];
_backImageView.userInteractionEnabled = YES; _backImageView.userInteractionEnabled = YES;
_backImageView.contentMode = UIViewContentModeScaleAspectFill; _backImageView.contentMode = UIViewContentModeScaleAspectFill;
_backImageView.image = [UIImageConstant defaultAvatarPlaceholder]; _backImageView.image = [UIImageConstant defaultAvatarPlaceholder];
@@ -1349,6 +1364,7 @@
- (NetImageView *)nobleImageView { - (NetImageView *)nobleImageView {
if (!_nobleImageView) { if (!_nobleImageView) {
_nobleImageView = [[NetImageView alloc] init]; _nobleImageView = [[NetImageView alloc] init];
_nobleImageView.backgroundColor = [UIColor clearColor];
_nobleImageView.contentMode = UIViewContentModeScaleToFill; _nobleImageView.contentMode = UIViewContentModeScaleToFill;
_nobleImageView.layer.masksToBounds = YES; _nobleImageView.layer.masksToBounds = YES;
} }
@@ -1536,6 +1552,7 @@
- (XPUserCardSkillCardView *)skillCardView { - (XPUserCardSkillCardView *)skillCardView {
if (!_skillCardView) { if (!_skillCardView) {
_skillCardView = [[XPUserCardSkillCardView alloc] init]; _skillCardView = [[XPUserCardSkillCardView alloc] init];
_skillCardView.backgroundColor = [UIColor clearColor];
} }
return _skillCardView; return _skillCardView;
} }
@@ -1551,7 +1568,8 @@
_collectionView.dataSource = self; _collectionView.dataSource = self;
_collectionView.delegate = self; _collectionView.delegate = self;
_collectionView.hidden = YES; _collectionView.hidden = YES;
_collectionView.backgroundColor = [UIColor clearColor]; _collectionView.backgroundColor = [UIColor whiteColor];
[_collectionView setCornerRadius:16 cornerMask:kCALayerMinXMaxYCorner | kCALayerMaxXMaxYCorner];
[_collectionView registerClass:[XPUserCardItemCollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([XPUserCardItemCollectionViewCell class])]; [_collectionView registerClass:[XPUserCardItemCollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([XPUserCardItemCollectionViewCell class])];
} }
return _collectionView; return _collectionView;
@@ -1574,6 +1592,7 @@
_operaStackView.alignment = UIStackViewAlignmentFill; _operaStackView.alignment = UIStackViewAlignmentFill;
_operaStackView.spacing = 0; _operaStackView.spacing = 0;
_operaStackView.hidden = YES; _operaStackView.hidden = YES;
_operaStackView.backgroundColor = [UIColor orangeColor];
} }
return _operaStackView; return _operaStackView;
} }

View File

@@ -368,8 +368,10 @@ XPCandyTreeInsufficientBalanceViewDelegate>
@kWeakify(self); @kWeakify(self);
[[GiftComboManager sharedManager] setHandleRoomUIChanged:^(BOOL comboViewDisplay) { [[GiftComboManager sharedManager] setHandleRoomUIChanged:^(BOOL comboViewDisplay) {
@kStrongify(self); @kStrongify(self);
self.activityContainerView.hidden = comboViewDisplay; dispatch_async(dispatch_get_main_queue(), ^{
self.menuContainerView.hidden = comboViewDisplay; self.activityContainerView.hidden = comboViewDisplay;
self.menuContainerView.hidden = comboViewDisplay;
});
}]; }];
} }