From f701261328f45ebe6fbdc9fc88bf536fd791b44d Mon Sep 17 00:00:00 2001 From: chenguilong <598604202@qq.com> Date: Sat, 8 Oct 2022 19:01:20 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A4=BC=E7=89=A9=E9=9D=A2=E6=9D=BF=E8=B0=83?= =?UTF-8?q?=E6=95=B4=EF=BC=8C=E5=A2=9E=E5=8A=A0=E7=A6=8F=E8=A2=8B=E3=80=81?= =?UTF-8?q?=E5=91=A8=E6=98=9F=E6=A8=AA=E5=B9=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xplan-ios.xcodeproj/project.pbxproj | 18 +- .../Gift/GiftLuckTab/Contents.json | 6 + .../Contents.json | 22 ++ .../gift_lucky_broadcast_bg@2x.png | Bin 0 -> 9721 bytes .../gift_lucky_broadcast_bg@3x.png | Bin 0 -> 18940 bytes .../Contents.json | 22 ++ .../gift_lucky_broadcast_icon@2x.png | Bin 0 -> 1774 bytes .../gift_lucky_broadcast_icon@3x.png | Bin 0 -> 2550 bytes .../Contents.json | 22 ++ .../gift_lucky_broadcast_playType@2x.png | Bin 0 -> 3998 bytes .../gift_lucky_broadcast_playType@3x.png | Bin 0 -> 5899 bytes .../Gift/GiftWeekStarTab/Contents.json | 6 + .../Contents.json | 22 ++ .../gift_weekStar_background@2x.png | Bin 0 -> 12465 bytes .../gift_weekStar_background@3x.png | Bin 0 -> 23870 bytes .../Contents.json | 22 ++ .../gift_weekStar_entrance@2x.png | Bin 0 -> 2138 bytes .../gift_weekStar_entrance@3x.png | Bin 0 -> 3124 bytes xplan-ios/Base/UI/ThemeColor.h | 2 +- xplan-ios/Base/UI/ThemeColor.m | 2 +- .../SendGiftView/ThemeColor+SendGift.h | 12 +- .../SendGiftView/ThemeColor+SendGift.m | 30 +-- .../View/Cell/XPGiftItemCollectionViewCell.m | 4 +- .../View/Cell/XPGiftUserCollectionViewCell.m | 4 +- .../Cell/XPGiftWeekStarCollectionViewCell.m | 186 +------------ .../SendGiftView/View/XPGiftBarView.m | 6 +- .../SendGiftView/View/XPGiftHeadTypeView.m | 38 ++- .../SendGiftView/View/XPGiftInfoView.h | 14 +- .../SendGiftView/View/XPGiftInfoView.m | 157 ++++------- .../View/XPGiftLuckyGiftBroadcastView.h | 25 ++ .../View/XPGiftLuckyGiftBroadcastView.m | 98 +++++++ .../SendGiftView/View/XPGiftUsersView.m | 4 +- .../View/XPGiftWeekStarBroadcastView.h | 28 ++ .../View/XPGiftWeekStarBroadcastView.m | 255 ++++++++++++++++++ .../SendGiftView/View/XPGraffitiGiftView.h | 4 + .../SendGiftView/View/XPSendGiftView.m | 133 +++++++-- .../SendGiftView/View/XPWeekStarInfoView.h | 27 -- .../SendGiftView/View/XPWeekStarInfoView.m | 88 ------ 38 files changed, 776 insertions(+), 481 deletions(-) create mode 100644 xplan-ios/Assets.xcassets/Gift/GiftLuckTab/Contents.json create mode 100644 xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_bg.imageset/Contents.json create mode 100644 xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_bg.imageset/gift_lucky_broadcast_bg@2x.png create mode 100644 xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_bg.imageset/gift_lucky_broadcast_bg@3x.png create mode 100644 xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_icon.imageset/Contents.json create mode 100644 xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_icon.imageset/gift_lucky_broadcast_icon@2x.png create mode 100644 xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_icon.imageset/gift_lucky_broadcast_icon@3x.png create mode 100644 xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_playType.imageset/Contents.json create mode 100644 xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_playType.imageset/gift_lucky_broadcast_playType@2x.png create mode 100644 xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_playType.imageset/gift_lucky_broadcast_playType@3x.png create mode 100644 xplan-ios/Assets.xcassets/Gift/GiftWeekStarTab/Contents.json create mode 100644 xplan-ios/Assets.xcassets/Gift/GiftWeekStarTab/gift_weekStar_background.imageset/Contents.json create mode 100644 xplan-ios/Assets.xcassets/Gift/GiftWeekStarTab/gift_weekStar_background.imageset/gift_weekStar_background@2x.png create mode 100644 xplan-ios/Assets.xcassets/Gift/GiftWeekStarTab/gift_weekStar_background.imageset/gift_weekStar_background@3x.png create mode 100644 xplan-ios/Assets.xcassets/Gift/GiftWeekStarTab/gift_weekStar_entrance.imageset/Contents.json create mode 100644 xplan-ios/Assets.xcassets/Gift/GiftWeekStarTab/gift_weekStar_entrance.imageset/gift_weekStar_entrance@2x.png create mode 100644 xplan-ios/Assets.xcassets/Gift/GiftWeekStarTab/gift_weekStar_entrance.imageset/gift_weekStar_entrance@3x.png create mode 100644 xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftLuckyGiftBroadcastView.h create mode 100644 xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftLuckyGiftBroadcastView.m create mode 100644 xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftWeekStarBroadcastView.h create mode 100644 xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftWeekStarBroadcastView.m delete mode 100644 xplan-ios/Main/ModuleKit/SendGiftView/View/XPWeekStarInfoView.h delete mode 100644 xplan-ios/Main/ModuleKit/SendGiftView/View/XPWeekStarInfoView.m diff --git a/xplan-ios.xcodeproj/project.pbxproj b/xplan-ios.xcodeproj/project.pbxproj index 22acd12d..447d1ad8 100644 --- a/xplan-ios.xcodeproj/project.pbxproj +++ b/xplan-ios.xcodeproj/project.pbxproj @@ -164,7 +164,6 @@ 9B39C88C28855ECA00564D17 /* XPHomeLivePageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B39C88B28855ECA00564D17 /* XPHomeLivePageViewController.m */; }; 9B3A1DF4280571000058E2DD /* XPAnchorPKInviteView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B3A1DF3280571000058E2DD /* XPAnchorPKInviteView.m */; }; 9B41D36E282649230048C588 /* XPWeekStarRankUserModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B41D36D282649230048C588 /* XPWeekStarRankUserModel.m */; }; - 9B41D37128264E320048C588 /* XPWeekStarInfoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B41D37028264E320048C588 /* XPWeekStarInfoView.m */; }; 9B42868E28C1AE2D009034D2 /* XPReceiveRedPacketView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B42868D28C1AE2D009034D2 /* XPReceiveRedPacketView.m */; }; 9B42869228C1AED4009034D2 /* XPReceiveRedPacketModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B42869128C1AED4009034D2 /* XPReceiveRedPacketModel.m */; }; 9B42869528C1E00A009034D2 /* XPRedPacketResultModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B42869428C1E00A009034D2 /* XPRedPacketResultModel.m */; }; @@ -173,6 +172,8 @@ 9B46B91728DDA893000E30DB /* XPHomeRedommendCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B46B91628DDA893000E30DB /* XPHomeRedommendCollectionViewCell.m */; }; 9B4769AD28DB270F00CCD312 /* XPHomePartyNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B4769AC28DB270F00CCD312 /* XPHomePartyNavView.m */; }; 9B4D148127E485EB000AA0C1 /* XPRoomTrumpetView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B4D148027E485EB000AA0C1 /* XPRoomTrumpetView.m */; }; + 9B4D449328F15765002572D5 /* XPGiftLuckyGiftBroadcastView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B4D449228F15765002572D5 /* XPGiftLuckyGiftBroadcastView.m */; }; + 9B4D449628F15EE7002572D5 /* XPGiftWeekStarBroadcastView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B4D449528F15EE7002572D5 /* XPGiftWeekStarBroadcastView.m */; }; 9B4E920028E57A620033419E /* XPGiftHeadTypeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B4E91FF28E57A620033419E /* XPGiftHeadTypeView.m */; }; 9B53D57A28E2CF18005187A3 /* XPTeenagerHomeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B53D57928E2CF18005187A3 /* XPTeenagerHomeView.m */; }; 9B5BF8A827E1BED1005DD346 /* Api+RoomTrumpet.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B5BF8A727E1BED1005DD346 /* Api+RoomTrumpet.m */; }; @@ -1501,8 +1502,6 @@ 9B3A1DF3280571000058E2DD /* XPAnchorPKInviteView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPAnchorPKInviteView.m; sourceTree = ""; }; 9B41D36C282649230048C588 /* XPWeekStarRankUserModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPWeekStarRankUserModel.h; sourceTree = ""; }; 9B41D36D282649230048C588 /* XPWeekStarRankUserModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPWeekStarRankUserModel.m; sourceTree = ""; }; - 9B41D36F28264E320048C588 /* XPWeekStarInfoView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPWeekStarInfoView.h; sourceTree = ""; }; - 9B41D37028264E320048C588 /* XPWeekStarInfoView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPWeekStarInfoView.m; sourceTree = ""; }; 9B42868C28C1AE2D009034D2 /* XPReceiveRedPacketView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPReceiveRedPacketView.h; sourceTree = ""; }; 9B42868D28C1AE2D009034D2 /* XPReceiveRedPacketView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPReceiveRedPacketView.m; sourceTree = ""; }; 9B42869028C1AED4009034D2 /* XPReceiveRedPacketModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPReceiveRedPacketModel.h; sourceTree = ""; }; @@ -1519,6 +1518,10 @@ 9B4769AC28DB270F00CCD312 /* XPHomePartyNavView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPHomePartyNavView.m; sourceTree = ""; }; 9B4D147F27E485EB000AA0C1 /* XPRoomTrumpetView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomTrumpetView.h; sourceTree = ""; }; 9B4D148027E485EB000AA0C1 /* XPRoomTrumpetView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomTrumpetView.m; sourceTree = ""; }; + 9B4D449128F15765002572D5 /* XPGiftLuckyGiftBroadcastView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGiftLuckyGiftBroadcastView.h; sourceTree = ""; }; + 9B4D449228F15765002572D5 /* XPGiftLuckyGiftBroadcastView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPGiftLuckyGiftBroadcastView.m; sourceTree = ""; }; + 9B4D449428F15EE7002572D5 /* XPGiftWeekStarBroadcastView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGiftWeekStarBroadcastView.h; sourceTree = ""; }; + 9B4D449528F15EE7002572D5 /* XPGiftWeekStarBroadcastView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPGiftWeekStarBroadcastView.m; sourceTree = ""; }; 9B4E91FE28E57A620033419E /* XPGiftHeadTypeView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGiftHeadTypeView.h; sourceTree = ""; }; 9B4E91FF28E57A620033419E /* XPGiftHeadTypeView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPGiftHeadTypeView.m; sourceTree = ""; }; 9B53D57828E2CF18005187A3 /* XPTeenagerHomeView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPTeenagerHomeView.h; sourceTree = ""; }; @@ -6630,10 +6633,12 @@ E8788947273A55D000BF1D57 /* XPGiftBarView.m */, E890BC0B273D09A50007C46B /* XPGiftCountView.h */, E890BC0C273D09A50007C46B /* XPGiftCountView.m */, - 9B41D36F28264E320048C588 /* XPWeekStarInfoView.h */, - 9B41D37028264E320048C588 /* XPWeekStarInfoView.m */, E8901CF428B38D89001E9A92 /* XPGraffitiGiftView.h */, E8901CF528B38D89001E9A92 /* XPGraffitiGiftView.m */, + 9B4D449128F15765002572D5 /* XPGiftLuckyGiftBroadcastView.h */, + 9B4D449228F15765002572D5 /* XPGiftLuckyGiftBroadcastView.m */, + 9B4D449428F15EE7002572D5 /* XPGiftWeekStarBroadcastView.h */, + 9B4D449528F15EE7002572D5 /* XPGiftWeekStarBroadcastView.m */, ); path = View; sourceTree = ""; @@ -9535,6 +9540,7 @@ E8ACEFF527C8EF0500F66D1A /* XPHomeHotRoomViewController.m in Sources */, E8E20BE828169BDC0033B688 /* XPMineLoginPasswordPresenter.m in Sources */, E81EF6DC279AB5CC00FF3EDE /* XPLittleGameRoomOpenView.m in Sources */, + 9B4D449628F15EE7002572D5 /* XPGiftWeekStarBroadcastView.m in Sources */, E84150C227747BF700A7F548 /* FirstRechargeModel.m in Sources */, 9B1EF3D227E81C0600554295 /* XPMineDressUpBubbleViewController.m in Sources */, E8A1E4512762082A00B294CA /* Api+CandyTree.m in Sources */, @@ -9652,6 +9658,7 @@ 186A534626FC6ED900D67B2C /* TTPopup.m in Sources */, E81EF6E0279AB7D900FF3EDE /* XPCreateLittleGameCollectionViewCell.m in Sources */, E8C167302806C01500ECB15C /* GuildSuperAdminInfoModel.m in Sources */, + 9B4D449328F15765002572D5 /* XPGiftLuckyGiftBroadcastView.m in Sources */, E81C278C26EAFAF60031E639 /* Base64.m in Sources */, E8C1CD7027D894B800376F83 /* RoomFaceTitleItemModel.m in Sources */, 189DD73D26E21C3F00AB55B1 /* YYUtility+Device.m in Sources */, @@ -9663,7 +9670,6 @@ E877A7EE278428FB00EFACED /* MicroDatingProgressView.m in Sources */, E8E0DAE9285C2E8C00566A2F /* FindNewGreetMessageModel.m in Sources */, E8C6FFE32754F349004DC9F0 /* XPSearchListTableViewCell.m in Sources */, - 9B41D37128264E320048C588 /* XPWeekStarInfoView.m in Sources */, E87A27032758BC81002DDC7A /* XPRoomSearchContainerViewController.m in Sources */, E884C3722743AEDE00E1EBED /* CustomAttachmentDecoder.m in Sources */, 18EE3FEE2750CE6D00A452BF /* NIMMessageUtils.m in Sources */, diff --git a/xplan-ios/Assets.xcassets/Gift/GiftLuckTab/Contents.json b/xplan-ios/Assets.xcassets/Gift/GiftLuckTab/Contents.json new file mode 100644 index 00000000..73c00596 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Gift/GiftLuckTab/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_bg.imageset/Contents.json b/xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_bg.imageset/Contents.json new file mode 100644 index 00000000..ddb69cd5 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_bg.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "gift_lucky_broadcast_bg@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "gift_lucky_broadcast_bg@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_bg.imageset/gift_lucky_broadcast_bg@2x.png b/xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_bg.imageset/gift_lucky_broadcast_bg@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f6ab6ed2cc9d2ba52c2751d27131d7fd8e63194f GIT binary patch literal 9721 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 literal 0 HcmV?d00001 diff --git a/xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_bg.imageset/gift_lucky_broadcast_bg@3x.png b/xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_bg.imageset/gift_lucky_broadcast_bg@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..383d36c220ccd113bb596291775238480c108b57 GIT binary patch literal 18940 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%0DlWlc QIRF3v07*qoM6N<$f_>7*?f?J) literal 0 HcmV?d00001 diff --git a/xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_icon.imageset/gift_lucky_broadcast_icon@3x.png b/xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_icon.imageset/gift_lucky_broadcast_icon@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..296a7845952109ddbaf36c05f30588c90791b056 GIT binary patch literal 2550 zcmVtmcwZ z%Rn*oqG0&Rfbo<)^qf%frD688ZSksH^R8R<$%gyos_&LZ$R;lO+Me~UaQD1(@0c(C z>9YLes`STn$}27Ny>RZ8KHFV1?W9@w+MV!@IsECe@Qy_JzJK$%V)eRU*j6m{!EWkt zG4;Z5`{AVbyK>icVEWpd_REd&qCM`8D*frP>}(_LZzKHZulwYx>}n$W;-&GKHuI=F z`Ou5`&4~1^Mf0OM`O)Pf;iVPH}IV?>1HhGU?BY8tNPlP`q!5F(2e=Yhxx^P_{wSa zt6TP_SoNb&^sr9pVNUd#NbEvJ)Hy%XGd1BlG0ZG6?sh8u>CF1qlJ~J=^k-P?Qb+Tu zM(0RG-8w|(RYT`NLGheC2Vn4Ru+9ym9!tZ1jd!^m|n8fk@y)N8CU`-cmU0fF$dB zBJYG7@xYbig<Qyz_I5Fc}Ewv^r>0loH?&SB?zWdR!y(l!}ZzC|$)B*qi08eyMPE!B`B?uu87djXI z+^BR*E(`th@X5hpR}}vK{rctN+sLh$hcNr~@9yi@)3=v@d;RzIT%$4*`+?TQ+3V)DUiX#?-@T;@sFX}K0N?`1i4c24{K$oF!YR& zC_TEK9*Twpa>@RcgRWU!Zuo|U^Ctu`o`w@i1{D0Mnrgly9UE$d9KT5_m7B5~MMJr{ zm4!PIxIkj47HBj&%H75YY*$U19Hyyh-4EA9+qcsiugbtnkr3d&kUjm zUE}%#=|uP@EpMFT0wxfs1NQ=U9oEeGi zZ%|zPG@L+&C8)eqSWr*^?NpMHnuE(RCM1jn>d6yYIM;+i1(oLt$GN&5ov}_vdgM3G z!kC!(vuMS|;JHw6&2VK!Y4DQCI)g}^)!QvGX8zU1w6bFaGNrl4?i{aZTxt27X|jV< zu3ns&XNmF0gzzl;p$`!}dg z1S;CD=jNryjTsr8wYNW9S*oo*5R{vTr%=?urJG6y5HV-N7X;YK&oDK;s(H+0J<)QNaU1#bPl+ zoI6M9S17-#8ir&KPIeBFz`d85#%aKq;xgGW@c|;y8<)6~5CTLzcFnKr9l8UqBy-!n zvO5Tb=$JH4eU_;yMwrfy$rFp9gws9&2slZzhe|@(H5zawm)K?ucY368jD;98Qw%!O zm>rX!6p$U~ql@T`?|jKpC9N7fTuF@L#ARo)IbOzf4W>ZiE}S;zu=j1j+a+@>cjwYsRyQ}d7HnW37-6NZfq|DJBBMM#Jp|{IuUsEJMe(-_ z$wn1@CX<Z2NI%19vkF#UKZMD2Wa{%H zqM{-kkH86Ojp%jC%C?oEnhW}Y@Lng+!~zV0wMq5#b`Noc6T)}*^zab4w}fg=8a~iu zQPftQz+z#sEEda#Un!^v)$a`!8w!4$pgKz0yjN6PFlnX@NLU!ZrJ{l#itUXiU~-Cs z-reMe4^!2ev}f6}xhg6ubLVQQE*LdbLP^!~N(yqlQBVN4#eX_q0KygyJIGOa!vFvP M07*qoM6N<$f`;8a!2kdN literal 0 HcmV?d00001 diff --git a/xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_playType.imageset/Contents.json b/xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_playType.imageset/Contents.json new file mode 100644 index 00000000..ab038a8b --- /dev/null +++ b/xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_playType.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "gift_lucky_broadcast_playType@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "gift_lucky_broadcast_playType@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_playType.imageset/gift_lucky_broadcast_playType@2x.png b/xplan-ios/Assets.xcassets/Gift/GiftLuckTab/gift_lucky_broadcast_playType.imageset/gift_lucky_broadcast_playType@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1806c6701df0109f90eac990b3adbd395a5fc0d1 GIT binary patch literal 3998 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 B7-9eb literal 0 HcmV?d00001 diff --git a/xplan-ios/Assets.xcassets/Gift/GiftWeekStarTab/Contents.json b/xplan-ios/Assets.xcassets/Gift/GiftWeekStarTab/Contents.json new file mode 100644 index 00000000..73c00596 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Gift/GiftWeekStarTab/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Gift/GiftWeekStarTab/gift_weekStar_background.imageset/Contents.json b/xplan-ios/Assets.xcassets/Gift/GiftWeekStarTab/gift_weekStar_background.imageset/Contents.json new file mode 100644 index 00000000..e417b94d --- /dev/null +++ b/xplan-ios/Assets.xcassets/Gift/GiftWeekStarTab/gift_weekStar_background.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "gift_weekStar_background@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "gift_weekStar_background@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Gift/GiftWeekStarTab/gift_weekStar_background.imageset/gift_weekStar_background@2x.png b/xplan-ios/Assets.xcassets/Gift/GiftWeekStarTab/gift_weekStar_background.imageset/gift_weekStar_background@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9a33a3eec0b951c1213823c6e0d4c8ca6a0dd66c GIT binary patch literal 12465 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 Q82|tP07*qoM6N<$g8w`37ytkO literal 0 HcmV?d00001 diff --git a/xplan-ios/Assets.xcassets/Gift/GiftWeekStarTab/gift_weekStar_entrance.imageset/gift_weekStar_entrance@3x.png b/xplan-ios/Assets.xcassets/Gift/GiftWeekStarTab/gift_weekStar_entrance.imageset/gift_weekStar_entrance@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..0a8e198c9e76bf60be600928bf48b276dd461331 GIT binary patch literal 3124 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 O0000 8) { - nick = [nick substringFromIndex:8]; - } - self.nickLabel.text = nick; - } else { - self.avatarImageView.image = [UIImageConstant defaultEmptyAvatarPlaceholder]; - self.nickLabel.text = @"虚位以待"; - } - self.avatarImageView.layer.borderColor = UIColorFromRGB(0xA563EB).CGColor; - [self.contentButton setBackgroundImage:[UIImage imageNamed:@"gift_info_week_star_charm_bg"] forState:UIControlStateNormal]; - [self.contentButton setTitle:@"本周该礼物冠名者" forState:UIControlStateNormal]; - [self.contentButton setTitleColor:UIColorFromRGB(0x35105C) forState:UIControlStateNormal]; -} - -- (void)setFirstLevelRankUser:(XPWeekStarRankUserModel *)firstLevelRankUser { - _firstLevelRankUser = firstLevelRankUser; - if (_firstLevelRankUser) { - self.avatarImageView.imageUrl = _firstLevelRankUser.avatar; - NSString * nick = _firstLevelRankUser.nick; - if (nick.length > 8) { - nick = [nick substringFromIndex:8]; - } - self.nickLabel.text = nick; - } else { - self.avatarImageView.image = [UIImageConstant defaultEmptyAvatarPlaceholder]; - self.nickLabel.text = @"虚位以待"; - - } - self.avatarImageView.layer.borderColor = UIColorFromRGB(0xFFBC51).CGColor; - [self.contentButton setBackgroundImage:[UIImage imageNamed:@"gift_info_week_star_level_bg"] forState:UIControlStateNormal]; - [self.contentButton setTitle:@"本周该礼物星神豪" forState:UIControlStateNormal]; - [self.contentButton setTitleColor:UIColorFromRGB(0x754304) forState:UIControlStateNormal]; -} - - - -- (NetImageView *)avatarImageView { - if (!_avatarImageView) { - NetImageConfig * config = [[NetImageConfig alloc]init]; - config.imageType = ImageTypeUserIcon; - config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; - _avatarImageView = [[NetImageView alloc] initWithConfig:config]; - _avatarImageView.layer.masksToBounds = YES; - _avatarImageView.layer.cornerRadius = 22; - _avatarImageView.layer.borderWidth = 1; - } - return _avatarImageView; -} - -- (UILabel *)nickLabel { - if (!_nickLabel) { - _nickLabel = [[UILabel alloc] init]; - _nickLabel.font = [UIFont systemFontOfSize:10]; - _nickLabel.textColor = [UIColor whiteColor]; - _nickLabel.textAlignment = NSTextAlignmentCenter; - } - return _nickLabel; -} - -- (UIButton *)contentButton { - if (!_contentButton) { - _contentButton = [UIButton buttonWithType:UIButtonTypeCustom]; - _contentButton.titleLabel.font = [UIFont systemFontOfSize:10]; - } - return _contentButton; -} - - -@end - - @interface XPGiftWeekStarCollectionViewCell () ///列表 @property (nonatomic,strong) UICollectionView *collectionView; ///分页 @property (nonatomic,strong) UIPageControl *pageController; -///用户的容器 -@property (nonatomic,strong) UIStackView *userStackView; -///冠名 -@property (nonatomic,strong) XPGiftWeekStarUserView *sendUserView; -///礼物神豪 -@property (nonatomic,strong) XPGiftWeekStarUserView *receiveUserView; ///选中的礼物 @property (nonatomic,strong) GiftInfoModel *selectGiftInfo; @end @@ -174,16 +42,12 @@ - (void)initSubViews { [self.contentView addSubview:self.collectionView]; [self.contentView addSubview:self.pageController]; - [self.contentView addSubview:self.userStackView]; - - [self.userStackView addArrangedSubview:self.sendUserView]; - [self.userStackView addArrangedSubview:self.receiveUserView]; } - (void)initSubViewConstraints { [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.mas_equalTo(self.contentView); - make.height.mas_equalTo(108); + make.height.mas_equalTo(108 * 2); }]; [self.pageController mas_makeConstraints:^(MASConstraintMaker *make) { @@ -191,11 +55,6 @@ make.left.right.mas_equalTo(self.contentView); make.height.mas_equalTo(10); }]; - - [self.userStackView mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.right.bottom.mas_equalTo(self.contentView); - make.top.mas_equalTo(self.pageController.mas_bottom).offset(0); - }]; } @@ -248,10 +107,10 @@ self.selectGiftInfo = _weekStarGiftList.firstObject; } NSInteger page = 0; - if (_weekStarGiftList.count % 4 == 0) { //刚好满页 - page = _weekStarGiftList.count / 4; + if (_weekStarGiftList.count % 8 == 0) { //刚好满页 + page = _weekStarGiftList.count / 8; } else { - page = _weekStarGiftList.count / 4 + 1; + page = _weekStarGiftList.count / 8 + 1; } self.pageController.hidden = page <= 1; [self.pageController setNumberOfPages:page]; @@ -259,24 +118,12 @@ [self.collectionView reloadData]; } -- (void)setSelectGiftInfo:(GiftInfoModel *)selectGiftInfo { - _selectGiftInfo = selectGiftInfo; - if (_selectGiftInfo) { - self.sendUserView.firstCharmRankUser = _selectGiftInfo.firstCharmRankUser; - self.receiveUserView.firstLevelRankUser = _selectGiftInfo.firstLevelRankUser; - } else { - self.receiveUserView.hidden = YES; - self.sendUserView.hidden = YES; - } -} - - (UICollectionView *)collectionView{ if (!_collectionView) { XPGiftCollectionViewFlowLayout *layout = [[XPGiftCollectionViewFlowLayout alloc] init]; layout.minimumLineSpacing = 5; layout.minimumInteritemSpacing = 5; layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0); - layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; _collectionView.dataSource = self; _collectionView.delegate = self; @@ -288,31 +135,6 @@ return _collectionView; } -- (UIStackView *)userStackView { - if (!_userStackView) { - _userStackView = [[UIStackView alloc] init]; - _userStackView.axis = UILayoutConstraintAxisHorizontal; - _userStackView.distribution = UIStackViewDistributionFillEqually; - _userStackView.alignment = UIStackViewAlignmentFill; - _userStackView.spacing = 0; - } - return _userStackView; -} - -- (XPGiftWeekStarUserView *)sendUserView { - if (!_sendUserView) { - _sendUserView = [[XPGiftWeekStarUserView alloc] init]; - } - return _sendUserView; -} - -- (XPGiftWeekStarUserView *)receiveUserView { - if (!_receiveUserView) { - _receiveUserView = [[XPGiftWeekStarUserView alloc] init]; - } - return _receiveUserView; -} - - (UIPageControl *)pageController { if (!_pageController) { _pageController = [[UIPageControl alloc] init]; diff --git a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftBarView.m b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftBarView.m index b860ed01..db34bdc3 100644 --- a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftBarView.m +++ b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftBarView.m @@ -318,7 +318,7 @@ if (_walletInfoModel) { NSString * diamonds = _walletInfoModel.diamonds; NSString * title = [NSString stringWithFormat:@"余额:%@", diamonds]; - NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13], NSForegroundColorAttributeName:[ThemeColor giftBalanceColor]}]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12], NSForegroundColorAttributeName:[ThemeColor giftBalanceColor]}]; [attribute addAttribute:NSForegroundColorAttributeName value:[ThemeColor giftCountTitleColor] range:[title rangeOfString:diamonds]]; self.balanceLabel.attributedText = attribute; } @@ -348,7 +348,7 @@ if (!_rechargeLabel) { _rechargeLabel = [[UILabel alloc] init]; _rechargeLabel.text = @"充值"; - _rechargeLabel.font = [UIFont systemFontOfSize:13]; + _rechargeLabel.font = [UIFont systemFontOfSize:12]; _rechargeLabel.textColor = [ThemeColor giftRechargeColor]; } return _rechargeLabel; @@ -406,7 +406,7 @@ if (!_sendGiftButton) { _sendGiftButton = [UIButton buttonWithType:UIButtonTypeCustom]; [_sendGiftButton setTitle:@"赠送" forState:UIControlStateNormal]; - [_sendGiftButton setTitleColor:[ThemeColor confirmButtonTextColor] forState:UIControlStateNormal]; + [_sendGiftButton setTitleColor:[ThemeColor mainTextColor] forState:UIControlStateNormal]; [_sendGiftButton setTitle:@"赠送中..." forState:UIControlStateDisabled]; [_sendGiftButton setTitleColor:[ThemeColor disableButtonTextColor] forState:UIControlStateDisabled]; [_sendGiftButton setTitle:@"赠送" forState:UIControlStateSelected]; diff --git a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftHeadTypeView.m b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftHeadTypeView.m index b651940d..2c1b0927 100644 --- a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftHeadTypeView.m +++ b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftHeadTypeView.m @@ -16,6 +16,8 @@ ///礼物 @property (nonatomic, strong) UIButton *giftButton; +///分割线 +@property (nonatomic, strong) UIView *devideView; ///互动 @property (nonatomic, strong) UIButton *interactButton; ///轮播图 @@ -39,6 +41,7 @@ #pragma mark - Private Method - (void)initSubViews { [self addSubview:self.giftButton]; + [self addSubview:self.devideView]; [self addSubview:self.interactButton]; [self addSubview:self.cycleScrollView]; } @@ -51,13 +54,20 @@ [self.giftButton mas_makeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(16); make.centerY.mas_equalTo(self); - make.width.mas_equalTo(50); + make.width.mas_equalTo(30); }]; [self.interactButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.left.mas_equalTo(self.devideView.mas_right).mas_offset(8); + make.width.mas_equalTo(30); + }]; + + [self.devideView mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.mas_equalTo(self); make.left.mas_equalTo(self.giftButton.mas_right).mas_offset(8); - make.width.mas_equalTo(50); + make.width.mas_equalTo(1); + make.height.mas_equalTo(10); }]; [self.cycleScrollView mas_makeConstraints:^(MASConstraintMaker *make) { make.right.mas_equalTo(-16); @@ -92,6 +102,8 @@ } sender.selected = YES; self.interactButton.selected = NO; + sender.titleLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightSemibold]; + self.interactButton.titleLabel.font = [UIFont systemFontOfSize:13]; } - (void)interactButtonAction:(UIButton *)sender { @@ -102,6 +114,8 @@ } sender.selected = YES; self.giftButton.selected = NO; + sender.titleLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightSemibold]; + self.giftButton.titleLabel.font = [UIFont systemFontOfSize:13]; } #pragma mark - setter @@ -119,11 +133,11 @@ - (UIButton *)giftButton { if (!_giftButton) { UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; - button.titleLabel.font = [UIFont systemFontOfSize:13]; + button.titleLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightSemibold]; [button addTarget:self action:@selector(giftButtonAction:) forControlEvents:UIControlEventTouchUpInside]; - [button setTitle:@"礼物" forState:UIControlStateNormal]; - [button setTitleColor:[ThemeColor textThirdColor] forState:UIControlStateNormal]; - [button setTitleColor:[ThemeColor appMainColor] forState:UIControlStateSelected]; + [button setTitle:@"送礼" forState:UIControlStateNormal]; + [button setTitleColor:[ThemeColor secondTextColor] forState:UIControlStateNormal]; + [button setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; button.selected = YES; _giftButton = button; } @@ -136,13 +150,21 @@ button.titleLabel.font = [UIFont systemFontOfSize:13]; [button addTarget:self action:@selector(interactButtonAction:) forControlEvents:UIControlEventTouchUpInside]; [button setTitle:@"互动" forState:UIControlStateNormal]; - [button setTitleColor:[ThemeColor textThirdColor] forState:UIControlStateNormal]; - [button setTitleColor:[ThemeColor appMainColor] forState:UIControlStateSelected]; + [button setTitleColor:[ThemeColor secondTextColor] forState:UIControlStateNormal]; + [button setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; _interactButton = button; } return _interactButton; } +- (UIView *)devideView { + if (!_devideView) { + _devideView = [[UIView alloc] init]; + _devideView.backgroundColor = UIColorRGBAlpha(0xffffff, 0.1); + } + return _devideView; +} + - (SDCycleScrollView *)cycleScrollView { if (!_cycleScrollView) { _cycleScrollView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectZero delegate:self placeholderImage:nil]; diff --git a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftInfoView.h b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftInfoView.h index 9428d38e..c5a8510c 100644 --- a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftInfoView.h +++ b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftInfoView.h @@ -23,20 +23,14 @@ typedef NS_ENUM(NSInteger, GiftSegmentType) { @protocol XPGiftInfoViewDelegate -///点击了 规则说明 -- (void)xPGiftInfoView:(XPGiftInfoView *)view didClickPlayRule:(NSString *)ruleUrl; - ///点击了切换不同礼物的tabbar - (void)xPGiftInfoView:(XPGiftInfoView *)view didClickSegment:(GiftSegmentType)type; ///点击了某个item - (void)xPGiftInfoView:(XPGiftInfoView *)view didClickItem:(GiftInfoModel *)info type:(GiftSegmentType)type; -///点击了贵族特权 -- (void)xPGiftInfoViewDidClickNobleEntrance:(XPGiftInfoView *)view; - -///点击了周星榜 -- (void)xpGiftInfoViewDidClickWeekStarRank:(XPGiftInfoView *)view; +///点击了某个周星礼物 +- (void)xpGiftInfoViewDidClickWeekStarGift:(GiftInfoModel *)info; @end @@ -58,6 +52,10 @@ typedef NS_ENUM(NSInteger, GiftSegmentType) { @property (nonatomic, copy) NSString *defaultSelectGiftId; +///头部礼物类型变更 +/// - Parameter headType: 1:礼物 2:互动 +- (void)giftHeadTypeHadChange:(NSInteger)headType; + @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftInfoView.m b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftInfoView.m index 654a59f5..fbec57a3 100644 --- a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftInfoView.m +++ b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftInfoView.m @@ -20,9 +20,8 @@ #import "XPGiftEmptyCollectionViewCell.h" #import "XPGiftWeekStarCollectionViewCell.h" #import "XPGiftCollectionViewFlowLayout.h" -#import "XPWeekStarInfoView.h" -@interface XPGiftInfoView () +@interface XPGiftInfoView () ///滚动的容器 @property (nonatomic,strong) UIScrollView *scrollView; @property (nonatomic,strong) UIStackView *segmentStackView; @@ -36,18 +35,10 @@ @property (nonatomic,strong) UIButton *nobleGiftButton; ///周星礼物 @property (nonatomic, strong) UIButton *weekStarButton; -///占位的 -@property (nonatomic,strong) UIView * segmentPlaceView; -///玩法规则的 -@property (nonatomic,strong) UIButton *playRuleButton; ///涂鸦礼物 @property (nonatomic,strong) UIButton *graffitiButton; ///背包总价值 @property (nonatomic,strong) UILabel *totalValueLabel; -///周星榜 -@property (nonatomic,strong) XPWeekStarInfoView *weekStarView; -///贵族特权 -@property (nonatomic, strong) UIButton *nobleButton; /// @property (nonatomic,strong) UIStackView *giftStackView; ///l礼物列表 @@ -102,23 +93,6 @@ self.segmentType = sender.tag; } -- (void)playRuleButtonAction:(UIButton *)sender { - if (self.delegate && [self.delegate respondsToSelector:@selector(xPGiftInfoView:didClickPlayRule:)]) { - NSString * giftExplainUrl; - if (self.segmentType == GiftSegmentType_Lucky) { - giftExplainUrl = [NSString stringWithFormat:URLWithType(kLuckyGiftPlayRuleURL), [NSString stringWithFormat:@"%ld", self.lastSelectGift.giftId]]; - } else { - giftExplainUrl = self.lastSelectGift.giftExplainUrl; - } - [self.delegate xPGiftInfoView:self didClickPlayRule:giftExplainUrl]; - } -} -- (void)didClickNobleSegmentAction:(UIButton *)sender { - if (self.delegate && [self.delegate respondsToSelector:@selector(xPGiftInfoViewDidClickNobleEntrance:)]) { - [self.delegate xPGiftInfoViewDidClickNobleEntrance:self]; - } -} - #pragma mark - Public Method - (void)updatePackSource:(GiftReceiveInfoModel *)giftReceiveInfo numberUser:(NSInteger)numberUser { GiftInfoModel * giftInfo = [self findGiftInfoByGiftId:giftReceiveInfo.giftId.integerValue]; @@ -129,25 +103,41 @@ [self.giftcollectionView reloadData]; } +- (void)giftHeadTypeHadChange:(NSInteger)headType { + if (headType == 1) { + [self.graffitiButton removeFromSuperview]; + [self.segmentStackView addArrangedSubview:self.normalGiftButton]; + [self.segmentStackView addArrangedSubview:self.luckyGiftButton]; + [self.segmentStackView addArrangedSubview:self.nobleGiftButton]; + [self.segmentStackView addArrangedSubview:self.weekStarButton]; + if(self.segmentType != GiftSegmentType_Pack) { + [self didClickGiftSegmentAction:self.normalGiftButton]; + } + } else { + [self.normalGiftButton removeFromSuperview]; + [self.luckyGiftButton removeFromSuperview]; + [self.nobleGiftButton removeFromSuperview]; + [self.weekStarButton removeFromSuperview]; + [self.segmentStackView addArrangedSubview:self.graffitiButton]; + if(self.segmentType != GiftSegmentType_Pack) { + [self didClickGiftSegmentAction:self.graffitiButton]; + } + } +} + #pragma mark - Private Method - (void)initSubViews { [self addSubview:self.scrollView]; [self addSubview:self.giftStackView]; - + [self addSubview:self.packGiftButton]; + [self addSubview:self.totalValueLabel]; [self.scrollView addSubview:self.segmentStackView]; ///分段控制 [self.segmentStackView addArrangedSubview:self.normalGiftButton]; [self.segmentStackView addArrangedSubview:self.luckyGiftButton]; [self.segmentStackView addArrangedSubview:self.nobleGiftButton]; [self.segmentStackView addArrangedSubview:self.weekStarButton]; - [self.segmentStackView addArrangedSubview:self.graffitiButton]; - [self.segmentStackView addArrangedSubview:self.packGiftButton]; - [self.segmentStackView addArrangedSubview:self.segmentPlaceView]; - [self.segmentStackView addArrangedSubview:self.playRuleButton]; - [self.segmentStackView addArrangedSubview:self.totalValueLabel]; - [self.segmentStackView addArrangedSubview:self.weekStarView]; - [self.segmentStackView addArrangedSubview:self.nobleButton]; ///礼物 [self.giftStackView addArrangedSubview:self.giftcollectionView]; [self.giftStackView addArrangedSubview:self.pageController]; @@ -163,14 +153,20 @@ }]; [self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.right.mas_equalTo(self).inset(15); + make.left.mas_equalTo(self).mas_offset(15); + make.right.mas_equalTo(self.packGiftButton.mas_left); make.top.mas_equalTo(self); make.height.mas_equalTo(30); }]; - - [self.playRuleButton mas_makeConstraints:^(MASConstraintMaker *make) { - make.width.mas_equalTo(75); - }]; + [self.packGiftButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-15); + make.centerY.height.mas_equalTo(self.scrollView); + make.width.mas_equalTo(30); + }]; + [self.totalValueLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.packGiftButton.mas_left); + make.centerY.mas_equalTo(self.packGiftButton); + }]; [self.giftStackView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(self.segmentStackView.mas_bottom).offset(10); @@ -198,8 +194,8 @@ giftTotal += gift.count * gift.goldPrice; } }]; - NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"总价值:" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:11],NSForegroundColorAttributeName:[ThemeColor giftPlayRuleColor]}]; - [str appendAttributedString:[[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@钻石",[self countFormatCoinStr:giftTotal]] attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13],NSForegroundColorAttributeName:[ThemeColor mainTextColor]}]]; + NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"总价值:" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:10],NSForegroundColorAttributeName:[ThemeColor secondTextColor]}]; + [str appendAttributedString:[[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@钻石",[self countFormatCoinStr:giftTotal]] attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12],NSForegroundColorAttributeName:[UIColor whiteColor]}]]; self.totalAttribute = str; } @@ -227,8 +223,12 @@ } else { giftInfo.sourceType = GiftSourceType_Normal; } - self.playRuleButton.hidden = self.segmentType == GiftSegmentType_Lucky ? NO : giftInfo.giftExplainUrl.length <= 0 ; giftInfo.isSelected = YES; + if (self.segmentType == GiftSegmentType_WeekStar) { + if (self.delegate && [self.delegate respondsToSelector:@selector(xpGiftInfoViewDidClickWeekStarGift:)]) { + [self.delegate xpGiftInfoViewDidClickWeekStarGift:giftInfo]; + } + } } // 根据礼物id查找 @@ -312,13 +312,6 @@ } } -#pragma mark - XPWeekStarInfoViewDelegate -- (void)xPWeekStarInfoViewRankButtonClick { - if (self.delegate && [self.delegate respondsToSelector:@selector(xpGiftInfoViewDidClickWeekStarRank:)]) { - [self.delegate xpGiftInfoViewDidClickWeekStarRank:self]; - } -} - #pragma mark - XPGiftWeekStarCollectionViewCellDelegate - (void)xPGiftWeekStarCollectionViewCell:(XPGiftWeekStarCollectionViewCell *)view didSelectGift:(GiftInfoModel *)giftInfo { [self dealSelectGift:giftInfo]; @@ -338,8 +331,6 @@ [self resetSelectGift:self.giftWeekStarArray]; [self resetSelectGift:self.giftGraffitiArray]; self.totalValueLabel.hidden = YES; - self.nobleButton.hidden = YES; - self.weekStarView.hidden = YES; switch (_segmentType) { case GiftSegmentType_Normal: [self.datasource addObjectsFromArray:self.giftArray]; @@ -349,12 +340,10 @@ break; case GiftSegmentType_Noble: { [self.datasource addObjectsFromArray:self.giftNobleArray]; - self.nobleButton.hidden = NO; } break; case GiftSegmentType_WeekStar: { [self.datasource addObjectsFromArray:self.giftWeekStarArray]; - self.weekStarView.hidden = NO; } break; case GiftSegmentType_Pack: @@ -383,8 +372,6 @@ GiftInfoModel * gift = [self.datasource firstObject]; [self dealSelectGift:gift]; } - } else { - self.playRuleButton.hidden = YES; } NSInteger page = 0; if (self.datasource.count % 8 == 0) { //刚好满页 @@ -519,7 +506,7 @@ [_normalGiftButton setTitle:@"礼物" forState:UIControlStateNormal]; [_normalGiftButton setTitleColor:[ThemeColor giftSegmentSelectTitleColor] forState:UIControlStateSelected]; [_normalGiftButton setTitleColor:[ThemeColor giftSegmentNormalTitleColor] forState:UIControlStateNormal]; - _normalGiftButton.titleLabel.font = [UIFont systemFontOfSize:14]; + _normalGiftButton.titleLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightSemibold]; _normalGiftButton.tag = GiftSegmentType_Normal; _normalGiftButton.selected = YES; [_normalGiftButton addTarget:self action:@selector(didClickGiftSegmentAction:) forControlEvents:UIControlEventTouchUpInside]; @@ -533,7 +520,7 @@ [_luckyGiftButton setTitle:@"幸运礼物" forState:UIControlStateNormal]; [_luckyGiftButton setTitleColor:[ThemeColor giftSegmentSelectTitleColor] forState:UIControlStateSelected]; [_luckyGiftButton setTitleColor:[ThemeColor giftSegmentNormalTitleColor] forState:UIControlStateNormal]; - _luckyGiftButton.titleLabel.font = [UIFont systemFontOfSize:14]; + _luckyGiftButton.titleLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightSemibold]; _luckyGiftButton.tag = GiftSegmentType_Lucky; _luckyGiftButton.selected = NO; [_luckyGiftButton addTarget:self action:@selector(didClickGiftSegmentAction:) forControlEvents:UIControlEventTouchUpInside]; @@ -547,7 +534,7 @@ [_nobleGiftButton setTitle:@"贵族" forState:UIControlStateNormal]; [_nobleGiftButton setTitleColor:[ThemeColor giftSegmentSelectTitleColor] forState:UIControlStateSelected]; [_nobleGiftButton setTitleColor:[ThemeColor giftSegmentNormalTitleColor] forState:UIControlStateNormal]; - _nobleGiftButton.titleLabel.font = [UIFont systemFontOfSize:14]; + _nobleGiftButton.titleLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightSemibold]; _nobleGiftButton.tag = GiftSegmentType_Noble; _nobleGiftButton.selected = NO; [_nobleGiftButton addTarget:self action:@selector(didClickGiftSegmentAction:) forControlEvents:UIControlEventTouchUpInside]; @@ -561,7 +548,7 @@ [_weekStarButton setTitle:@"周星礼物" forState:UIControlStateNormal]; [_weekStarButton setTitleColor:[ThemeColor giftSegmentSelectTitleColor] forState:UIControlStateSelected]; [_weekStarButton setTitleColor:[ThemeColor giftSegmentNormalTitleColor] forState:UIControlStateNormal]; - _weekStarButton.titleLabel.font = [UIFont systemFontOfSize:14]; + _weekStarButton.titleLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightSemibold]; _weekStarButton.tag = GiftSegmentType_WeekStar; _weekStarButton.selected = NO; [_weekStarButton addTarget:self action:@selector(didClickGiftSegmentAction:) forControlEvents:UIControlEventTouchUpInside]; @@ -575,7 +562,7 @@ [_packGiftButton setTitle:@"背包" forState:UIControlStateNormal]; [_packGiftButton setTitleColor:[ThemeColor giftSegmentSelectTitleColor] forState:UIControlStateSelected]; [_packGiftButton setTitleColor:[ThemeColor giftSegmentNormalTitleColor] forState:UIControlStateNormal]; - _packGiftButton.titleLabel.font = [UIFont systemFontOfSize:14]; + _packGiftButton.titleLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightSemibold]; _packGiftButton.tag = GiftSegmentType_Pack; _packGiftButton.selected = NO; [_packGiftButton addTarget:self action:@selector(didClickGiftSegmentAction:) forControlEvents:UIControlEventTouchUpInside]; @@ -589,7 +576,7 @@ [_graffitiButton setTitle:@"涂鸦礼物" forState:UIControlStateNormal]; [_graffitiButton setTitleColor:[ThemeColor giftSegmentSelectTitleColor] forState:UIControlStateSelected]; [_graffitiButton setTitleColor:[ThemeColor giftSegmentNormalTitleColor] forState:UIControlStateNormal]; - _graffitiButton.titleLabel.font = [UIFont systemFontOfSize:14]; + _graffitiButton.titleLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightSemibold]; _graffitiButton.tag = GiftSegmentType_Graffiti; _graffitiButton.selected = NO; [_graffitiButton addTarget:self action:@selector(didClickGiftSegmentAction:) forControlEvents:UIControlEventTouchUpInside]; @@ -597,32 +584,6 @@ return _graffitiButton; } -- (UIButton *)nobleButton { - if (!_nobleButton) { - _nobleButton = [UIButton buttonWithType:UIButtonTypeCustom]; - [_nobleButton setBackgroundImage:[UIImage imageNamed:@"room_gift_noble_entrance"] forState:UIControlStateNormal]; - _nobleButton.tag = GiftSegmentType_Normal; - [_nobleButton addTarget:self action:@selector(didClickNobleSegmentAction:) forControlEvents:UIControlEventTouchUpInside]; - _nobleButton.hidden = YES; - } - return _nobleButton; -} - - -- (UIButton *)playRuleButton { - if (!_playRuleButton) { - _playRuleButton = [UIButton buttonWithType:UIButtonTypeCustom]; - [_playRuleButton setTitle:@"玩法说明" forState:UIControlStateNormal]; - [_playRuleButton setTitleColor:[ThemeColor giftPlayRuleColor] forState:UIControlStateNormal]; - _playRuleButton.titleLabel.font = [UIFont systemFontOfSize:13]; - [_playRuleButton setImage:[UIImage imageNamed:@"gift_info_rule"] forState:UIControlStateNormal]; - [_playRuleButton addTarget:self action:@selector(playRuleButtonAction:) forControlEvents:UIControlEventTouchUpInside]; - [_playRuleButton setTitleEdgeInsets:UIEdgeInsetsMake(0, 5, 0, 0)]; - _playRuleButton.hidden = YES; - } - return _playRuleButton; -} - - (UILabel *)totalValueLabel { if (!_totalValueLabel) { _totalValueLabel = [[UILabel alloc] init]; @@ -630,14 +591,6 @@ return _totalValueLabel; } -- (XPWeekStarInfoView *)weekStarView { - if (!_weekStarView) { - _weekStarView = [[XPWeekStarInfoView alloc] init]; - _weekStarView.delegate = self; - } - return _weekStarView; -} - - (UICollectionView *)giftcollectionView{ if (!_giftcollectionView) { XPGiftCollectionViewFlowLayout *layout = [[XPGiftCollectionViewFlowLayout alloc] init]; @@ -652,6 +605,7 @@ [_giftcollectionView registerClass:[XPGiftItemCollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([XPGiftItemCollectionViewCell class])]; [_giftcollectionView registerClass:[XPGiftEmptyCollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([XPGiftEmptyCollectionViewCell class])]; [_giftcollectionView registerClass:[XPGiftWeekStarCollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([XPGiftWeekStarCollectionViewCell class])]; + _giftcollectionView.showsHorizontalScrollIndicator = NO; } return _giftcollectionView; } @@ -665,17 +619,6 @@ return _pageController; } -- (UIView *)segmentPlaceView { - if (!_segmentPlaceView) { - _segmentPlaceView = [[UIView alloc] init]; - _segmentPlaceView.backgroundColor = [UIColor redColor]; - [_segmentPlaceView setContentCompressionResistancePriority:UILayoutPriorityDefaultLow forAxis:UILayoutConstraintAxisHorizontal]; - [_segmentPlaceView setContentHuggingPriority:UILayoutPriorityDefaultLow forAxis:UILayoutConstraintAxisHorizontal]; - } - return _segmentPlaceView; -} - - - (NSMutableArray *)datasource { if (!_datasource) { _datasource = [NSMutableArray array]; diff --git a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftLuckyGiftBroadcastView.h b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftLuckyGiftBroadcastView.h new file mode 100644 index 00000000..335a945d --- /dev/null +++ b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftLuckyGiftBroadcastView.h @@ -0,0 +1,25 @@ +// +// XPGiftLuckyGiftBoradCastView.h +// xplan-ios +// +// Created by GreenLand on 2022/10/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol XPGiftLuckyGiftBroadcastViewDelegate + +///点击了玩法说明 +- (void)xPGiftLuckyGiftBroadcastViewPlayDescClick; + +@end + +@interface XPGiftLuckyGiftBroadcastView : UIView + +@property (nonatomic, weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftLuckyGiftBroadcastView.m b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftLuckyGiftBroadcastView.m new file mode 100644 index 00000000..7aa0c54e --- /dev/null +++ b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftLuckyGiftBroadcastView.m @@ -0,0 +1,98 @@ +// +// XPGiftLuckyGiftBoradCastView.m +// xplan-ios +// +// Created by GreenLand on 2022/10/8. +// + +#import "XPGiftLuckyGiftBroadcastView.h" +///Third +#import +///Tool +#import "ThemeColor.h" + +@interface XPGiftLuckyGiftBroadcastView() + +///背景 +@property (nonatomic, strong) UIImageView *bgImageView; +///玩法说明 +@property (nonatomic, strong) UIImageView *playImageView; +///icon +@property (nonatomic, strong) UIImageView *iconImageView; + +@end + +@implementation XPGiftLuckyGiftBroadcastView + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initSubViewConstraints]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.bgImageView]; + [self addSubview:self.iconImageView]; + [self addSubview:self.playImageView]; +} + +- (void)initSubViewConstraints { + [self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(0); + make.left.right.mas_equalTo(self).inset(10); + make.height.mas_equalTo(37); + }]; + + [self.iconImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.bgImageView); + make.left.mas_equalTo(self.bgImageView).mas_offset(8); + make.width.height.mas_equalTo(20); + }]; + + [self.playImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.right.bottom.mas_equalTo(self.bgImageView); + make.width.mas_equalTo(67); + }]; +} + +#pragma mark - action +- (void)playButtonAction:(UITapGestureRecognizer *)tap { + if (self.delegate && [self.delegate respondsToSelector:@selector(xPGiftLuckyGiftBroadcastViewPlayDescClick)]) { + [self.delegate xPGiftLuckyGiftBroadcastViewPlayDescClick]; + } +} + +- (UIImageView *)bgImageView { + if (!_bgImageView) { + _bgImageView = [[UIImageView alloc] init]; + _bgImageView.image = [UIImage imageNamed:@"gift_lucky_broadcast_bg"]; + _bgImageView.contentMode = UIViewContentModeScaleToFill; + } + return _bgImageView; +} + +- (UIImageView *)iconImageView { + if (!_iconImageView) { + _iconImageView = [[UIImageView alloc] init]; + _iconImageView.image = [UIImage imageNamed:@"gift_lucky_broadcast_icon"]; + } + return _iconImageView; +} + +- (UIImageView *)playImageView { + if (!_playImageView) { + _playImageView = [[UIImageView alloc] init]; + _playImageView.image = [UIImage imageNamed:@"gift_lucky_broadcast_playType"]; + _playImageView.contentMode = UIViewContentModeScaleToFill; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(playButtonAction:)]; + _playImageView.userInteractionEnabled = YES; + [_playImageView addGestureRecognizer:tap]; + } + return _playImageView; +} + +@end diff --git a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftUsersView.m b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftUsersView.m index fa108d73..505389da 100644 --- a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftUsersView.m +++ b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftUsersView.m @@ -240,9 +240,9 @@ if (!_allMicroButton) { _allMicroButton = [UIButton buttonWithType:UIButtonTypeCustom]; [_allMicroButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[ThemeColor cancelButtonGradientStartColor], [ThemeColor cancelButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; - [_allMicroButton setTitleColor:[ThemeColor cancelButtonTextColor] forState:UIControlStateNormal]; + [_allMicroButton setTitleColor:[ThemeColor appMainColor] forState:UIControlStateNormal]; [_allMicroButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[ThemeColor confirmButtonGradientStartColor], [ThemeColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateSelected]; - [_allMicroButton setTitleColor:[ThemeColor confirmButtonTextColor] forState:UIControlStateSelected]; + [_allMicroButton setTitleColor:[ThemeColor mainTextColor] forState:UIControlStateSelected]; [_allMicroButton setTitle:@"全麦送" forState:UIControlStateSelected]; [_allMicroButton setTitle:@"全麦送" forState:UIControlStateNormal]; _allMicroButton.titleLabel.font = [UIFont systemFontOfSize:13]; diff --git a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftWeekStarBroadcastView.h b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftWeekStarBroadcastView.h new file mode 100644 index 00000000..768f9d42 --- /dev/null +++ b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftWeekStarBroadcastView.h @@ -0,0 +1,28 @@ +// +// XPGiftWeekStarBroadcastView.h +// xplan-ios +// +// Created by GreenLand on 2022/10/8. +// + +#import +#import "GiftInfoModel.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol XPGiftWeekStarBroadcastViewDelegate + +///点击了周星榜入口 +- (void)xPGiftWeekStarBroadcastViewWeekStarClick; + +@end + +@interface XPGiftWeekStarBroadcastView : UIView + +@property (nonatomic, weak) id delegate; + +@property (nonatomic, strong) GiftInfoModel *giftInfo; + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftWeekStarBroadcastView.m b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftWeekStarBroadcastView.m new file mode 100644 index 00000000..9c61822e --- /dev/null +++ b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGiftWeekStarBroadcastView.m @@ -0,0 +1,255 @@ +// +// XPGiftWeekStarBroadcastView.m +// xplan-ios +// +// Created by GreenLand on 2022/10/8. +// + +#import "XPGiftWeekStarBroadcastView.h" +///Third +#import +///Tool +#import "ThemeColor.h" +#import "NetImageView.h" + +@interface XPGiftWeekStarBroadcastView() + +///背景 +@property (nonatomic, strong) UIImageView *bgImageView; +///周星榜入口 +@property (nonatomic, strong) UIButton *weekStarButton; +///魅力头像 +@property (nonatomic, strong) NetImageView *charmImageView; +///贡献头像 +@property (nonatomic, strong) NetImageView *contributeImageView; +///魅力标题 +@property (nonatomic, strong) UILabel *charmLabel; +///贡献标题 +@property (nonatomic, strong) UILabel *contributeLabel; +///魅力昵称背景 +@property (nonatomic, strong) UIView *charmBgView; +///魅力昵称 +@property (nonatomic, strong) UILabel *charmNickLabel; +///贡献昵称背景 +@property (nonatomic, strong) UIView *contributeBgView; +///贡献昵称 +@property (nonatomic, strong) UILabel *contributeNickLabel; + +@end + +@implementation XPGiftWeekStarBroadcastView + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initSubViewConstraints]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.bgImageView]; + [self addSubview:self.weekStarButton]; + [self addSubview:self.charmImageView]; + [self addSubview:self.charmLabel]; + [self addSubview:self.charmBgView]; + [self addSubview:self.charmNickLabel]; + [self addSubview:self.contributeImageView]; + [self addSubview:self.contributeLabel]; + [self addSubview:self.contributeBgView]; + [self addSubview:self.contributeNickLabel]; +} + +- (void)initSubViewConstraints { + [self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(0); + make.left.right.mas_equalTo(self).inset(10); + make.height.mas_equalTo(44); + }]; + [self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.bgImageView).mas_offset(10); + make.width.height.mas_equalTo(30); + make.centerY.mas_equalTo(self.bgImageView); + }]; + [self.charmLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.charmImageView); + make.height.mas_equalTo(12); + make.left.mas_equalTo(self.charmImageView.mas_right).mas_offset(12); + }]; + [self.charmBgView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.charmNickLabel); + make.height.mas_equalTo(16); + make.left.right.mas_equalTo(self.charmNickLabel).inset(-6); + }]; + [self.charmNickLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.charmLabel.mas_bottom).mas_offset(6); + make.height.mas_equalTo(12); + make.left.mas_equalTo(self.charmLabel); + }]; + + [self.contributeImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.charmLabel.mas_right).mas_offset(24); + make.width.height.mas_equalTo(30); + make.centerY.mas_equalTo(self.bgImageView); + }]; + [self.contributeLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.contributeImageView); + make.height.mas_equalTo(12); + make.left.mas_equalTo(self.contributeImageView.mas_right).mas_offset(12); + }]; + [self.contributeBgView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.contributeNickLabel); + make.height.mas_equalTo(16); + make.left.right.mas_equalTo(self.contributeNickLabel).inset(-6); + }]; + [self.contributeNickLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.contributeLabel.mas_bottom).mas_offset(6); + make.height.mas_equalTo(12); + make.left.mas_equalTo(self.contributeLabel); + }]; + [self.weekStarButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(30); + make.centerY.mas_equalTo(self.bgImageView); + make.right.mas_equalTo(self.bgImageView).mas_offset(-7); + make.width.mas_equalTo(38); + }]; +} + +#pragma mark - action +- (void)playButtonAction:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(xPGiftWeekStarBroadcastViewWeekStarClick)]) { + [self.delegate xPGiftWeekStarBroadcastViewWeekStarClick]; + } +} + +- (void)setGiftInfo:(GiftInfoModel *)giftInfo { + if (giftInfo.firstCharmRankUser) { + self.charmImageView.imageUrl = giftInfo.firstCharmRankUser.avatar; + NSString * nick = giftInfo.firstCharmRankUser.nick; + if (nick.length > 8) { + nick = [nick substringFromIndex:8]; + } + self.charmNickLabel.text = nick; + } else { + self.charmImageView.image = [UIImageConstant defaultEmptyAvatarPlaceholder]; + self.charmNickLabel.text = @"虚位以待"; + } + + if (giftInfo.firstLevelRankUser) { + self.contributeImageView.imageUrl = giftInfo.firstLevelRankUser.avatar; + NSString * nick = giftInfo.firstLevelRankUser.nick; + if (nick.length > 8) { + nick = [nick substringFromIndex:8]; + } + self.contributeNickLabel.text = nick; + } else { + self.contributeImageView.image = [UIImageConstant defaultEmptyAvatarPlaceholder]; + self.contributeNickLabel.text = @"虚位以待"; + } +} + +- (UIImageView *)bgImageView { + if (!_bgImageView) { + _bgImageView = [[UIImageView alloc] init]; + _bgImageView.image = [UIImage imageNamed:@"gift_weekStar_background"]; + _bgImageView.contentMode = UIViewContentModeScaleAspectFill; + } + return _bgImageView; +} + +- (NetImageView *)charmImageView { + if (!_charmImageView) { + _charmImageView = [[NetImageView alloc] init]; + _charmImageView.userInteractionEnabled = YES; + _charmImageView.layer.masksToBounds = YES; + _charmImageView.layer.cornerRadius = 15; + } + return _charmImageView; +} + +- (UILabel *)charmLabel { + if (!_charmLabel) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:10]; + label.textColor = [ThemeColor mainTextColor]; + label.text = @"本周该礼物冠名者"; + _charmLabel = label; + } + return _charmLabel; +} + +- (UIView *)charmBgView { + if (!_charmBgView) { + UIView *view = [[UIView alloc] init]; + view.backgroundColor = UIColorRGBAlpha(0xffffff, 0.2); + view.layer.cornerRadius = 8; + view.layer.masksToBounds = YES; + _charmBgView = view; + } + return _charmBgView; +} + +- (UILabel *)charmNickLabel { + if (!_charmNickLabel) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:10]; + label.textColor = [UIColor whiteColor]; + _charmNickLabel = label; + } + return _charmNickLabel; +} + +- (NetImageView *)contributeImageView { + if (!_contributeImageView) { + _contributeImageView = [[NetImageView alloc] init]; + _contributeImageView.userInteractionEnabled = YES; + _contributeImageView.layer.masksToBounds = YES; + _contributeImageView.layer.cornerRadius = 15; + } + return _contributeImageView; +} + +- (UILabel *)contributeLabel { + if (!_contributeLabel) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:10]; + label.textColor = [ThemeColor mainTextColor]; + label.text = @"本周该礼物星神豪"; + _contributeLabel = label; + } + return _contributeLabel; +} + +- (UIView *)contributeBgView { + if (!_contributeBgView) { + UIView *view = [[UIView alloc] init]; + view.backgroundColor = UIColorRGBAlpha(0xffffff, 0.2); + view.layer.cornerRadius = 8; + view.layer.masksToBounds = YES; + _contributeBgView = view; + } + return _contributeBgView; +} +- (UILabel *)contributeNickLabel { + if (!_contributeNickLabel) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:10]; + label.textColor = [UIColor whiteColor]; + _contributeNickLabel = label; + } + return _contributeNickLabel; +} + +- (UIButton *)weekStarButton { + if (!_weekStarButton) { + UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; + [button setImage:[UIImage imageNamed:@"gift_weekStar_entrance"] forState:UIControlStateNormal]; + [button addTarget:self action:@selector(playButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + _weekStarButton = button; + } + return _weekStarButton; +} + +@end diff --git a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGraffitiGiftView.h b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGraffitiGiftView.h index c22d8d7f..db7667f0 100644 --- a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGraffitiGiftView.h +++ b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPGraffitiGiftView.h @@ -28,6 +28,10 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic,strong) NSArray *animationArray; ///选择的用户个数 @property (nonatomic,assign) NSInteger selectUidNumber; + +- (void)clearData; +- (void)cratePriceAttribute; + @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPSendGiftView.m b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPSendGiftView.m index 0b54ced0..d7081e40 100644 --- a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPSendGiftView.m +++ b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPSendGiftView.m @@ -33,6 +33,8 @@ #import "XPRoomHalfWebView.h" #import "XPGraffitiGiftView.h" #import "XPGiftHeadTypeView.h" +#import "XPGiftLuckyGiftBroadcastView.h" +#import "XPGiftWeekStarBroadcastView.h" ///P #import "XPGiftProtocol.h" ///VC @@ -41,13 +43,19 @@ #import "XPFirstRechargeViewController.h" #import "XPNobleCenterViewController.h" -@interface XPSendGiftView ()< XPGiftBarViewDelegate, XPGiftProtocol, XPGiftInfoViewDelegate, XPGraffitiGiftViewDelegate, XPGiftUsersViewDelegate, XPGiftHeadTypeViewDelegate> +@interface XPSendGiftView ()< XPGiftBarViewDelegate, XPGiftProtocol, XPGiftInfoViewDelegate, XPGraffitiGiftViewDelegate, XPGiftUsersViewDelegate, XPGiftHeadTypeViewDelegate, XPGiftWeekStarBroadcastViewDelegate, XPGiftLuckyGiftBroadcastViewDelegate> ///顶部的区域 @property (nonatomic,strong) UIView * topView; ///内容区域 @property (nonatomic,strong) UIView *contentView; +///模糊背景 +@property (nonatomic, strong) UIVisualEffectView *effectView; /// @property (nonatomic,strong) UIStackView *stackView; +///幸运礼物广播 +@property (nonatomic, strong) XPGiftLuckyGiftBroadcastView *luckyBroadcastView; +///周星礼物广播 +@property (nonatomic, strong) XPGiftWeekStarBroadcastView *weekStarBroadcastView; ///礼物类型(普通/互动) @property (nonatomic, strong) XPGiftHeadTypeView *headTypeView; ///送礼物的人 @@ -100,7 +108,8 @@ #pragma mark - Private Method - (void)initSubViews { [self.view addSubview:self.topView]; - [self.view addSubview:self.contentView]; + [self.view addSubview:self.contentView]; + [self.contentView addSubview:self.effectView]; [self.contentView addSubview:self.stackView]; [self.stackView addArrangedSubview:self.graffitiView]; [self.stackView addArrangedSubview:self.headTypeView]; @@ -121,6 +130,9 @@ make.left.right.bottom.mas_equalTo(self.view); }]; + [self.effectView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.contentView); + }]; [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.bottom.mas_equalTo(self.contentView); }]; @@ -398,6 +410,30 @@ [self.delegate.getCurrentNav presentViewController:firstRechargeVC animated:YES completion:nil]; } +#pragma mark - XPGiftLuckyGiftBroadcastViewDelegate +///点击了玩法说明 +- (void)xPGiftLuckyGiftBroadcastViewPlayDescClick { + NSString * giftExplainUrl; + if (self.segmentType == GiftSegmentType_Lucky) { + giftExplainUrl = [NSString stringWithFormat:URLWithType(kLuckyGiftPlayRuleURL), [NSString stringWithFormat:@"%ld", self.giftInfoView.lastSelectGift.giftId]]; + } else { + giftExplainUrl = self.giftInfoView.lastSelectGift.giftExplainUrl; + } + XPRoomHalfWebView * webView = [[XPRoomHalfWebView alloc] init]; + webView.url = giftExplainUrl; + [TTPopup popupView:webView style:TTPopupStyleActionSheet]; +} + +#pragma mark - XPGiftWeekStarBroadcastViewDelegate +///点击了周星榜入口 +- (void)xPGiftWeekStarBroadcastViewWeekStarClick { + [self dismissViewControllerAnimated:YES completion:nil]; + XPWebViewController * webVC = [[XPWebViewController alloc] init]; + webVC.roomUid = self.roomUid; + webVC.url = URLWithType(kNewWeekStarURL); + [self.delegate.getCurrentNav pushViewController:webVC animated:YES]; +} + #pragma mark - XPGiftHeadTypeViewDelegate ///点击了贵族 - (void)xPGiftHeadTypeViewDidClickNoble:(XPGiftHeadTypeView *)view { @@ -414,39 +450,59 @@ } ///点击了礼物 - (void)xPGiftHeadTypeViewDidClickGift:(XPGiftHeadTypeView *)view { - + [self.luckyBroadcastView removeFromSuperview]; + [self.giftInfoView giftHeadTypeHadChange:1]; + if (!self.graffitiView.hidden) {//清空涂鸦礼物 + [self.graffitiView clearData]; + [self.graffitiView cratePriceAttribute]; + [UIView animateWithDuration:0.2 animations:^{ + self.graffitiView.hidden = YES; + self.giftInfoView.hidden = NO; + }]; + } } ///点击了互动 - (void)xPGiftHeadTypeViewDidClickInteraction:(XPGiftHeadTypeView *)view { - + [self.luckyBroadcastView removeFromSuperview]; + [self.giftInfoView giftHeadTypeHadChange:2]; } #pragma mark - XPGiftInfoViewDelegate -- (void)xPGiftInfoView:(XPGiftInfoView *)view didClickPlayRule:(NSString *)ruleUrl { - XPRoomHalfWebView * webView = [[XPRoomHalfWebView alloc] init]; - webView.url = ruleUrl; - [TTPopup popupView:webView style:TTPopupStyleActionSheet]; -} - - (void)xPGiftInfoView:(XPGiftInfoView *)view didClickSegment:(GiftSegmentType)type { self.segmentType = type; self.giftBarView.type = type; self.giftBarView.drawGiftCount = 0; + if (type == GiftSegmentType_Lucky) { + [self.weekStarBroadcastView removeFromSuperview]; + // self.presenter + if (!self.luckyBroadcastView.superview) { + [self.view addSubview:self.luckyBroadcastView]; + [self.luckyBroadcastView mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.contentView.mas_top); + make.left.right.mas_equalTo(0); + make.height.mas_equalTo(48); + }]; + } + } else if(type == GiftSegmentType_WeekStar) { + [self.luckyBroadcastView removeFromSuperview]; + if (!self.weekStarBroadcastView.superview) { + [self.view addSubview:self.weekStarBroadcastView]; + [self.weekStarBroadcastView mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.contentView.mas_top); + make.left.right.mas_equalTo(0); + make.height.mas_equalTo(56); + }]; + } + } else { + [self.luckyBroadcastView removeFromSuperview]; + [self.weekStarBroadcastView removeFromSuperview]; + } } -- (void)xPGiftInfoViewDidClickNobleEntrance:(XPGiftInfoView *)view { - [self dismissViewControllerAnimated:YES completion:nil]; - [StatisticsServiceHelper trackEventWithKey:StatisticsServiceEventvipEntranceGiftClick]; - XPNobleCenterViewController * nobleVC = [[XPNobleCenterViewController alloc] initWithRoomUid:self.delegate.getRoomInfo.uid]; - [self.delegate.getCurrentNav pushViewController:nobleVC animated:YES]; -} -- (void)xpGiftInfoViewDidClickWeekStarRank:(XPGiftInfoView *)view { - [self dismissViewControllerAnimated:YES completion:nil]; - XPWebViewController * webVC = [[XPWebViewController alloc] init]; - webVC.roomUid = self.roomUid; - webVC.url = URLWithType(kNewWeekStarURL); - [self.delegate.getCurrentNav pushViewController:webVC animated:YES]; +///点击了某个周星礼物 +- (void)xpGiftInfoViewDidClickWeekStarGift:(GiftInfoModel *)info { + self.weekStarBroadcastView.giftInfo = info; } - (void)xPGiftInfoView:(XPGiftInfoView *)view didClickItem:(GiftInfoModel *)info type:(GiftSegmentType)type { @@ -605,11 +661,15 @@ return _topView; } - - (UIView *)contentView { if (!_contentView) { _contentView = [[UIView alloc] init]; - _contentView.backgroundColor = [ThemeColor giftBackGroundColor]; + UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, KScreenHeight) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(8, 8)]; + CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; + maskLayer.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight); + maskLayer.path = maskPath.CGPath; + _contentView.layer.mask = maskLayer; + } return _contentView; } @@ -675,4 +735,29 @@ return _headTypeView; } +- (XPGiftLuckyGiftBroadcastView *)luckyBroadcastView { + if (!_luckyBroadcastView) { + _luckyBroadcastView = [[XPGiftLuckyGiftBroadcastView alloc] init]; + _luckyBroadcastView.delegate = self; + } + return _luckyBroadcastView; +} + +- (XPGiftWeekStarBroadcastView *)weekStarBroadcastView { + if (!_weekStarBroadcastView) { + _weekStarBroadcastView = [[XPGiftWeekStarBroadcastView alloc] init]; + _weekStarBroadcastView.delegate = self; + } + return _weekStarBroadcastView; +} + +- (UIVisualEffectView *)effectView { + if (!_effectView) { + UIBlurEffect *beffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; + _effectView = [[UIVisualEffectView alloc] initWithEffect:beffect]; + _effectView.backgroundColor = UIColorRGBAlpha(0x000000, 0.1); + } + return _effectView; +} + @end diff --git a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPWeekStarInfoView.h b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPWeekStarInfoView.h deleted file mode 100644 index aad3312e..00000000 --- a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPWeekStarInfoView.h +++ /dev/null @@ -1,27 +0,0 @@ -// -// XPWeekStarInfoView.h -// xplan-ios -// -// Created by GreenLand on 2022/5/7. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@class XPWeekStarRankUserModel; - -@protocol XPWeekStarInfoViewDelegate - -///周星榜点击 -- (void)xPWeekStarInfoViewRankButtonClick; - -@end - -@interface XPWeekStarInfoView : UIView - -@property (nonatomic, weak) id delegate; - -@end - -NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPWeekStarInfoView.m b/xplan-ios/Main/ModuleKit/SendGiftView/View/XPWeekStarInfoView.m deleted file mode 100644 index 7e560eff..00000000 --- a/xplan-ios/Main/ModuleKit/SendGiftView/View/XPWeekStarInfoView.m +++ /dev/null @@ -1,88 +0,0 @@ -// -// XPWeekStarInfoView.m -// xplan-ios -// -// Created by GreenLand on 2022/5/7. -// - -#import "XPWeekStarInfoView.h" -///Third -#import -///Tool -#import "XPMacro.h" -#import "ThemeColor+SendGift.h" -///Model -#import "XPWeekStarRankUserModel.h" - -@interface XPWeekStarInfoView() -///周星版入口 -@property (nonatomic, strong) UIButton *entranceButton; -///箭头 -@property (nonatomic, strong) UIImageView *arrowImageView; - -@end - -@implementation XPWeekStarInfoView - -- (instancetype)initWithFrame:(CGRect)frame{ - self = [super initWithFrame:frame]; - if (self) { - [self initSubViews]; - [self initSubViewConstraints]; - } - return self; -} - -#pragma mark - Private Method -- (void)initSubViews { - [self addSubview:self.entranceButton]; - [self addSubview:self.arrowImageView]; -} - -- (void)initSubViewConstraints { - [self mas_makeConstraints:^(MASConstraintMaker *make) { - make.width.mas_equalTo(55); - make.height.mas_equalTo(30); - }]; - - [self.entranceButton mas_makeConstraints:^(MASConstraintMaker *make) { - make.right.mas_equalTo(self.arrowImageView.mas_left).mas_offset(-4); - make.width.mas_equalTo(48); - make.height.mas_equalTo(14); - make.centerY.mas_equalTo(self); - }]; - [self.arrowImageView mas_makeConstraints:^(MASConstraintMaker *make) { - make.right.mas_equalTo(0); - make.width.mas_equalTo(7); - make.height.mas_equalTo(10); - make.centerY.mas_equalTo(self); - }]; -} - -#pragma mark - events -- (void)didClickWeekStarRank:(UIButton *)sender { - if (self.delegate && [self.delegate respondsToSelector:@selector(xPWeekStarInfoViewRankButtonClick)]) { - [self.delegate xPWeekStarInfoViewRankButtonClick]; - } -} - -#pragma mark - getter and setter -- (UIButton *)entranceButton { - if (!_entranceButton) { - _entranceButton = [UIButton buttonWithType:UIButtonTypeCustom]; - _entranceButton.adjustsImageWhenHighlighted = NO; - [_entranceButton setBackgroundImage:[UIImage imageNamed:@"gift_bar_weekStar_button"] forState:UIControlStateNormal]; - [_entranceButton addTarget:self action:@selector(didClickWeekStarRank:) forControlEvents:UIControlEventTouchUpInside]; - } - return _entranceButton; -} - -- (UIImageView *)arrowImageView { - if (!_arrowImageView) { - _arrowImageView = [[UIImageView alloc] init]; - _arrowImageView.image = [UIImage imageNamed:@"gift_bar_weekStar_arrow"]; - } - return _arrowImageView; -} - -@end