修复bug

This commit is contained in:
liyuhua
2024-01-03 16:58:16 +08:00
parent 5c057821a7
commit 10a1e6e09e
21 changed files with 313 additions and 133 deletions

View File

@@ -303,6 +303,7 @@
23942E912A86424500D0ECC2 /* XPLoginAuthCodeVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 23942E902A86424500D0ECC2 /* XPLoginAuthCodeVC.m */; };
2396FCE42B22BE5D0014021D /* pi_area_info.json in Resources */ = {isa = PBXBuildFile; fileRef = 2396FCE32B22BE5D0014021D /* pi_area_info.json */; };
239BEEDB2AA1E058005CDA94 /* PIHoemCategoryTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 239BEEDA2AA1E058005CDA94 /* PIHoemCategoryTitleView.m */; };
23A03F2D2B4408CD0094227A /* pi_room_lucky_gift.svga in Resources */ = {isa = PBXBuildFile; fileRef = 23A03F2C2B4408CD0094227A /* pi_room_lucky_gift.svga */; };
23A439742AA1CF7C002E6039 /* XPNewHomeHeadView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23A439732AA1CF7C002E6039 /* XPNewHomeHeadView.m */; };
23B2AEC12A64E9C200543D17 /* LoginForgetEditView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2AEC02A64E9C200543D17 /* LoginForgetEditView.m */; };
23B2AEC42A6516C200543D17 /* LoginForgetPasswordViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2AEC22A6516C200543D17 /* LoginForgetPasswordViewController.m */; };
@@ -2069,6 +2070,7 @@
2396FCE32B22BE5D0014021D /* pi_area_info.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = pi_area_info.json; sourceTree = "<group>"; };
239BEED92AA1E058005CDA94 /* PIHoemCategoryTitleView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PIHoemCategoryTitleView.h; sourceTree = "<group>"; };
239BEEDA2AA1E058005CDA94 /* PIHoemCategoryTitleView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PIHoemCategoryTitleView.m; sourceTree = "<group>"; };
23A03F2C2B4408CD0094227A /* pi_room_lucky_gift.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = pi_room_lucky_gift.svga; sourceTree = "<group>"; };
23A439722AA1CF7C002E6039 /* XPNewHomeHeadView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPNewHomeHeadView.h; sourceTree = "<group>"; };
23A439732AA1CF7C002E6039 /* XPNewHomeHeadView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPNewHomeHeadView.m; sourceTree = "<group>"; };
23B2AEBF2A64E9C200543D17 /* LoginForgetEditView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginForgetEditView.h; sourceTree = "<group>"; };
@@ -9376,6 +9378,7 @@
E8A1E45C276220B100B294CA /* Resources */ = {
isa = PBXGroup;
children = (
23A03F2C2B4408CD0094227A /* pi_room_lucky_gift.svga */,
23FF256F2ABD456C0064E904 /* pi_home_new_play.svga */,
23FF25612ABAE6310064E904 /* pi_room_game_fine_love.svga */,
232C444A2AB4363200D4B2ED /* pi_room_tarrow_h5_banner.svga */,
@@ -10656,6 +10659,7 @@
E80EC87128ACD84000D133C5 /* emoji_160@2x.png in Resources */,
23E9EB252A84E98300B792F2 /* pi_new_mine_info_online.svga in Resources */,
23FF42652AA5AC040055733C /* home_heat.gif in Resources */,
23A03F2D2B4408CD0094227A /* pi_room_lucky_gift.svga in Resources */,
E80EC86D28ACD84000D133C5 /* emoji_35@2x.png in Resources */,
E80EC86528ACD84000D133C5 /* emoji_03@2x.png in Resources */,
E80EC85B28ACD84000D133C5 /* emoji_69@2x.png in Resources */,

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -65,7 +65,7 @@ NSString * const KeyWithType(Pi_KeyType type) {
NSDictionary * dic = @{
@(KeyType_PasswordEncode) : @"1ea53d260ecf11e7b56e00163e046a26",
@(KeyType_NTESQuickLoginBusinessId) : @"09c1214706c34f4798d3f05d86148608",
@(KeyType_Agora) : @"7ae1a8dabe7a44a9a67c829faa409e70",
@(KeyType_Agora) : @"f8713b6ec98c4c01adaf34cb4fa091b1",
@(KeyType_TRTC) : @"1400741885",
@(KeyType_NetEase) : @"1c3b8c6bf8467d8e4c33a004dbec5c94",
@(keyType_YiDunBussinessId) : @"yinyouApnsDebug",

View File

@@ -57,6 +57,8 @@
@property (nonatomic,strong) XPClanSectionView *sectionView;
///
@property (nonatomic,assign) BOOL isRequest;
///
@property(nonatomic,assign) NSInteger memberNum;
@end
@implementation XPMineClanViewController
@@ -161,7 +163,7 @@
if (cell == nil) {
cell = [[XPClanMemberTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPClanMemberTableViewCell class])];
}
self.sectionView.title = [NSString stringWithFormat:YMLocalizedString(@"XPMineClanViewController1"), self.datasource.count];
self.sectionView.title = [NSString stringWithFormat:YMLocalizedString(@"XPMineClanViewController1"), self.memberNum];
cell.cellType = ClanMemberTableViewCellType_Normal;
ClanMemberInfoModel * memberInfo = [self.datasource safeObjectAtIndex1:indexPath.row-1];
cell.isLast = (self.datasource.count -1) == indexPath.row-1;
@@ -241,6 +243,7 @@
} else {
self.hasNoMoreData = YES;
}
self.memberNum = memberInfo.count;
[self.tableView reloadData];
}

View File

@@ -820,7 +820,7 @@
- (UIButton *)assistButton {
if (!_assistButton) {
_assistButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_assistButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor], [DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
[_assistButton setBackgroundImage:kImage(@"room_across_pk_assist") forState:UIControlStateNormal];
[_assistButton setTitle:YMLocalizedString(@"XPAcrpssRoomPKPanelView2") forState:UIControlStateNormal];
_assistButton.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
[_assistButton setTitleColor:[DJDKMIMOMColor confirmButtonTextColor] forState:UIControlStateNormal];
@@ -836,7 +836,7 @@
- (UIButton *)onlookButton {
if (!_onlookButton) {
_onlookButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_onlookButton setBackgroundImage:[UIImage imageWithColor:[DJDKMIMOMColor disableButtonColor]] forState:UIControlStateNormal];
[_onlookButton setBackgroundImage:kImage(@"room_across_pk_onlookers") forState:UIControlStateNormal];
[_onlookButton setTitle:YMLocalizedString(@"XPAcrpssRoomPKPanelView3") forState:UIControlStateNormal];
_onlookButton.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
[_onlookButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

View File

@@ -16,6 +16,7 @@ typedef enum : NSUInteger {
GiftBannerType_Fairy,///夺宝精灵
GiftBannerType_Tarrow,//塔罗
GiftBannerType_Common_H5,//通用h5
GiftBannerType_Magic_House,//魔法屋
} GiftBannerType;
NS_ASSUME_NONNULL_BEGIN
@@ -25,6 +26,7 @@ NS_ASSUME_NONNULL_BEGIN
@property(nonatomic, copy)NSString *nick;
@property(nonatomic, copy)NSString *giftName;
@property(nonatomic, copy) NSString *giftNum;
@property (nonatomic,copy) NSString *luckyBagName;
@property (nonatomic,copy) NSString *roomTitle;
@property (nonatomic,assign) NSInteger uid;
@@ -41,6 +43,10 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,copy) NSString * bannerId;
@property(nonatomic,copy) NSString *drawGoldNum;
@property(nonatomic,copy) NSString *content;
///福袋图片
@property(nonatomic,copy) NSString *luckyBagGiftPic;
///礼物图片
@property(nonatomic,copy) NSString *giftPic;
@end
NS_ASSUME_NONNULL_END

View File

@@ -16,6 +16,7 @@
NS_ASSUME_NONNULL_BEGIN
@interface PIRoomGiftBroadcastWindow : UIView
@property(nonatomic,assign) BOOL isLuck;///是否是福袋
@property(nonatomic,copy) NSString *roomName;
@property(nonatomic,copy) NSString *roodUid;
@property(nonatomic,weak) id<PIRoomGiftBroadcastWindowDelegate>delegate;

View File

@@ -96,6 +96,16 @@
}
-(void)selectAction:(UIButton *)sender{
sender.selected = !sender.selected;
if(self.isLuck == YES){
if(sender.selected == YES){
[[NSUserDefaults standardUserDefaults]setValue:@(YES) forKey:@"kSaveLuckSelectState"];
[[NSUserDefaults standardUserDefaults]synchronize];
}else{
[[NSUserDefaults standardUserDefaults]removeObjectForKey:@"kSaveLuckSelectState"];
}
return;
}
if(sender.selected == YES){
[[NSUserDefaults standardUserDefaults]setValue:@(YES) forKey:@"kSaveBrooadcastSelectState"];
[[NSUserDefaults standardUserDefaults]synchronize];

View File

@@ -111,8 +111,7 @@
@property (nonatomic,strong) NSMutableSet<NetImageView *> * giftVisibleArray;
///
@property (nonatomic,strong) NSMutableArray *compoundGiftQueue;
///
@property (nonatomic,assign) BOOL isLargeGiftAnimating;
@@ -183,6 +182,8 @@
self.delegate = delegate;
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
@@ -1178,16 +1179,18 @@
#pragma mark -
- (void)receiveGiftCompound:(AttachmentModel *)attachment {
if ([self isInSudGame]) {return;}
if (self.compoundGiftQueue.count == 0) {
[self createGiftCompoundBannerAnimation:attachment];
PIBaseAnimationViewModel *magicModel =[PIBaseAnimationViewModel new];
magicModel.data = attachment.data;
magicModel.type = GiftBannerType_Magic_House;
if(self.animationListB.count == 0 && self.isPlayOfB == NO){
[self createGiftCompoundBannerAnimation:magicModel];
}
[self.compoundGiftQueue addObject:attachment];
[self.animationListB addObject:magicModel];
}
- (void)createGiftCompoundBannerAnimation:(AttachmentModel *)attachment {
- (void)createGiftCompoundBannerAnimation:(PIBaseAnimationViewModel *)attachment {
self.isPlayOfB = YES;
XPRoomGiftCompoundView *compoundGiftView = [[XPRoomGiftCompoundView alloc] initWithFrame:CGRectMake(KScreenWidth, kNavigationHeight + 15, KScreenWidth, 45)];
compoundGiftView.compoundGiftInfo = attachment.data;
[self.middleLevelView addSubview:compoundGiftView];
@@ -1210,13 +1213,16 @@
@kStrongify(self);
if (finished) {
[compoundGiftView removeFromSuperview];
if (self.compoundGiftQueue.count > 0) {
[self.compoundGiftQueue removeObjectAtIndex:0];
}
if (self.compoundGiftQueue.count > 0) {
[self createGiftCompoundBannerAnimation:self.compoundGiftQueue.firstObject];
self.isPlayOfB = NO;
if(self.animationListB.count > 0){
[self.animationListB removeObjectAtIndex:0];
}
// if(self.isAnimationListAFinish == YES){
// self.isAnimationListAFinish = NO;
// [self playAnimationWithModel];
// return;
// }
[self playAnimationWithModel];
}
}];
[compoundGiftView pop_addAnimation:moveAnimation forKey:@"moveOutAnimation"];
@@ -1619,7 +1625,7 @@
self.isLuckyGiftAnimation = YES;
XPRoomLuckyBigPrizeView * luckyGiftEffectView = [[XPRoomLuckyBigPrizeView alloc] initWithFrame:CGRectMake(KScreenWidth, top, 375, 60)];
XPRoomLuckyBigPrizeView * luckyGiftEffectView = [[XPRoomLuckyBigPrizeView alloc] initWithFrame:CGRectMake(KScreenWidth, top, 375, 71)];
luckyGiftEffectView.delegate = self;
[self.highLevleView addSubview:luckyGiftEffectView];
luckyGiftEffectView.giftInfo = prizeModel;
@@ -1629,7 +1635,18 @@
springAnimation.springBounciness = 10.f;
springAnimation.fromValue = [NSValue valueWithCGPoint:luckyGiftEffectView.center];
springAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(KScreenWidth / 2, luckyGiftEffectView.center.y)];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 6 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 7 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
POPBasicAnimation *moveAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewCenter];
moveAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(0, luckyGiftEffectView.center.y)];
moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(-KScreenWidth/2, luckyGiftEffectView.center.y)];
moveAnimation.beginTime = CACurrentMediaTime();
moveAnimation.duration = 0.5;
moveAnimation.repeatCount = 1;
moveAnimation.removedOnCompletion = YES;
@kWeakify(self);
[moveAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) {
@kStrongify(self);
if (finished) {
[luckyGiftEffectView removeFromSuperview];
if (self.animationListB.count > 0) {
@@ -1642,6 +1659,11 @@
// return;
// }
[self playAnimationWithModel];
}
}];
[luckyGiftEffectView pop_addAnimation:moveAnimation forKey:@"moveOutAnimation"];
});
[luckyGiftEffectView pop_addAnimation:springAnimation forKey:@"nobleLevelUpspingOutAnimation"];
}
@@ -1665,6 +1687,8 @@
[self createTarotBannerAnimation:model];
}else if(model.type == GiftBannerType_Common_H5){
[self createCommonH5BannerAnimation:model];
}else if(model.type == GiftBannerType_Magic_House){
[self createGiftCompoundBannerAnimation:model];
}
}
@@ -1699,18 +1723,35 @@
[self createTarotBannerAnimation:model];
}else if(model.type == GiftBannerType_Common_H5){
[self createCommonH5BannerAnimation:model];
}else if(model.type == GiftBannerType_Magic_House){
[self createGiftCompoundBannerAnimation:model];
}
}
#pragma mark - XPRoomLuckyBigPrizeViewDelegate
- (void)xPRoomLuckyBigPrizeView:(XPRoomLuckyBigPrizeView *)view luckyGiftInfo:(PIBaseAnimationViewModel *)giftInfo {
id isShowBroadcastView = [[NSUserDefaults standardUserDefaults]valueForKey:@"kSaveLuckSelectState"];
if(isShowBroadcastView == nil){
PIRoomGiftBroadcastWindow *broadcastView = [[PIRoomGiftBroadcastWindow alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)];
broadcastView.isLuck = YES;
broadcastView.roodUid = giftInfo.roomUid;
broadcastView.roomName = giftInfo.roomTitle;
broadcastView.delegate = self;
[kWindow addSubview:broadcastView];
return;
}
if (!giftInfo.isInRoomVisiable && giftInfo.roomUid.length > 0 && giftInfo.roomUid.integerValue != self.delegate.getRoomInfo.uid) {
[self.delegate exitRoom];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[XPRoomViewController openRoom:giftInfo.roomUid viewController:[XCCurrentVCStackManager shareManager].getCurrentVC];
});
}
}
#pragma mark -
@@ -2590,13 +2631,6 @@
- (NSMutableArray *)compoundGiftQueue {
if (!_compoundGiftQueue) {
_compoundGiftQueue = [NSMutableArray array];
}
return _compoundGiftQueue;
}
- (NSMutableArray<NSDictionary *> *)carEffectQueue {

View File

@@ -22,7 +22,10 @@
@interface XPRoomLuckyBigPrizeView ()<SVGAPlayerDelegate>
///
@property (strong, nonatomic) SVGAParser *parser;
@property (nonatomic, strong) XPSVGAPlayer *giftImageView;
@property (nonatomic, strong) XPSVGAPlayer *giftSvgaView;
@property(nonatomic,strong) NetImageView *chestImageView;
@property(nonatomic,strong) NetImageView *giftImageView;
@property(nonatomic,strong) UILabel *contentView;
@end
@implementation XPRoomLuckyBigPrizeView
@@ -38,15 +41,31 @@
#pragma mark - Private Method
- (void)initSubViews {
[self addSubview:self.giftSvgaView];
[self addSubview:self.chestImageView];
[self addSubview:self.giftImageView];
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapRecognizer:)];
[self addGestureRecognizer:tap];
[self addSubview:self.contentView];
}
- (void)initSubViewConstraints {
[self.giftImageView mas_makeConstraints:^(MASConstraintMaker *make) {
[self.giftSvgaView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self);
}];
[self.chestImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(9);
make.centerY.equalTo(self);
make.height.width.mas_equalTo(60);
}];
[self.giftImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.trailing.mas_equalTo(-9);
make.centerY.equalTo(self);
make.height.width.mas_equalTo(60);
}];
[self.contentView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.equalTo(self).inset(69);
make.top.mas_equalTo(19);
}];
}
#pragma mark - Event Response
@@ -55,72 +74,71 @@
[self.delegate xPRoomLuckyBigPrizeView:self luckyGiftInfo:self.giftInfo];
}
}
- (void)chestImageViewTapRecognizer:(UITapGestureRecognizer *)tap{
[self tapRecognizer:tap];
}
- (void)giftImageViewTapRecognizer:(UITapGestureRecognizer *)tap{
[self tapRecognizer:tap];
}
#pragma mark - Getters And Setters
- (void)setGiftInfo:(PIBaseAnimationViewModel*)giftInfo {
_giftInfo = giftInfo;
if (_giftInfo) {
NSString * nick = _giftInfo.nick ?: @"";
if (nick.length > 6) {
nick = [nick substringToIndex:6];
if (nick.length > 5) {
nick = [nick substringToIndex:5];
}
NSString *goldPrice = _giftInfo.goldPrice ?: @"";
NSString *goldPrice = _giftInfo.goldPrice ?: @"0";
NSString *giftName = _giftInfo.giftName ?: @"";
NSString *luckyBagName = _giftInfo.luckyBagName ?: @"";
CGFloat fontSize = 22;
NSDictionary * dic = @{NSFontAttributeName:[UIFont systemFontOfSize:fontSize], NSForegroundColorAttributeName:[UIColor whiteColor]};
NSDictionary * mainDic = @{NSFontAttributeName:[UIFont systemFontOfSize:fontSize], NSForegroundColorAttributeName:[DJDKMIMOMColor appMainColor]};
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] init];
[attributedString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"XPGiftLuckyGiftBroadcastCell0") attributes:dic]];
[attributedString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:nick attributes:mainDic]];
[attributedString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:YMLocalizedString(@"XPRoomLuckyBigPrizeView1"),luckyBagName] attributes:dic]];
[attributedString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:goldPrice attributes:mainDic]];
[attributedString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:giftName attributes:mainDic]];
NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new];
paragraphStyle.lineBreakMode = NSLineBreakByCharWrapping;
paragraphStyle.alignment = NSTextAlignmentLeft;
paragraphStyle.lineSpacing = 4.0f;//
// ()
paragraphStyle.alignment = NSTextAlignmentLeft;
paragraphStyle.baseWritingDirection = NSWritingDirectionLeftToRight;
[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, attributedString.length)];
if (_giftInfo.isInRoomVisiable) {
[self.giftImageView setHidden:YES forKey:@"img_206"];
} else {
[self.giftImageView setHidden:NO forKey:@"img_206"];
NSString *giftNum = _giftInfo.giftNum ?: @"0";
NSString *mainText = [NSString stringWithFormat:YMLocalizedString(@"XPRoomLuckyBigPrizeView0"),nick,luckyBagName,goldPrice,giftName];
if([giftNum integerValue] > 1){
mainText = [NSString stringWithFormat:@"%@ X%@",mainText,giftNum];
}
CGFloat fontSize = 12;
NSDictionary * dic = @{NSFontAttributeName:[UIFont systemFontOfSize:fontSize weight:UIFontWeightMedium], NSForegroundColorAttributeName:UIColorFromRGB(0xFFF45E)};
NSDictionary * mainDic = @{NSFontAttributeName:[UIFont systemFontOfSize:fontSize weight:UIFontWeightMedium], NSForegroundColorAttributeName:[UIColor whiteColor]};
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] init];
[attributedString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:mainText attributes:mainDic]];
[attributedString addAttributes:dic range:[mainText rangeOfString:nick]];
[attributedString addAttributes:dic range:[mainText rangeOfString:luckyBagName]];
[attributedString addAttributes:dic range:[mainText rangeOfString:goldPrice]];
[attributedString addAttributes:dic range:[mainText rangeOfString:giftName]];
if([giftNum integerValue] > 1){
[attributedString addAttributes:dic range:[mainText rangeOfString:giftNum]];
}
_contentView.attributedText = attributedString;
_chestImageView.imageUrl = _giftInfo.luckyBagGiftPic;
_giftImageView.imageUrl = _giftInfo.giftPic;
@kWeakify(self);
[self.giftImageView setAttributedText:attributedString forKey:@"fdpp_copywriting"];
NSString * anatomiser1Name = [NSString stringWithFormat:@"%@/lucky_gift_streamer.svga", API_Image_URL];
[self.parser parseWithURL:[NSURL URLWithString:anatomiser1Name] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
[self.parser parseWithNamed:@"pi_room_lucky_gift" inBundle:nil completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
@kStrongify(self);
self.hidden = NO;
self.giftImageView.hidden = NO;
self.giftImageView.videoItem = videoItem;
self.giftImageView.loops = 1;
self.giftImageView.clearsAfterStop = YES;
[self.giftImageView startAnimation];
} failureBlock:^(NSError * _Nonnull error) {
self.giftSvgaView.hidden = NO;
self.giftSvgaView.videoItem = videoItem;
self.giftSvgaView.loops = 10000;
self.giftSvgaView.clearsAfterStop = YES;
[self.giftSvgaView startAnimation];
} failureBlock:^(NSError * _Nullable error) {
}];
}
}
- (void)svgaPlayerDidFinishedAnimation:(SVGAPlayer *)player{
NSLog(@"11111");
}
- (XPSVGAPlayer *)giftImageView {
if (!_giftImageView) {
_giftImageView = [[XPSVGAPlayer alloc]init];
_giftImageView.backgroundColor = [UIColor clearColor];
_giftImageView.userInteractionEnabled = NO;
_giftImageView.delegate = self;
- (XPSVGAPlayer *)giftSvgaView {
if (!_giftSvgaView) {
_giftSvgaView = [[XPSVGAPlayer alloc]init];
_giftSvgaView.backgroundColor = [UIColor clearColor];
_giftSvgaView.userInteractionEnabled = NO;
_giftSvgaView.delegate = self;
}
return _giftImageView;
return _giftSvgaView;
}
- (SVGAParser *)parser {
@@ -129,4 +147,30 @@
}
return _parser;
}
- (NetImageView *)chestImageView{
if(!_chestImageView){
_chestImageView = [NetImageView new];
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(chestImageViewTapRecognizer:)];
_chestImageView.userInteractionEnabled = YES;
[_chestImageView addGestureRecognizer:tap];
}
return _chestImageView;
}
- (NetImageView *)giftImageView{
if(!_giftImageView){
_giftImageView = [NetImageView new];
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(giftImageViewTapRecognizer:)];
_giftImageView.userInteractionEnabled = YES;
[_giftImageView addGestureRecognizer:tap];
}
return _giftImageView;
}
- (UILabel *)contentView{
if(!_contentView){
_contentView = [UILabel labelInitWithText:@"" font:kFontMedium(10) textColor:[UIColor whiteColor]];
_contentView.textAlignment = NSTextAlignmentCenter;
_contentView.numberOfLines = 2;
}
return _contentView;
}
@end

View File

@@ -23,6 +23,9 @@ NS_ASSUME_NONNULL_BEGIN
- (void)configGiftUsers:(NSArray<XPGiftUserInfoModel *> *)users;
///代理
@property (nonatomic,weak) id<XPGiftUsersViewDelegate> delegate;
-(NSMutableArray<NSString *>*)getSelectUserList;
@end
NS_ASSUME_NONNULL_END

View File

@@ -175,7 +175,9 @@
[self.collectionView reloadData];
NSString * selectUid = [NSString stringWithFormat:@"%ld", queue.uid];
if (queue.isSelect) {
if (![self.selectUserArray containsObject:selectUid]) {
[self.selectUserArray addObject:selectUid];
}
} else {
if ([self.selectUserArray containsObject:selectUid]) {
[self.selectUserArray removeObject:selectUid];
@@ -193,6 +195,19 @@
[self.delegate xPGiftUsersView:self didSelectUsers:self.selectUserArray];
}
}
-(NSMutableArray<NSString *>*)getSelectUserList{
NSMutableArray *userList = [NSMutableArray array];
for (XPGiftUserInfoModel * queue in self.userArray) {
if(queue.isSelect == YES){
NSString * selectUid = [NSString stringWithFormat:@"%ld", queue.uid];
if(![userList containsObject:selectUid]){
[userList addObject:selectUid];
}
}
}
return userList;
}
#pragma mark - Getters And Setters
- (UIStackView *)stackView {
if (!_stackView) {

View File

@@ -360,7 +360,7 @@ UIKIT_EXTERN NSString * kShowFirstRechargeView;
}
- (RoomSendGiftType)dealRoomSendGiftType:(GiftInfoModel *)giftInfo giftCount:(XPGiftCountModel *)giftCount {
NSArray * uids = self.userView.selectUserArray;
NSArray * uids = [self.userView getSelectUserList];
RoomSendGiftType roomSendGiftType;
if (self.userView.isSelectAll) {
if (giftInfo.sourceType == GiftSourceType_Pack && giftCount.isTotal && giftInfo && uids.count > 1) {
@@ -368,13 +368,13 @@ UIKIT_EXTERN NSString * kShowFirstRechargeView;
return -1;
}
roomSendGiftType = RoomSendGiftType_AllMic;
} else if(self.userView.selectUserArray.count > 1) {
} else if(uids.count > 1) {
if (giftInfo.sourceType == GiftSourceType_Pack && giftCount.isTotal) {
[self showErrorToast:YMLocalizedString(@"XPSendGiftView1")];
return -1;
}
roomSendGiftType = RoomSendGiftType_MutableOnMic;
} else if(self.userView.selectUserArray.count == 1) {
} else if(uids.count == 1) {
roomSendGiftType = RoomSendGiftType_ToOne;
} else {
roomSendGiftType = -1;
@@ -395,7 +395,7 @@ UIKIT_EXTERN NSString * kShowFirstRechargeView;
#pragma mark - XPGiftBarViewDelegate
- (void)xPGiftBarView:(XPGiftBarView *)view didClickSendGift:(XPGiftCountModel *)giftCount {
///
NSArray * uids = self.userView.selectUserArray;
NSArray * uids = [self.userView getSelectUserList];
GiftInfoModel * giftInfo = self.giftInfoView.lastSelectGift;
if (self.usingplaceType == SendGiftType_Room) {
if (uids.count > 0) {
@@ -561,7 +561,7 @@ UIKIT_EXTERN NSString * kShowFirstRechargeView;
self.graffitiView.hidden = NO;
self.graffitiView.price = info.goldPrice;
self.giftBarView.drawGiftCount = 0;
self.graffitiView.selectUidNumber = self.userView.selectUserArray.count;
self.graffitiView.selectUidNumber = [self.userView getSelectUserList].count;
[[SDWebImageManager sharedManager] loadImageWithURL:[NSURL URLWithString:info.giftUrl] options:SDWebImageProgressiveLoad progress:nil completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, SDImageCacheType cacheType, BOOL finished, NSURL * _Nullable imageURL) {
if (error == nil && image) {
self.graffitiView.image = image;

View File

@@ -433,7 +433,7 @@
- (void)createBigPrizeAnimation:(PIBaseAnimationViewModel *)prizeModel {
self.isPlayOfB = YES;
CGFloat top = self.isPlayOfA == YES ? (self.broadCastHieght + statusbarHeight) : (kNavigationHeight + 15);
XPRoomLuckyBigPrizeView * luckyGiftEffectView = [[XPRoomLuckyBigPrizeView alloc] initWithFrame:CGRectMake(KScreenWidth, top, 375, 60)];
XPRoomLuckyBigPrizeView * luckyGiftEffectView = [[XPRoomLuckyBigPrizeView alloc] initWithFrame:CGRectMake(KScreenWidth, top, 375, 71)];
luckyGiftEffectView.delegate = self;
[kWindow addSubview:luckyGiftEffectView];
@@ -444,36 +444,51 @@
springAnimation.springBounciness = 10.f;
springAnimation.fromValue = [NSValue valueWithCGPoint:luckyGiftEffectView.center];
springAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(KScreenWidth / 2, luckyGiftEffectView.center.y)];
[springAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) {
if (finished) {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 7 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
POPBasicAnimation *moveAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewCenter];
moveAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(KScreenWidth / 2, luckyGiftEffectView.center.y)];
moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(-KScreenWidth, luckyGiftEffectView.center.y)];
moveAnimation.beginTime = CACurrentMediaTime() + 3;
moveAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(0, luckyGiftEffectView.center.y)];
moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(-KScreenWidth/2, luckyGiftEffectView.center.y)];
moveAnimation.beginTime = CACurrentMediaTime();
moveAnimation.duration = 0.5;
moveAnimation.repeatCount = 1;
moveAnimation.removedOnCompletion = YES;
@kWeakify(self);
[moveAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) {
@kStrongify(self);
if (finished) {
[luckyGiftEffectView removeFromSuperview];
if (self.animationListB.count > 0) {
[self.animationListB removeObjectAtIndex:0];
}
self.isPlayOfB = NO;
// if(self.isAnimationListAFinish == YES){
// self.isAnimationListAFinish = NO;
// [self playAnimationWithModel];
// return;
// }
// if(self.isAnimationListAFinish == YES){
// self.isAnimationListAFinish = NO;
// [self playAnimationWithModel];
// return;
// }
[self playAnimationWithModel];
}];
[luckyGiftEffectView pop_addAnimation:moveAnimation forKey:@"moveOutAnimation"];
}
}];
[luckyGiftEffectView pop_addAnimation:moveAnimation forKey:@"moveOutAnimation"];
});
[luckyGiftEffectView pop_addAnimation:springAnimation forKey:@"nobleLevelUpspingOutAnimation"];
}
#pragma mark - XPRoomLuckyBigPrizeViewDelegate
- (void)xPRoomLuckyBigPrizeView:(XPRoomLuckyBigPrizeView *)view luckyGiftInfo:(PIBaseAnimationViewModel *)giftInfo {
id isShowBroadcastView = [[NSUserDefaults standardUserDefaults]valueForKey:@"kSaveLuckSelectState"];
if(isShowBroadcastView == nil){
PIRoomGiftBroadcastWindow *broadcastView = [[PIRoomGiftBroadcastWindow alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)];
broadcastView.isLuck = YES;
broadcastView.roodUid = giftInfo.roomUid;
broadcastView.roomName = giftInfo.roomTitle;
broadcastView.delegate = self;
[kWindow addSubview:broadcastView];
return;
}
if (!giftInfo.isInRoomVisiable && giftInfo.roomUid.length > 0 ) {
[XPRoomViewController openRoom:giftInfo.roomUid viewController:[XCCurrentVCStackManager shareManager].getCurrentVC];
}

View File

@@ -176,6 +176,7 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey;
}
- (void)viewWillAppear:(BOOL)animated {

Binary file not shown.

View File

@@ -1476,6 +1476,8 @@
"XPGiftLuckyGiftBroadcastCell1" = "开出%@获得 ";
"XPGiftLuckyGiftBroadcastView0" = "玩法说明";
"XPSendGiftView0" = "只能全部赠送给一人";
"XPSendGiftView1" = "只能全部赠送给一人";
"XPSendGiftView2" = "请选择至少一个人";
@@ -1623,8 +1625,8 @@
"XPRoomAnchorRankBannerView0" = "恭喜 %@ 成为上时段 小时榜TOP1";
"XPRoomAnchorRankBannerView1" = "小时榜TOP1";
"XPRoomLuckyBigPrizeView0" = "恭喜";
"XPRoomLuckyBigPrizeView1" = "在%@幸运礼物中欧气爆棚开出了价值";
"XPRoomLuckyBigPrizeView0" = "恭喜!%@ 在 %@ 中欧气爆棚开出了价值 %@钻 的 %@";
"XPRoomActivityPlayView0" = "更多玩法";

View File

@@ -1625,8 +1625,8 @@
"XPRoomAnchorRankBannerView0" = "恭喜 %@ 成為上時段 小時榜TOP1";
"XPRoomAnchorRankBannerView1" = "小時榜TOP1";
"XPRoomLuckyBigPrizeView0" = "恭喜";
"XPRoomLuckyBigPrizeView1" = "在%@幸運禮物中歐氣爆棚開出了價值";
"XPRoomLuckyBigPrizeView0" = "恭喜%@ 在 %@ 中歐氣爆棚開出了價值 %@鉆 的 %@";
"XPRoomActivityPlayView0" = "更多玩法";