移除“精灵夺宝”相关内容
This commit is contained in:
@@ -264,66 +264,6 @@
|
||||
237FD35D2C0F187B00B5335C /* pi_app_logo_new_bg.png in Resources */ = {isa = PBXBuildFile; fileRef = 237FD35C2C0F187B00B5335C /* pi_app_logo_new_bg.png */; };
|
||||
238A90072BA9729200828123 /* PIUniversalBannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238A90062BA9729200828123 /* PIUniversalBannerView.m */; };
|
||||
238A900A2BA9756600828123 /* PIUniversalBannerModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238A90092BA9756600828123 /* PIUniversalBannerModel.m */; };
|
||||
238B37A32AC55A2C00BFC9D5 /* XPTreasureFailyPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37242AC55A2C00BFC9D5 /* XPTreasureFailyPresenter.m */; };
|
||||
238B37A42AC55A2C00BFC9D5 /* TreasureFairyLimitModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B372B2AC55A2C00BFC9D5 /* TreasureFairyLimitModel.m */; };
|
||||
238B37A52AC55A2C00BFC9D5 /* TreasureFailyKeyInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B372C2AC55A2C00BFC9D5 /* TreasureFailyKeyInfoModel.m */; };
|
||||
238B37A62AC55A2C00BFC9D5 /* TreasureFairySendRecordModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B372E2AC55A2C00BFC9D5 /* TreasureFairySendRecordModel.m */; };
|
||||
238B37A72AC55A2C00BFC9D5 /* TreasureFairyRewardModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B372F2AC55A2C00BFC9D5 /* TreasureFairyRewardModel.m */; };
|
||||
238B37A82AC55A2C00BFC9D5 /* TreasureFairyTrialsRecordModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37302AC55A2C00BFC9D5 /* TreasureFairyTrialsRecordModel.m */; };
|
||||
238B37A92AC55A2C00BFC9D5 /* TreasureFairyUserInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37322AC55A2C00BFC9D5 /* TreasureFairyUserInfoModel.m */; };
|
||||
238B37AA2AC55A2C00BFC9D5 /* TreasureFairyInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37362AC55A2C00BFC9D5 /* TreasureFairyInfoModel.m */; };
|
||||
238B37AB2AC55A2C00BFC9D5 /* TreasureFairyConvertRecordModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37372AC55A2C00BFC9D5 /* TreasureFairyConvertRecordModel.m */; };
|
||||
238B37AC2AC55A2C00BFC9D5 /* TreasureFailryMessageModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37382AC55A2C00BFC9D5 /* TreasureFailryMessageModel.m */; };
|
||||
238B37AD2AC55A2C00BFC9D5 /* TreasureFairyBallInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37392AC55A2C00BFC9D5 /* TreasureFairyBallInfoModel.m */; };
|
||||
238B37AE2AC55A2C00BFC9D5 /* TreasureFairyFragmentModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B373D2AC55A2C00BFC9D5 /* TreasureFairyFragmentModel.m */; };
|
||||
238B37AF2AC55A2C00BFC9D5 /* XPTreasureFairyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37402AC55A2C00BFC9D5 /* XPTreasureFairyViewController.m */; };
|
||||
238B37B02AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37422AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultCell.m */; };
|
||||
238B37B12AC55A2C00BFC9D5 /* XPTreasureFairyFriendCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37462AC55A2C00BFC9D5 /* XPTreasureFairyFriendCell.m */; };
|
||||
238B37B22AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37472AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolCell.m */; };
|
||||
238B37B32AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37482AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordCell.m */; };
|
||||
238B37B42AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B374B2AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonCell.m */; };
|
||||
238B37B52AC55A2C00BFC9D5 /* XPTreasureFailyResultGiftCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B374D2AC55A2C00BFC9D5 /* XPTreasureFailyResultGiftCell.m */; };
|
||||
238B37B62AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B374E2AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordCell.m */; };
|
||||
238B37B72AC55A2C00BFC9D5 /* XPTreasureFairySendRecordCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37502AC55A2C00BFC9D5 /* XPTreasureFairySendRecordCell.m */; };
|
||||
238B37B82AC55A2C00BFC9D5 /* XPTreasureFairyShopingExchangeCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37542AC55A2C00BFC9D5 /* XPTreasureFairyShopingExchangeCell.m */; };
|
||||
238B37B92AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37552AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordCell.m */; };
|
||||
238B37BA2AC55A2C00BFC9D5 /* XPTreasureFairyFriendView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37582AC55A2C00BFC9D5 /* XPTreasureFairyFriendView.m */; };
|
||||
238B37BB2AC55A2C00BFC9D5 /* XPTreasureFairySummonView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37592AC55A2C00BFC9D5 /* XPTreasureFairySummonView.m */; };
|
||||
238B37BC2AC55A2C00BFC9D5 /* XPTreasureFairySendView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B375A2AC55A2C00BFC9D5 /* XPTreasureFairySendView.m */; };
|
||||
238B37BD2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B375F2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsContentView.m */; };
|
||||
238B37BE2AC55A2C00BFC9D5 /* XPTreasureFairyBottomView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37612AC55A2C00BFC9D5 /* XPTreasureFairyBottomView.m */; };
|
||||
238B37BF2AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37662AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultView.m */; };
|
||||
238B37C02AC55A2C00BFC9D5 /* XPTreasureFairyPoolRecordView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37682AC55A2C00BFC9D5 /* XPTreasureFairyPoolRecordView.m */; };
|
||||
238B37C12AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37692AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonView.m */; };
|
||||
238B37C22AC55A2C00BFC9D5 /* XPTreasureFairyDrawSubView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B376C2AC55A2C00BFC9D5 /* XPTreasureFairyDrawSubView.m */; };
|
||||
238B37C32AC55A2C00BFC9D5 /* XPTreasureFairyMessageSendView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B376E2AC55A2C00BFC9D5 /* XPTreasureFairyMessageSendView.m */; };
|
||||
238B37C42AC55A2C00BFC9D5 /* XPTreasureFairyBallContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B376F2AC55A2C00BFC9D5 /* XPTreasureFairyBallContentView.m */; };
|
||||
238B37C52AC55A2C00BFC9D5 /* XPTreasureFairyMoreView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37712AC55A2C00BFC9D5 /* XPTreasureFairyMoreView.m */; };
|
||||
238B37C62AC55A2C00BFC9D5 /* XPTreasureFairyMyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37722AC55A2C00BFC9D5 /* XPTreasureFairyMyView.m */; };
|
||||
238B37C72AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37732AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordView.m */; };
|
||||
238B37C82AC55A2C00BFC9D5 /* XPTreasureFailyPrizeGiftView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37742AC55A2C00BFC9D5 /* XPTreasureFailyPrizeGiftView.m */; };
|
||||
238B37C92AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultSmallView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37752AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultSmallView.m */; };
|
||||
238B37CA2AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37772AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolView.m */; };
|
||||
238B37CB2AC55A2C00BFC9D5 /* XPTreasureFairyWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37782AC55A2C00BFC9D5 /* XPTreasureFairyWebView.m */; };
|
||||
238B37CC2AC55A2C00BFC9D5 /* XPTreasureFairyPrizeSubView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37792AC55A2C00BFC9D5 /* XPTreasureFairyPrizeSubView.m */; };
|
||||
238B37CD2AC55A2C00BFC9D5 /* XPTreasureFailyResultView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B377A2AC55A2C00BFC9D5 /* XPTreasureFailyResultView.m */; };
|
||||
238B37CE2AC55A2C00BFC9D5 /* XPTreasureFairyDrawView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B377B2AC55A2C00BFC9D5 /* XPTreasureFairyDrawView.m */; };
|
||||
238B37CF2AC55A2C00BFC9D5 /* XPTreasureFairySendRecordView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B377C2AC55A2C00BFC9D5 /* XPTreasureFairySendRecordView.m */; };
|
||||
238B37D02AC55A2C00BFC9D5 /* XPTreasureFairySummonGiftView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B377D2AC55A2C00BFC9D5 /* XPTreasureFairySummonGiftView.m */; };
|
||||
238B37D12AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordSubView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37812AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordSubView.m */; };
|
||||
238B37D22AC55A2C00BFC9D5 /* XPTreasureFairyExchangeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37832AC55A2C00BFC9D5 /* XPTreasureFairyExchangeView.m */; };
|
||||
238B37D32AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37842AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordView.m */; };
|
||||
238B37D42AC55A2C00BFC9D5 /* XPTreasureFailrySummonBallView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37862AC55A2C00BFC9D5 /* XPTreasureFailrySummonBallView.m */; };
|
||||
238B37D52AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37872AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardView.m */; };
|
||||
238B37D62AC55A2C00BFC9D5 /* XPTreasureFairyTrialsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37882AC55A2C00BFC9D5 /* XPTreasureFairyTrialsView.m */; };
|
||||
238B37D72AC55A2C00BFC9D5 /* XPTreasureFairyTrialsBallView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B378A2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsBallView.m */; };
|
||||
238B37D82AC55A2C00BFC9D5 /* XPTreasureFairyShopingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B378B2AC55A2C00BFC9D5 /* XPTreasureFairyShopingView.m */; };
|
||||
238B37D92AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B378E2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordView.m */; };
|
||||
238B37DA2AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardInputNumView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37912AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardInputNumView.m */; };
|
||||
238B37DB2AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardSuccessView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37932AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardSuccessView.m */; };
|
||||
238B37DC2AC55A2C00BFC9D5 /* XPTreasureFairyBallView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37942AC55A2C00BFC9D5 /* XPTreasureFairyBallView.m */; };
|
||||
238B37DD2AC55A2C00BFC9D5 /* XPTreasureFairyStoreView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B379A2AC55A2C00BFC9D5 /* XPTreasureFairyStoreView.m */; };
|
||||
238B37DE2AC55A2C00BFC9D5 /* Api+TreasureFairy.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37A12AC55A2C00BFC9D5 /* Api+TreasureFairy.m */; };
|
||||
238ED83A2AE2891D0014EF9D /* PIRoomEnterRedPacketView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238ED8392AE2891D0014EF9D /* PIRoomEnterRedPacketView.m */; };
|
||||
239141C62AE129F700322CA9 /* PIInputScrollingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 239141C52AE129F700322CA9 /* PIInputScrollingView.m */; };
|
||||
239141C92AE1358F00322CA9 /* PIInputEntireServerScrollingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 239141C82AE1358F00322CA9 /* PIInputEntireServerScrollingView.m */; };
|
||||
@@ -427,9 +367,6 @@
|
||||
23E9E9AA2A80FDF100B792F2 /* XPNewMineHallIncomeCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9E9A92A80FDF100B792F2 /* XPNewMineHallIncomeCell.m */; };
|
||||
23E9E9B72A82200500B792F2 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 23E9E9B62A82200500B792F2 /* GoogleService-Info.plist */; };
|
||||
23E9EA6B2A83808000B792F2 /* ContentTreasureFairyModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9EA6A2A83808000B792F2 /* ContentTreasureFairyModel.m */; };
|
||||
23E9EA792A8385CC00B792F2 /* XPTreasureFairyGiftView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9EA772A8385CB00B792F2 /* XPTreasureFairyGiftView.m */; };
|
||||
23E9EA7C2A83977400B792F2 /* MessageContentTreasureFairyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9EA7B2A83977400B792F2 /* MessageContentTreasureFairyView.m */; };
|
||||
23E9EA7F2A839B2F00B792F2 /* MessageTreasureFairyModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9EA7E2A839B2F00B792F2 /* MessageTreasureFairyModel.m */; };
|
||||
23E9EA842A84B6FD00B792F2 /* XPMineUserInfoTagModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9EA802A84B6FC00B792F2 /* XPMineUserInfoTagModel.m */; };
|
||||
23E9EA852A84B6FD00B792F2 /* XPSoundCardModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9EA832A84B6FD00B792F2 /* XPSoundCardModel.m */; };
|
||||
23E9EA882A84B75900B792F2 /* XPMineUserInfoHeaderTagView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9EA862A84B75900B792F2 /* XPMineUserInfoHeaderTagView.m */; };
|
||||
@@ -2226,127 +2163,6 @@
|
||||
238A90062BA9729200828123 /* PIUniversalBannerView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PIUniversalBannerView.m; sourceTree = "<group>"; };
|
||||
238A90082BA9756600828123 /* PIUniversalBannerModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PIUniversalBannerModel.h; sourceTree = "<group>"; };
|
||||
238A90092BA9756600828123 /* PIUniversalBannerModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PIUniversalBannerModel.m; sourceTree = "<group>"; };
|
||||
238B37242AC55A2C00BFC9D5 /* XPTreasureFailyPresenter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFailyPresenter.m; sourceTree = "<group>"; };
|
||||
238B37252AC55A2C00BFC9D5 /* XPTreasureFailyPresenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFailyPresenter.h; sourceTree = "<group>"; };
|
||||
238B37272AC55A2C00BFC9D5 /* XPTreasureFailyProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFailyProtocol.h; sourceTree = "<group>"; };
|
||||
238B37292AC55A2C00BFC9D5 /* TreasureFairyConvertRecordModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFairyConvertRecordModel.h; sourceTree = "<group>"; };
|
||||
238B372A2AC55A2C00BFC9D5 /* TreasureFairyInfoModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFairyInfoModel.h; sourceTree = "<group>"; };
|
||||
238B372B2AC55A2C00BFC9D5 /* TreasureFairyLimitModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFairyLimitModel.m; sourceTree = "<group>"; };
|
||||
238B372C2AC55A2C00BFC9D5 /* TreasureFailyKeyInfoModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFailyKeyInfoModel.m; sourceTree = "<group>"; };
|
||||
238B372D2AC55A2C00BFC9D5 /* TreasureFailryMessageModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFailryMessageModel.h; sourceTree = "<group>"; };
|
||||
238B372E2AC55A2C00BFC9D5 /* TreasureFairySendRecordModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFairySendRecordModel.m; sourceTree = "<group>"; };
|
||||
238B372F2AC55A2C00BFC9D5 /* TreasureFairyRewardModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFairyRewardModel.m; sourceTree = "<group>"; };
|
||||
238B37302AC55A2C00BFC9D5 /* TreasureFairyTrialsRecordModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFairyTrialsRecordModel.m; sourceTree = "<group>"; };
|
||||
238B37312AC55A2C00BFC9D5 /* TreasureFairyBallInfoModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFairyBallInfoModel.h; sourceTree = "<group>"; };
|
||||
238B37322AC55A2C00BFC9D5 /* TreasureFairyUserInfoModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFairyUserInfoModel.m; sourceTree = "<group>"; };
|
||||
238B37332AC55A2C00BFC9D5 /* TreasureFairyFragmentModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFairyFragmentModel.h; sourceTree = "<group>"; };
|
||||
238B37342AC55A2C00BFC9D5 /* TreasureFailyKeyInfoModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFailyKeyInfoModel.h; sourceTree = "<group>"; };
|
||||
238B37352AC55A2C00BFC9D5 /* TreasureFairyLimitModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFairyLimitModel.h; sourceTree = "<group>"; };
|
||||
238B37362AC55A2C00BFC9D5 /* TreasureFairyInfoModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFairyInfoModel.m; sourceTree = "<group>"; };
|
||||
238B37372AC55A2C00BFC9D5 /* TreasureFairyConvertRecordModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFairyConvertRecordModel.m; sourceTree = "<group>"; };
|
||||
238B37382AC55A2C00BFC9D5 /* TreasureFailryMessageModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFailryMessageModel.m; sourceTree = "<group>"; };
|
||||
238B37392AC55A2C00BFC9D5 /* TreasureFairyBallInfoModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFairyBallInfoModel.m; sourceTree = "<group>"; };
|
||||
238B373A2AC55A2C00BFC9D5 /* TreasureFairyTrialsRecordModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFairyTrialsRecordModel.h; sourceTree = "<group>"; };
|
||||
238B373B2AC55A2C00BFC9D5 /* TreasureFairyRewardModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFairyRewardModel.h; sourceTree = "<group>"; };
|
||||
238B373C2AC55A2C00BFC9D5 /* TreasureFairySendRecordModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFairySendRecordModel.h; sourceTree = "<group>"; };
|
||||
238B373D2AC55A2C00BFC9D5 /* TreasureFairyFragmentModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFairyFragmentModel.m; sourceTree = "<group>"; };
|
||||
238B373E2AC55A2C00BFC9D5 /* TreasureFairyUserInfoModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFairyUserInfoModel.h; sourceTree = "<group>"; };
|
||||
238B37402AC55A2C00BFC9D5 /* XPTreasureFairyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyViewController.m; sourceTree = "<group>"; };
|
||||
238B37422AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyStoreResultCell.m; sourceTree = "<group>"; };
|
||||
238B37432AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyShopingRecordCell.h; sourceTree = "<group>"; };
|
||||
238B37442AC55A2C00BFC9D5 /* XPTreasureFailyResultGiftCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFailyResultGiftCell.h; sourceTree = "<group>"; };
|
||||
238B37452AC55A2C00BFC9D5 /* XPTreasureFairySendRecordCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairySendRecordCell.h; sourceTree = "<group>"; };
|
||||
238B37462AC55A2C00BFC9D5 /* XPTreasureFairyFriendCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyFriendCell.m; sourceTree = "<group>"; };
|
||||
238B37472AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyPrizePoolCell.m; sourceTree = "<group>"; };
|
||||
238B37482AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyPrizeRecordCell.m; sourceTree = "<group>"; };
|
||||
238B37492AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyTrialsRecordCell.h; sourceTree = "<group>"; };
|
||||
238B374A2AC55A2C00BFC9D5 /* XPTreasureFairyShopingExchangeCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyShopingExchangeCell.h; sourceTree = "<group>"; };
|
||||
238B374B2AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyNewSummonCell.m; sourceTree = "<group>"; };
|
||||
238B374C2AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyStoreResultCell.h; sourceTree = "<group>"; };
|
||||
238B374D2AC55A2C00BFC9D5 /* XPTreasureFailyResultGiftCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFailyResultGiftCell.m; sourceTree = "<group>"; };
|
||||
238B374E2AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyShopingRecordCell.m; sourceTree = "<group>"; };
|
||||
238B374F2AC55A2C00BFC9D5 /* XPTreasureFairyFriendCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyFriendCell.h; sourceTree = "<group>"; };
|
||||
238B37502AC55A2C00BFC9D5 /* XPTreasureFairySendRecordCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairySendRecordCell.m; sourceTree = "<group>"; };
|
||||
238B37512AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyPrizeRecordCell.h; sourceTree = "<group>"; };
|
||||
238B37522AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyPrizePoolCell.h; sourceTree = "<group>"; };
|
||||
238B37532AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyNewSummonCell.h; sourceTree = "<group>"; };
|
||||
238B37542AC55A2C00BFC9D5 /* XPTreasureFairyShopingExchangeCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyShopingExchangeCell.m; sourceTree = "<group>"; };
|
||||
238B37552AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyTrialsRecordCell.m; sourceTree = "<group>"; };
|
||||
238B37572AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordSubView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyShopingRecordSubView.h; sourceTree = "<group>"; };
|
||||
238B37582AC55A2C00BFC9D5 /* XPTreasureFairyFriendView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyFriendView.m; sourceTree = "<group>"; };
|
||||
238B37592AC55A2C00BFC9D5 /* XPTreasureFairySummonView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairySummonView.m; sourceTree = "<group>"; };
|
||||
238B375A2AC55A2C00BFC9D5 /* XPTreasureFairySendView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairySendView.m; sourceTree = "<group>"; };
|
||||
238B375B2AC55A2C00BFC9D5 /* XPTreasureFairySendRecordView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairySendRecordView.h; sourceTree = "<group>"; };
|
||||
238B375C2AC55A2C00BFC9D5 /* XPTreasureFairySummonGiftView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairySummonGiftView.h; sourceTree = "<group>"; };
|
||||
238B375D2AC55A2C00BFC9D5 /* XPTreasureFairyDrawView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyDrawView.h; sourceTree = "<group>"; };
|
||||
238B375E2AC55A2C00BFC9D5 /* XPTreasureFairyShopingView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyShopingView.h; sourceTree = "<group>"; };
|
||||
238B375F2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsContentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyTrialsContentView.m; sourceTree = "<group>"; };
|
||||
238B37602AC55A2C00BFC9D5 /* XPTreasureFairyTrialsBallView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyTrialsBallView.h; sourceTree = "<group>"; };
|
||||
238B37612AC55A2C00BFC9D5 /* XPTreasureFairyBottomView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyBottomView.m; sourceTree = "<group>"; };
|
||||
238B37622AC55A2C00BFC9D5 /* XPTreasureFairyTrialsView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyTrialsView.h; sourceTree = "<group>"; };
|
||||
238B37632AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PITreasureFairyBuyElfShardView.h; sourceTree = "<group>"; };
|
||||
238B37642AC55A2C00BFC9D5 /* XPTreasureFailrySummonBallView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFailrySummonBallView.h; sourceTree = "<group>"; };
|
||||
238B37652AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyShopingRecordView.h; sourceTree = "<group>"; };
|
||||
238B37662AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyStoreResultView.m; sourceTree = "<group>"; };
|
||||
238B37672AC55A2C00BFC9D5 /* XPTreasureFairyExchangeView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyExchangeView.h; sourceTree = "<group>"; };
|
||||
238B37682AC55A2C00BFC9D5 /* XPTreasureFairyPoolRecordView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyPoolRecordView.m; sourceTree = "<group>"; };
|
||||
238B37692AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyNewSummonView.m; sourceTree = "<group>"; };
|
||||
238B376A2AC55A2C00BFC9D5 /* XPTreasureFairyBallView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyBallView.h; sourceTree = "<group>"; };
|
||||
238B376B2AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardSuccessView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PITreasureFairyBuyElfShardSuccessView.h; sourceTree = "<group>"; };
|
||||
238B376C2AC55A2C00BFC9D5 /* XPTreasureFairyDrawSubView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyDrawSubView.m; sourceTree = "<group>"; };
|
||||
238B376D2AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardInputNumView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PITreasureFairyBuyElfShardInputNumView.h; sourceTree = "<group>"; };
|
||||
238B376E2AC55A2C00BFC9D5 /* XPTreasureFairyMessageSendView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyMessageSendView.m; sourceTree = "<group>"; };
|
||||
238B376F2AC55A2C00BFC9D5 /* XPTreasureFairyBallContentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyBallContentView.m; sourceTree = "<group>"; };
|
||||
238B37702AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyTrialsRecordView.h; sourceTree = "<group>"; };
|
||||
238B37712AC55A2C00BFC9D5 /* XPTreasureFairyMoreView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyMoreView.m; sourceTree = "<group>"; };
|
||||
238B37722AC55A2C00BFC9D5 /* XPTreasureFairyMyView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyMyView.m; sourceTree = "<group>"; };
|
||||
238B37732AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyPrizeRecordView.m; sourceTree = "<group>"; };
|
||||
238B37742AC55A2C00BFC9D5 /* XPTreasureFailyPrizeGiftView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFailyPrizeGiftView.m; sourceTree = "<group>"; };
|
||||
238B37752AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultSmallView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyStoreResultSmallView.m; sourceTree = "<group>"; };
|
||||
238B37762AC55A2C00BFC9D5 /* XPTreasureFairyStoreView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyStoreView.h; sourceTree = "<group>"; };
|
||||
238B37772AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyPrizePoolView.m; sourceTree = "<group>"; };
|
||||
238B37782AC55A2C00BFC9D5 /* XPTreasureFairyWebView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyWebView.m; sourceTree = "<group>"; };
|
||||
238B37792AC55A2C00BFC9D5 /* XPTreasureFairyPrizeSubView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyPrizeSubView.m; sourceTree = "<group>"; };
|
||||
238B377A2AC55A2C00BFC9D5 /* XPTreasureFailyResultView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFailyResultView.m; sourceTree = "<group>"; };
|
||||
238B377B2AC55A2C00BFC9D5 /* XPTreasureFairyDrawView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyDrawView.m; sourceTree = "<group>"; };
|
||||
238B377C2AC55A2C00BFC9D5 /* XPTreasureFairySendRecordView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairySendRecordView.m; sourceTree = "<group>"; };
|
||||
238B377D2AC55A2C00BFC9D5 /* XPTreasureFairySummonGiftView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairySummonGiftView.m; sourceTree = "<group>"; };
|
||||
238B377E2AC55A2C00BFC9D5 /* XPTreasureFairySendView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairySendView.h; sourceTree = "<group>"; };
|
||||
238B377F2AC55A2C00BFC9D5 /* XPTreasureFairySummonView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairySummonView.h; sourceTree = "<group>"; };
|
||||
238B37802AC55A2C00BFC9D5 /* XPTreasureFairyFriendView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyFriendView.h; sourceTree = "<group>"; };
|
||||
238B37812AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordSubView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyShopingRecordSubView.m; sourceTree = "<group>"; };
|
||||
238B37822AC55A2C00BFC9D5 /* XPTreasureFairyPoolRecordView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyPoolRecordView.h; sourceTree = "<group>"; };
|
||||
238B37832AC55A2C00BFC9D5 /* XPTreasureFairyExchangeView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyExchangeView.m; sourceTree = "<group>"; };
|
||||
238B37842AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyShopingRecordView.m; sourceTree = "<group>"; };
|
||||
238B37852AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyStoreResultView.h; sourceTree = "<group>"; };
|
||||
238B37862AC55A2C00BFC9D5 /* XPTreasureFailrySummonBallView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFailrySummonBallView.m; sourceTree = "<group>"; };
|
||||
238B37872AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PITreasureFairyBuyElfShardView.m; sourceTree = "<group>"; };
|
||||
238B37882AC55A2C00BFC9D5 /* XPTreasureFairyTrialsView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyTrialsView.m; sourceTree = "<group>"; };
|
||||
238B37892AC55A2C00BFC9D5 /* XPTreasureFairyBottomView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyBottomView.h; sourceTree = "<group>"; };
|
||||
238B378A2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsBallView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyTrialsBallView.m; sourceTree = "<group>"; };
|
||||
238B378B2AC55A2C00BFC9D5 /* XPTreasureFairyShopingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyShopingView.m; sourceTree = "<group>"; };
|
||||
238B378C2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsContentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyTrialsContentView.h; sourceTree = "<group>"; };
|
||||
238B378D2AC55A2C00BFC9D5 /* XPTreasureFairyMoreView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyMoreView.h; sourceTree = "<group>"; };
|
||||
238B378E2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyTrialsRecordView.m; sourceTree = "<group>"; };
|
||||
238B378F2AC55A2C00BFC9D5 /* XPTreasureFairyBallContentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyBallContentView.h; sourceTree = "<group>"; };
|
||||
238B37902AC55A2C00BFC9D5 /* XPTreasureFairyMessageSendView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyMessageSendView.h; sourceTree = "<group>"; };
|
||||
238B37912AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardInputNumView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PITreasureFairyBuyElfShardInputNumView.m; sourceTree = "<group>"; };
|
||||
238B37922AC55A2C00BFC9D5 /* XPTreasureFairyDrawSubView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyDrawSubView.h; sourceTree = "<group>"; };
|
||||
238B37932AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardSuccessView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PITreasureFairyBuyElfShardSuccessView.m; sourceTree = "<group>"; };
|
||||
238B37942AC55A2C00BFC9D5 /* XPTreasureFairyBallView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyBallView.m; sourceTree = "<group>"; };
|
||||
238B37952AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyNewSummonView.h; sourceTree = "<group>"; };
|
||||
238B37962AC55A2C00BFC9D5 /* XPTreasureFairyPrizeSubView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyPrizeSubView.h; sourceTree = "<group>"; };
|
||||
238B37972AC55A2C00BFC9D5 /* XPTreasureFailyResultView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFailyResultView.h; sourceTree = "<group>"; };
|
||||
238B37982AC55A2C00BFC9D5 /* XPTreasureFairyWebView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyWebView.h; sourceTree = "<group>"; };
|
||||
238B37992AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyPrizePoolView.h; sourceTree = "<group>"; };
|
||||
238B379A2AC55A2C00BFC9D5 /* XPTreasureFairyStoreView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyStoreView.m; sourceTree = "<group>"; };
|
||||
238B379B2AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultSmallView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyStoreResultSmallView.h; sourceTree = "<group>"; };
|
||||
238B379C2AC55A2C00BFC9D5 /* XPTreasureFailyPrizeGiftView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFailyPrizeGiftView.h; sourceTree = "<group>"; };
|
||||
238B379D2AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyPrizeRecordView.h; sourceTree = "<group>"; };
|
||||
238B379E2AC55A2C00BFC9D5 /* XPTreasureFairyMyView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyMyView.h; sourceTree = "<group>"; };
|
||||
238B379F2AC55A2C00BFC9D5 /* XPTreasureFairyViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyViewController.h; sourceTree = "<group>"; };
|
||||
238B37A12AC55A2C00BFC9D5 /* Api+TreasureFairy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "Api+TreasureFairy.m"; sourceTree = "<group>"; };
|
||||
238B37A22AC55A2C00BFC9D5 /* Api+TreasureFairy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Api+TreasureFairy.h"; sourceTree = "<group>"; };
|
||||
238ED8382AE2891D0014EF9D /* PIRoomEnterRedPacketView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PIRoomEnterRedPacketView.h; sourceTree = "<group>"; };
|
||||
238ED8392AE2891D0014EF9D /* PIRoomEnterRedPacketView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PIRoomEnterRedPacketView.m; sourceTree = "<group>"; };
|
||||
239141C42AE129F700322CA9 /* PIInputScrollingView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PIInputScrollingView.h; sourceTree = "<group>"; };
|
||||
@@ -2543,12 +2359,6 @@
|
||||
23E9E9B62A82200500B792F2 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
|
||||
23E9EA692A83808000B792F2 /* ContentTreasureFairyModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContentTreasureFairyModel.h; sourceTree = "<group>"; };
|
||||
23E9EA6A2A83808000B792F2 /* ContentTreasureFairyModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContentTreasureFairyModel.m; sourceTree = "<group>"; };
|
||||
23E9EA772A8385CB00B792F2 /* XPTreasureFairyGiftView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyGiftView.m; sourceTree = "<group>"; };
|
||||
23E9EA782A8385CC00B792F2 /* XPTreasureFairyGiftView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyGiftView.h; sourceTree = "<group>"; };
|
||||
23E9EA7A2A83977300B792F2 /* MessageContentTreasureFairyView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageContentTreasureFairyView.h; sourceTree = "<group>"; };
|
||||
23E9EA7B2A83977400B792F2 /* MessageContentTreasureFairyView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MessageContentTreasureFairyView.m; sourceTree = "<group>"; };
|
||||
23E9EA7D2A839B2F00B792F2 /* MessageTreasureFairyModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MessageTreasureFairyModel.h; sourceTree = "<group>"; };
|
||||
23E9EA7E2A839B2F00B792F2 /* MessageTreasureFairyModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MessageTreasureFairyModel.m; sourceTree = "<group>"; };
|
||||
23E9EA802A84B6FC00B792F2 /* XPMineUserInfoTagModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPMineUserInfoTagModel.m; sourceTree = "<group>"; };
|
||||
23E9EA812A84B6FC00B792F2 /* XPSoundCardModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPSoundCardModel.h; sourceTree = "<group>"; };
|
||||
23E9EA822A84B6FC00B792F2 /* XPMineUserInfoTagModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPMineUserInfoTagModel.h; sourceTree = "<group>"; };
|
||||
@@ -5649,8 +5459,6 @@
|
||||
18F403A72758B67900A6C548 /* Content */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
23E9EA7A2A83977300B792F2 /* MessageContentTreasureFairyView.h */,
|
||||
23E9EA7B2A83977400B792F2 /* MessageContentTreasureFairyView.m */,
|
||||
E81060D62987613E00B772F0 /* SesssionModel */,
|
||||
18F403A32758B5F900A6C548 /* MessageContentProtocol.h */,
|
||||
E885D53A2977FBFD004DC088 /* MessageTimeView.h */,
|
||||
@@ -6312,190 +6120,6 @@
|
||||
path = Api;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
238B37222AC55A2C00BFC9D5 /* TreasureFairy */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
238B37232AC55A2C00BFC9D5 /* Presenter */,
|
||||
238B37262AC55A2C00BFC9D5 /* Protocol */,
|
||||
238B37282AC55A2C00BFC9D5 /* Model */,
|
||||
238B373F2AC55A2C00BFC9D5 /* View */,
|
||||
238B37A02AC55A2C00BFC9D5 /* Api */,
|
||||
);
|
||||
path = TreasureFairy;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
238B37232AC55A2C00BFC9D5 /* Presenter */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
238B37242AC55A2C00BFC9D5 /* XPTreasureFailyPresenter.m */,
|
||||
238B37252AC55A2C00BFC9D5 /* XPTreasureFailyPresenter.h */,
|
||||
);
|
||||
path = Presenter;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
238B37262AC55A2C00BFC9D5 /* Protocol */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
238B37272AC55A2C00BFC9D5 /* XPTreasureFailyProtocol.h */,
|
||||
);
|
||||
path = Protocol;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
238B37282AC55A2C00BFC9D5 /* Model */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
238B37292AC55A2C00BFC9D5 /* TreasureFairyConvertRecordModel.h */,
|
||||
238B372A2AC55A2C00BFC9D5 /* TreasureFairyInfoModel.h */,
|
||||
238B372B2AC55A2C00BFC9D5 /* TreasureFairyLimitModel.m */,
|
||||
238B372C2AC55A2C00BFC9D5 /* TreasureFailyKeyInfoModel.m */,
|
||||
238B372D2AC55A2C00BFC9D5 /* TreasureFailryMessageModel.h */,
|
||||
238B372E2AC55A2C00BFC9D5 /* TreasureFairySendRecordModel.m */,
|
||||
238B372F2AC55A2C00BFC9D5 /* TreasureFairyRewardModel.m */,
|
||||
238B37302AC55A2C00BFC9D5 /* TreasureFairyTrialsRecordModel.m */,
|
||||
238B37312AC55A2C00BFC9D5 /* TreasureFairyBallInfoModel.h */,
|
||||
238B37322AC55A2C00BFC9D5 /* TreasureFairyUserInfoModel.m */,
|
||||
238B37332AC55A2C00BFC9D5 /* TreasureFairyFragmentModel.h */,
|
||||
238B37342AC55A2C00BFC9D5 /* TreasureFailyKeyInfoModel.h */,
|
||||
238B37352AC55A2C00BFC9D5 /* TreasureFairyLimitModel.h */,
|
||||
238B37362AC55A2C00BFC9D5 /* TreasureFairyInfoModel.m */,
|
||||
238B37372AC55A2C00BFC9D5 /* TreasureFairyConvertRecordModel.m */,
|
||||
238B37382AC55A2C00BFC9D5 /* TreasureFailryMessageModel.m */,
|
||||
238B37392AC55A2C00BFC9D5 /* TreasureFairyBallInfoModel.m */,
|
||||
238B373A2AC55A2C00BFC9D5 /* TreasureFairyTrialsRecordModel.h */,
|
||||
238B373B2AC55A2C00BFC9D5 /* TreasureFairyRewardModel.h */,
|
||||
238B373C2AC55A2C00BFC9D5 /* TreasureFairySendRecordModel.h */,
|
||||
238B373D2AC55A2C00BFC9D5 /* TreasureFairyFragmentModel.m */,
|
||||
238B373E2AC55A2C00BFC9D5 /* TreasureFairyUserInfoModel.h */,
|
||||
);
|
||||
path = Model;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
238B373F2AC55A2C00BFC9D5 /* View */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
238B37412AC55A2C00BFC9D5 /* Cell */,
|
||||
238B37562AC55A2C00BFC9D5 /* View */,
|
||||
238B379F2AC55A2C00BFC9D5 /* XPTreasureFairyViewController.h */,
|
||||
238B37402AC55A2C00BFC9D5 /* XPTreasureFairyViewController.m */,
|
||||
);
|
||||
path = View;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
238B37412AC55A2C00BFC9D5 /* Cell */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
238B37442AC55A2C00BFC9D5 /* XPTreasureFailyResultGiftCell.h */,
|
||||
238B374D2AC55A2C00BFC9D5 /* XPTreasureFailyResultGiftCell.m */,
|
||||
238B374F2AC55A2C00BFC9D5 /* XPTreasureFairyFriendCell.h */,
|
||||
238B37462AC55A2C00BFC9D5 /* XPTreasureFairyFriendCell.m */,
|
||||
238B37532AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonCell.h */,
|
||||
238B374B2AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonCell.m */,
|
||||
238B37522AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolCell.h */,
|
||||
238B37472AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolCell.m */,
|
||||
238B37512AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordCell.h */,
|
||||
238B37482AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordCell.m */,
|
||||
238B37452AC55A2C00BFC9D5 /* XPTreasureFairySendRecordCell.h */,
|
||||
238B37502AC55A2C00BFC9D5 /* XPTreasureFairySendRecordCell.m */,
|
||||
238B374A2AC55A2C00BFC9D5 /* XPTreasureFairyShopingExchangeCell.h */,
|
||||
238B37542AC55A2C00BFC9D5 /* XPTreasureFairyShopingExchangeCell.m */,
|
||||
238B37432AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordCell.h */,
|
||||
238B374E2AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordCell.m */,
|
||||
238B374C2AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultCell.h */,
|
||||
238B37422AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultCell.m */,
|
||||
238B37492AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordCell.h */,
|
||||
238B37552AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordCell.m */,
|
||||
);
|
||||
path = Cell;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
238B37562AC55A2C00BFC9D5 /* View */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
238B376D2AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardInputNumView.h */,
|
||||
238B37912AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardInputNumView.m */,
|
||||
238B376B2AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardSuccessView.h */,
|
||||
238B37932AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardSuccessView.m */,
|
||||
238B37632AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardView.h */,
|
||||
238B37872AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardView.m */,
|
||||
238B37642AC55A2C00BFC9D5 /* XPTreasureFailrySummonBallView.h */,
|
||||
238B37862AC55A2C00BFC9D5 /* XPTreasureFailrySummonBallView.m */,
|
||||
238B379C2AC55A2C00BFC9D5 /* XPTreasureFailyPrizeGiftView.h */,
|
||||
238B37742AC55A2C00BFC9D5 /* XPTreasureFailyPrizeGiftView.m */,
|
||||
238B37972AC55A2C00BFC9D5 /* XPTreasureFailyResultView.h */,
|
||||
238B377A2AC55A2C00BFC9D5 /* XPTreasureFailyResultView.m */,
|
||||
238B378F2AC55A2C00BFC9D5 /* XPTreasureFairyBallContentView.h */,
|
||||
238B376F2AC55A2C00BFC9D5 /* XPTreasureFairyBallContentView.m */,
|
||||
238B376A2AC55A2C00BFC9D5 /* XPTreasureFairyBallView.h */,
|
||||
238B37942AC55A2C00BFC9D5 /* XPTreasureFairyBallView.m */,
|
||||
238B37892AC55A2C00BFC9D5 /* XPTreasureFairyBottomView.h */,
|
||||
238B37612AC55A2C00BFC9D5 /* XPTreasureFairyBottomView.m */,
|
||||
238B37922AC55A2C00BFC9D5 /* XPTreasureFairyDrawSubView.h */,
|
||||
238B376C2AC55A2C00BFC9D5 /* XPTreasureFairyDrawSubView.m */,
|
||||
238B375D2AC55A2C00BFC9D5 /* XPTreasureFairyDrawView.h */,
|
||||
238B377B2AC55A2C00BFC9D5 /* XPTreasureFairyDrawView.m */,
|
||||
238B37672AC55A2C00BFC9D5 /* XPTreasureFairyExchangeView.h */,
|
||||
238B37832AC55A2C00BFC9D5 /* XPTreasureFairyExchangeView.m */,
|
||||
238B37802AC55A2C00BFC9D5 /* XPTreasureFairyFriendView.h */,
|
||||
238B37582AC55A2C00BFC9D5 /* XPTreasureFairyFriendView.m */,
|
||||
238B37902AC55A2C00BFC9D5 /* XPTreasureFairyMessageSendView.h */,
|
||||
238B376E2AC55A2C00BFC9D5 /* XPTreasureFairyMessageSendView.m */,
|
||||
238B378D2AC55A2C00BFC9D5 /* XPTreasureFairyMoreView.h */,
|
||||
238B37712AC55A2C00BFC9D5 /* XPTreasureFairyMoreView.m */,
|
||||
238B379E2AC55A2C00BFC9D5 /* XPTreasureFairyMyView.h */,
|
||||
238B37722AC55A2C00BFC9D5 /* XPTreasureFairyMyView.m */,
|
||||
238B37952AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonView.h */,
|
||||
238B37692AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonView.m */,
|
||||
238B37822AC55A2C00BFC9D5 /* XPTreasureFairyPoolRecordView.h */,
|
||||
238B37682AC55A2C00BFC9D5 /* XPTreasureFairyPoolRecordView.m */,
|
||||
238B37992AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolView.h */,
|
||||
238B37772AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolView.m */,
|
||||
238B379D2AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordView.h */,
|
||||
238B37732AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordView.m */,
|
||||
238B37962AC55A2C00BFC9D5 /* XPTreasureFairyPrizeSubView.h */,
|
||||
238B37792AC55A2C00BFC9D5 /* XPTreasureFairyPrizeSubView.m */,
|
||||
238B375B2AC55A2C00BFC9D5 /* XPTreasureFairySendRecordView.h */,
|
||||
238B377C2AC55A2C00BFC9D5 /* XPTreasureFairySendRecordView.m */,
|
||||
238B377E2AC55A2C00BFC9D5 /* XPTreasureFairySendView.h */,
|
||||
238B375A2AC55A2C00BFC9D5 /* XPTreasureFairySendView.m */,
|
||||
238B37572AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordSubView.h */,
|
||||
238B37812AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordSubView.m */,
|
||||
238B37652AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordView.h */,
|
||||
238B37842AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordView.m */,
|
||||
238B375E2AC55A2C00BFC9D5 /* XPTreasureFairyShopingView.h */,
|
||||
238B378B2AC55A2C00BFC9D5 /* XPTreasureFairyShopingView.m */,
|
||||
238B379B2AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultSmallView.h */,
|
||||
238B37752AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultSmallView.m */,
|
||||
238B37852AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultView.h */,
|
||||
238B37662AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultView.m */,
|
||||
238B37762AC55A2C00BFC9D5 /* XPTreasureFairyStoreView.h */,
|
||||
238B379A2AC55A2C00BFC9D5 /* XPTreasureFairyStoreView.m */,
|
||||
238B375C2AC55A2C00BFC9D5 /* XPTreasureFairySummonGiftView.h */,
|
||||
238B377D2AC55A2C00BFC9D5 /* XPTreasureFairySummonGiftView.m */,
|
||||
238B377F2AC55A2C00BFC9D5 /* XPTreasureFairySummonView.h */,
|
||||
238B37592AC55A2C00BFC9D5 /* XPTreasureFairySummonView.m */,
|
||||
238B37602AC55A2C00BFC9D5 /* XPTreasureFairyTrialsBallView.h */,
|
||||
238B378A2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsBallView.m */,
|
||||
238B378C2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsContentView.h */,
|
||||
238B375F2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsContentView.m */,
|
||||
238B37702AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordView.h */,
|
||||
238B378E2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordView.m */,
|
||||
238B37622AC55A2C00BFC9D5 /* XPTreasureFairyTrialsView.h */,
|
||||
238B37882AC55A2C00BFC9D5 /* XPTreasureFairyTrialsView.m */,
|
||||
238B37982AC55A2C00BFC9D5 /* XPTreasureFairyWebView.h */,
|
||||
238B37782AC55A2C00BFC9D5 /* XPTreasureFairyWebView.m */,
|
||||
);
|
||||
path = View;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
238B37A02AC55A2C00BFC9D5 /* Api */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
238B37A12AC55A2C00BFC9D5 /* Api+TreasureFairy.m */,
|
||||
238B37A22AC55A2C00BFC9D5 /* Api+TreasureFairy.h */,
|
||||
);
|
||||
path = Api;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
239D0F932BFB3284002977CE /* MSRoomOnLineView */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -8243,8 +7867,6 @@
|
||||
E81060ED2987C35700B772F0 /* MessageTextClickModel.m */,
|
||||
E81060EF2987C52B00B772F0 /* MessageGuildModel.h */,
|
||||
E81060F02987C52B00B772F0 /* MessageGuildModel.m */,
|
||||
23E9EA7D2A839B2F00B792F2 /* MessageTreasureFairyModel.h */,
|
||||
23E9EA7E2A839B2F00B792F2 /* MessageTreasureFairyModel.m */,
|
||||
E81060F22987C6B200B772F0 /* MessageOpenLiveModel.h */,
|
||||
E81060F32987C6B200B772F0 /* MessageOpenLiveModel.m */,
|
||||
E81060F52987C8A700B772F0 /* MessageApplicationShareModel.h */,
|
||||
@@ -8743,8 +8365,6 @@
|
||||
4C71C6A12D06DB3D00ECCA24 /* GiftAnimationManager.m */,
|
||||
4C71C69D2D069D2B00ECCA24 /* GiftAnimationHelper.h */,
|
||||
4C71C69E2D069D2B00ECCA24 /* GiftAnimationHelper.m */,
|
||||
23E9EA782A8385CC00B792F2 /* XPTreasureFairyGiftView.h */,
|
||||
23E9EA772A8385CB00B792F2 /* XPTreasureFairyGiftView.m */,
|
||||
E8E21A9928B4BD92008F7C9D /* XPRoomGraffitiGiftAnimationView.h */,
|
||||
E8E21A9A28B4BD92008F7C9D /* XPRoomGraffitiGiftAnimationView.m */,
|
||||
9BC9DAED27E33B3F009EE409 /* XPRoomGiftAnimationParser.h */,
|
||||
@@ -10842,7 +10462,6 @@
|
||||
9BA812D328BF52A500783EA7 /* SendRedPacket */,
|
||||
E8412F9A2779BAC2006E1101 /* Setting */,
|
||||
2305EEE62AD677D300AD403C /* RoomPhotoAlbum */,
|
||||
238B37222AC55A2C00BFC9D5 /* TreasureFairy */,
|
||||
E8AEAEEA27141ACC0017FCE0 /* StageView */,
|
||||
9BFE0D8F289903F600F53C24 /* TaskTip */,
|
||||
180806F92729A354001FD836 /* ThemeColor+Room.h */,
|
||||
@@ -12195,7 +11814,6 @@
|
||||
E87DF4C22A42C900009C1185 /* XPNoteView.m in Sources */,
|
||||
E8AB631328ADDCF20023B0D2 /* XPMonentsTopicHeaderView.m in Sources */,
|
||||
4C84A9C22E5ED593002C10FC /* GameBannerGestureManager.m in Sources */,
|
||||
238B37B52AC55A2C00BFC9D5 /* XPTreasureFailyResultGiftCell.m in Sources */,
|
||||
23E9E9982A80C3A100B792F2 /* XPMineGuildPersonalBillStatisVC.m in Sources */,
|
||||
9B86D886281942D200494FCD /* SocialMicroView.m in Sources */,
|
||||
54E8C4D62CC78DA900646C44 /* VipSettingViewController.m in Sources */,
|
||||
@@ -12236,7 +11854,6 @@
|
||||
E89D60BD271D647A001F8895 /* XPRoomPresenter.m in Sources */,
|
||||
E8751E5C28A62A530056EF44 /* XPSailingViewController.m in Sources */,
|
||||
9B7D904D287BC5E20033A45E /* AnchorRoomScrollView.m in Sources */,
|
||||
238B37D12AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordSubView.m in Sources */,
|
||||
E8899C822785A694007944BE /* DatingInfoModel.m in Sources */,
|
||||
9BB89DC327FE7F3A00586A83 /* XPAnchorFansRelationModel.m in Sources */,
|
||||
E8AC723226F49710007D6E91 /* XPMineNotificationTableViewCell.m in Sources */,
|
||||
@@ -12250,14 +11867,12 @@
|
||||
23D321E82ADFED10006B259C /* PIRoomSendRedPacketItemVC.m in Sources */,
|
||||
E85E7B2A2A4EB0D300B6D00A /* XPGuildTimeMonthPickerView.m in Sources */,
|
||||
E87E62782A3F5907002F68C9 /* XPNewHomePartyTableViewCell.m in Sources */,
|
||||
238B37B72AC55A2C00BFC9D5 /* XPTreasureFairySendRecordCell.m in Sources */,
|
||||
E8950183282CAC6A007E459A /* XPMomentsPhotoView.m in Sources */,
|
||||
E8AC721E26F472BF007D6E91 /* XPMineSettingProtocol.h in Sources */,
|
||||
E8F63CB4298B563D00B338BA /* Api+SayHello.m in Sources */,
|
||||
E81E09C9290F71BF00A1F410 /* XPAdvertiseView.m in Sources */,
|
||||
4CD15D912D7E902800D9279F /* LoginViewController.m in Sources */,
|
||||
2305F3412AD94D5200AD403C /* XPMaskManagerVC.m in Sources */,
|
||||
238B37D32AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordView.m in Sources */,
|
||||
4CFFEFD02D3A5E130035D016 /* Api+SuperAdmin.m in Sources */,
|
||||
9BC5C91F277C902B007C8719 /* XPReleaseRadioView.m in Sources */,
|
||||
E84843AF27F59E7E0050D365 /* XPRoomPKResultView.m in Sources */,
|
||||
@@ -12288,7 +11903,6 @@
|
||||
E87DF4CC2A42C960009C1185 /* HomeBannerInfoModel.m in Sources */,
|
||||
235714892BECC38F004C81D6 /* MessageHeadlinesTextModel.m in Sources */,
|
||||
E8664EDF27E45EC7000171BA /* XPRoomPKRecordPresenter.m in Sources */,
|
||||
238B37B62AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordCell.m in Sources */,
|
||||
23FF25762ABD66B90064E904 /* XPFreeGiftsObtainView.m in Sources */,
|
||||
E81C27A226EF23490031E639 /* YUMINNNN.h in Sources */,
|
||||
E80E900C27E0358900434B90 /* XPRoomTopicAlertView.m in Sources */,
|
||||
@@ -12302,7 +11916,6 @@
|
||||
4C6E1F752CEAEC3C0073D0A3 /* ShoppingMallTagView.m in Sources */,
|
||||
E8A88D2D27E81E8700CA8837 /* RoomPKChooseUserModel.m in Sources */,
|
||||
E82325F9274E2E42003A3332 /* Api+UserCard.m in Sources */,
|
||||
238B37A62AC55A2C00BFC9D5 /* TreasureFairySendRecordModel.m in Sources */,
|
||||
E8AB632F28AE19DE0023B0D2 /* XPMomentMinePresenter.m in Sources */,
|
||||
E85E7B042A4EB0D200B6D00A /* XPGuildIncomeDetailPresenter.m in Sources */,
|
||||
54B9C6F32C9D27F3003F1CC5 /* XPMineMultipleContentTableViewCell.m in Sources */,
|
||||
@@ -12310,7 +11923,6 @@
|
||||
4C886BEB2E014AE5006F0BA7 /* MedalsPresenter.m in Sources */,
|
||||
9BD9A17C27A0EE24004186FE /* XPMineVisitorViewController.m in Sources */,
|
||||
2369F9912A89CE0E00563B48 /* PIUserSexView.m in Sources */,
|
||||
238B37D92AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordView.m in Sources */,
|
||||
239D0FAB2BFCB88D002977CE /* XPRoomFunctionContainerView.m in Sources */,
|
||||
E82109B026F1D83500FC3319 /* LoginBindPhonePresent.m in Sources */,
|
||||
E81C1B1F27705F7A0020D1E4 /* XPArrangeMicViewController.m in Sources */,
|
||||
@@ -12342,7 +11954,6 @@
|
||||
E86507EB281A88A9006951B0 /* MessageContentSkillCardView.m in Sources */,
|
||||
E8B825CA26EA1231009E8E9F /* LoginVerifCodeViewController.m in Sources */,
|
||||
189DD76226E60DDC00AB55B1 /* Api+Login.m in Sources */,
|
||||
238B37B82AC55A2C00BFC9D5 /* XPTreasureFairyShopingExchangeCell.m in Sources */,
|
||||
E8412FA62779BED1006E1101 /* XPRoomSettingTableViewCell.m in Sources */,
|
||||
9B7D80502753AA9D003DAC0C /* UITableView+NIMScrollToBottom.m in Sources */,
|
||||
E8AFF7E3298CA1E500FBDE32 /* SessionSayHelloCountModel.m in Sources */,
|
||||
@@ -12366,7 +11977,6 @@
|
||||
4C7F2A672E0BE0AB002F5058 /* FirstRechargeModel.m in Sources */,
|
||||
54F469382C29C3B400A83655 /* XPMineAlbumTableViewCell.m in Sources */,
|
||||
23E9EAA12A84C53900B792F2 /* TTNewAlertView.m in Sources */,
|
||||
238B37BC2AC55A2C00BFC9D5 /* XPTreasureFairySendView.m in Sources */,
|
||||
544B19B02CA1299500885BEB /* CPBindingAnimation.m in Sources */,
|
||||
E8DEC9A12764A5D20078CB70 /* XPRoomMoreItemModel.m in Sources */,
|
||||
E80EC81028ACD84000D133C5 /* QExtendBoardView.m in Sources */,
|
||||
@@ -12381,10 +11991,8 @@
|
||||
9BD9A17927A0EC57004186FE /* XPMineVisitorPresenter.m in Sources */,
|
||||
E8BD0F8828A9E9E400DE050D /* RoomSailingPrizeModel.m in Sources */,
|
||||
4CFFEFCD2D3A4E410035D016 /* AppOfficalManagerActionsViewController.m in Sources */,
|
||||
238B37B32AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordCell.m in Sources */,
|
||||
23CEFC512AFB8FC100576D89 /* SystemUtil.m in Sources */,
|
||||
E8659909273E800D00EE349D /* XPGiftCollectionViewFlowLayout.m in Sources */,
|
||||
238B37BD2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsContentView.m in Sources */,
|
||||
E85E7B262A4EB0D300B6D00A /* XPMineGuildViewController.m in Sources */,
|
||||
E86596512701A1C000846EBD /* StatisticsService.m in Sources */,
|
||||
54E82EAB2CA9261000C931D9 /* Api+Boom.m in Sources */,
|
||||
@@ -12433,9 +12041,7 @@
|
||||
E81C1B2F277071670020D1E4 /* XPArrangeMicInfoModel.m in Sources */,
|
||||
9B0086CA27BA4F570032BD2B /* AnchorMicroView.m in Sources */,
|
||||
E83ABF00280EC45700322EE4 /* MessageContentApplicationShareView.m in Sources */,
|
||||
238B37D82AC55A2C00BFC9D5 /* XPTreasureFairyShopingView.m in Sources */,
|
||||
F1D8556F2931FC86008C418F /* XPRoomYearActivityView.m in Sources */,
|
||||
238B37C72AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordView.m in Sources */,
|
||||
E8B9843628ABA8B40022D026 /* XPMonentPublishSuccessView.m in Sources */,
|
||||
238ED83A2AE2891D0014EF9D /* PIRoomEnterRedPacketView.m in Sources */,
|
||||
23E9E9972A80C3A100B792F2 /* XPMineGuildPersonalBillRecordVC.m in Sources */,
|
||||
@@ -12456,13 +12062,11 @@
|
||||
1427218E29A75F6F00C7C423 /* HTTPMessage.m in Sources */,
|
||||
4C45C1A52E6825F300E73A44 /* XPTurboModeConstants.m in Sources */,
|
||||
239D0FE72C049D61002977CE /* MSRoomGameMsgView.m in Sources */,
|
||||
238B37BE2AC55A2C00BFC9D5 /* XPTreasureFairyBottomView.m in Sources */,
|
||||
9B42869828C1E06B009034D2 /* XPRedPacketModel.m in Sources */,
|
||||
233423D62AB0397500B1253F /* PIMessageContentServiceReplyView.m in Sources */,
|
||||
18EE3FE22750C29D00A452BF /* NIMBadgeView.m in Sources */,
|
||||
E82EE0F8272FDDFA00D15DC1 /* UserPrivacyView.m in Sources */,
|
||||
2331C1672A5EB71000E1D940 /* NobleLevelUpModel.m in Sources */,
|
||||
238B37DD2AC55A2C00BFC9D5 /* XPTreasureFairyStoreView.m in Sources */,
|
||||
9BA812E428BF70A600783EA7 /* XPRoomRedPacketPwdView.m in Sources */,
|
||||
23E9EB1B2A84D28A00B792F2 /* XPMineUserInfoEditTagView.m in Sources */,
|
||||
237B94BE2A984DA7007853E3 /* XPRoomTrumpetViewController.m in Sources */,
|
||||
@@ -12487,7 +12091,6 @@
|
||||
23E9E9A42A80DEAF00B792F2 /* XPMineGuildPersonalBillRecordContentView.m in Sources */,
|
||||
E81C1B262770663B0020D1E4 /* XPArrangeMicTableViewCell.m in Sources */,
|
||||
4CD47BCC2E61ADE400BCDA46 /* XPSocialAction.m in Sources */,
|
||||
238B37D22AC55A2C00BFC9D5 /* XPTreasureFairyExchangeView.m in Sources */,
|
||||
E81A652B2834E4F600F55894 /* XPMomentsAttentionViewController.m in Sources */,
|
||||
E8E20BEC2816A5B90033B688 /* XPMineBlackListViewController.m in Sources */,
|
||||
E8AC722F26F49610007D6E91 /* XPMineNotificationItemModel.m in Sources */,
|
||||
@@ -12497,8 +12100,6 @@
|
||||
2331C1B12A60F32D00E1D940 /* XPCandyTreeGiftView.m in Sources */,
|
||||
9B1B72BC28003E06003FACE9 /* XPAnchorPKTableViewCell.m in Sources */,
|
||||
E8E70D7A26F2F16600F03460 /* XPMinePresent.m in Sources */,
|
||||
238B37AA2AC55A2C00BFC9D5 /* TreasureFairyInfoModel.m in Sources */,
|
||||
238B37A42AC55A2C00BFC9D5 /* TreasureFairyLimitModel.m in Sources */,
|
||||
E87DF4D42A42C9B1009C1185 /* HomeRecommendRoomModel.m in Sources */,
|
||||
23E9EAB22A84C9DE00B792F2 /* XPMineUserInfoTagViewCell.m in Sources */,
|
||||
9B42869C28C1FD3D009034D2 /* XPOpenRedPacketCell.m in Sources */,
|
||||
@@ -12535,7 +12136,6 @@
|
||||
E81060E82987720F00B772F0 /* MessageUnSupportModel.m in Sources */,
|
||||
E8D34D6028082BA5009C4835 /* XPMineUserDataPresenter.m in Sources */,
|
||||
E84CBCE4284372D800D43221 /* XPRoomHalfMessageView.m in Sources */,
|
||||
238B37A52AC55A2C00BFC9D5 /* TreasureFailyKeyInfoModel.m in Sources */,
|
||||
E8EEB8F226FC2050007C6EBA /* SDPhotoBrowser.m in Sources */,
|
||||
23CEFC4F2AFB8FC100576D89 /* BSSDLayoutUtil.m in Sources */,
|
||||
E81C27AB26EF2D920031E639 /* ThirdUserInfo.m in Sources */,
|
||||
@@ -12544,17 +12144,13 @@
|
||||
E8788950273A699900BF1D57 /* ThemeColor+SendGift.m in Sources */,
|
||||
23B8D8D82B85F8B900CA472F /* PIHoemCategoryTitleCell.m in Sources */,
|
||||
E81C279D26EEEC620031E639 /* YUMIConstant.m in Sources */,
|
||||
238B37AF2AC55A2C00BFC9D5 /* XPTreasureFairyViewController.m in Sources */,
|
||||
238B37DB2AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardSuccessView.m in Sources */,
|
||||
9B734F73288A787000CBDAA9 /* XPMineAccountView.m in Sources */,
|
||||
239141C92AE1358F00322CA9 /* PIInputEntireServerScrollingView.m in Sources */,
|
||||
E8AA6EF227DF1E97009B4C2B /* XPRoomTopicPresenter.m in Sources */,
|
||||
9BF4BEBC28D4182E009CF6C2 /* XPOpenRedPacketModel.m in Sources */,
|
||||
E873EB0C2809850D0071030D /* MessageContentCustomView.m in Sources */,
|
||||
238B37D42AC55A2C00BFC9D5 /* XPTreasureFailrySummonBallView.m in Sources */,
|
||||
E884C36F2743AAC800E1EBED /* AttachmentModel.m in Sources */,
|
||||
E8AC721926F46E0B007D6E91 /* XPMineSettingItemModel.m in Sources */,
|
||||
238B37B22AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolCell.m in Sources */,
|
||||
9BE01AF02893E31700B50299 /* NewUserRechargeModel.m in Sources */,
|
||||
E82325E6274CCAFA003A3332 /* XPShareInfoModel.m in Sources */,
|
||||
2320F6392BDF732C00227EEB /* MSRoomMenuGameView.m in Sources */,
|
||||
@@ -12572,7 +12168,6 @@
|
||||
4CC312242D7987A200F57A07 /* ShareHelder.m in Sources */,
|
||||
E88863D3278ED4C0004BCFAB /* Timestamp.m in Sources */,
|
||||
23E7FE9C2BB6CD42008F6800 /* XPNobleCenterWindow.m in Sources */,
|
||||
238B37BF2AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultView.m in Sources */,
|
||||
E88863CF278EC393004BCFAB /* XPAcrossRoomPKPrizeView.m in Sources */,
|
||||
4CE3A9462D22754C003F0796 /* RechargeUserModel.m in Sources */,
|
||||
239D0FFD2C05D086002977CE /* MSRoomGameQuitGameView.m in Sources */,
|
||||
@@ -12580,7 +12175,6 @@
|
||||
E87DF5082A42CE79009C1185 /* XPInRoomRecordPresenter.m in Sources */,
|
||||
239D0FD82C047DD8002977CE /* MSTabbarRoomGameModel.m in Sources */,
|
||||
189DD6FF26E20E5900AB55B1 /* HttpRequestHelper.m in Sources */,
|
||||
238B37DE2AC55A2C00BFC9D5 /* Api+TreasureFairy.m in Sources */,
|
||||
E85E7B062A4EB0D200B6D00A /* XPGuildSearchPresenter.m in Sources */,
|
||||
E8788945273A55C200BF1D57 /* XPGiftInfoView.m in Sources */,
|
||||
9BF5192628801D4700B6BE92 /* XPAcrossRoomPKCountDownView.m in Sources */,
|
||||
@@ -12688,7 +12282,6 @@
|
||||
E85E7B432A4EB0D300B6D00A /* XPMineExchangeAuthorityHeadView.m in Sources */,
|
||||
23194DD02AD14BF000649F51 /* DDLog.m in Sources */,
|
||||
189DD73F26E21C3F00AB55B1 /* YYUtility+Carrier.m in Sources */,
|
||||
238B37AE2AC55A2C00BFC9D5 /* TreasureFairyFragmentModel.m in Sources */,
|
||||
E87AE7F9277AABE50037823A /* XPRoomTagListViewController.m in Sources */,
|
||||
18E7B26926E8D5D60064BC9B /* XCCurrentVCStackManager.m in Sources */,
|
||||
E85E7B472A4EB0D300B6D00A /* XPMineGuildManagerPerTableViewCell.m in Sources */,
|
||||
@@ -12705,10 +12298,8 @@
|
||||
23E9EA6B2A83808000B792F2 /* ContentTreasureFairyModel.m in Sources */,
|
||||
E85E7B3E2A4EB0D300B6D00A /* XPGuildIncomeRecordTableViewCell.m in Sources */,
|
||||
E8A88D2727E8193400CA8837 /* XPRoomPKSelectUserView.m in Sources */,
|
||||
238B37C12AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonView.m in Sources */,
|
||||
9B0E1C5926E77022005D4442 /* BaseNavigationController.m in Sources */,
|
||||
E8664ED927E4355C000171BA /* XPRoomPKRecordTableViewCell.m in Sources */,
|
||||
238B37AB2AC55A2C00BFC9D5 /* TreasureFairyConvertRecordModel.m in Sources */,
|
||||
4CEB9EAD2D09AA0400443480 /* SexAgeLabel.m in Sources */,
|
||||
23FF42762AA6E1480055733C /* XPHomeRecommendOtherRoomView.m in Sources */,
|
||||
142721B229A7647F00C7C423 /* XPBlankViewController.m in Sources */,
|
||||
@@ -12718,9 +12309,7 @@
|
||||
236B2E482AA07D06003967A8 /* XPLittleGameMiniStageView.m in Sources */,
|
||||
E85E7B1C2A4EB0D200B6D00A /* XPMineHallAnchorIncomeStatisViewController.m in Sources */,
|
||||
4CD15D952D7FE9E400D9279F /* LoginTypesViewController.m in Sources */,
|
||||
238B37C32AC55A2C00BFC9D5 /* XPTreasureFairyMessageSendView.m in Sources */,
|
||||
239BEEDB2AA1E058005CDA94 /* PIHoemCategoryTitleView.m in Sources */,
|
||||
238B37CA2AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolView.m in Sources */,
|
||||
E81060FD2987CC9100B772F0 /* MessageLevelUpgradeModel.m in Sources */,
|
||||
2305EF0D2AD7CC9A00AD403C /* PIRoomPhotoAlbumChooseGiftCell.m in Sources */,
|
||||
237700FA2BCCD25500D661F1 /* YYLabel+MSRTL.m in Sources */,
|
||||
@@ -12756,7 +12345,6 @@
|
||||
E81A653F283511BE00F55894 /* XPMonentsInteractiveViewController.m in Sources */,
|
||||
1464C5EA29A45FC300AF7C94 /* XPButton.m in Sources */,
|
||||
54E82EB12CA93BE200C931D9 /* BoomInfoViewController.m in Sources */,
|
||||
238B37C82AC55A2C00BFC9D5 /* XPTreasureFailyPrizeGiftView.m in Sources */,
|
||||
2331C17E2A5ECCF600E1D940 /* XPNobleCenterPayView.m in Sources */,
|
||||
E8395331276A03AE00CF2F24 /* Api+DressUp.m in Sources */,
|
||||
E8B3E8092848B871009746AB /* InviteUserInfoModel.m in Sources */,
|
||||
@@ -12819,7 +12407,6 @@
|
||||
E878B85B2835F3BF00E22DCF /* XPMonentsInteractiveTableViewCell.m in Sources */,
|
||||
9BCFB828289BAC7D0093D863 /* XPMineHeadFunctionItemLayout.m in Sources */,
|
||||
E8D34D6428084E40009C4835 /* XPMineUserInfoGiftWallViewController.m in Sources */,
|
||||
238B37CE2AC55A2C00BFC9D5 /* XPTreasureFairyDrawView.m in Sources */,
|
||||
E899C68927508F4E00E189E5 /* XPUserCardInfoModel.m in Sources */,
|
||||
9B6B3AAB278C2EA7005551EC /* XPRoomNobleLevelUpView.m in Sources */,
|
||||
E85E7B302A4EB0D300B6D00A /* XPGuildIncomeHeaderView.m in Sources */,
|
||||
@@ -12860,8 +12447,6 @@
|
||||
9B2EA7C02804037700ED17BF /* AnchorPKStageView.m in Sources */,
|
||||
4C1392992D6DB4CD00A6DFB5 /* MoliMoneyLabel.m in Sources */,
|
||||
23CEFC622AFB8FC100576D89 /* BSLogNetDetailViewController.m in Sources */,
|
||||
238B37CF2AC55A2C00BFC9D5 /* XPTreasureFairySendRecordView.m in Sources */,
|
||||
238B37C52AC55A2C00BFC9D5 /* XPTreasureFairyMoreView.m in Sources */,
|
||||
E811FFF72742367B00918544 /* XPGiftEmptyCollectionViewCell.m in Sources */,
|
||||
189DD67E26E1FD8900AB55B1 /* UIImage+Utils.m in Sources */,
|
||||
4C71C6A22D06DB3D00ECCA24 /* GiftAnimationManager.m in Sources */,
|
||||
@@ -12870,7 +12455,6 @@
|
||||
E87E62762A3F5907002F68C9 /* XPNewHomePlayTableViewCell.m in Sources */,
|
||||
186A534726FC6ED900D67B2C /* TTAlertConfig.m in Sources */,
|
||||
18F403EE2758CF2F00A6C548 /* MessageContentImage.m in Sources */,
|
||||
238B37A32AC55A2C00BFC9D5 /* XPTreasureFailyPresenter.m in Sources */,
|
||||
18E7B31E26F0984C0064BC9B /* UserLevelVo.m in Sources */,
|
||||
23B8D8DB2B85FDDD00CA472F /* PIHomeCategoryTitleModel.m in Sources */,
|
||||
2331C1762A5EB71000E1D940 /* ThemeColor+NobleCenter.m in Sources */,
|
||||
@@ -12891,7 +12475,6 @@
|
||||
9BD63FAE277EE97A006EB744 /* XPReleaseRadioPresenter.m in Sources */,
|
||||
9B1FC3D827E49C36006EFFE0 /* XPMineDressBubbleCollectionViewCell.m in Sources */,
|
||||
9BE01AEA2893CB4400B50299 /* XPDressSearchViewController.m in Sources */,
|
||||
238B37DA2AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardInputNumView.m in Sources */,
|
||||
E8751E6B28A64C6E0056EF44 /* XPSailingRankTableViewCell.m in Sources */,
|
||||
9B1B72B528003664003FACE9 /* Api+AnchorPk.m in Sources */,
|
||||
23194DCC2AD14BF000649F51 /* DDTTYLogger.m in Sources */,
|
||||
@@ -12907,7 +12490,6 @@
|
||||
9BDA3E7D27FD47AB00517FE6 /* XPAnchorFansTeamPresenter.m in Sources */,
|
||||
E8C6FFE62754FE53004DC9F0 /* XPHomeSearchPresenter.m in Sources */,
|
||||
2320F6422BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.m in Sources */,
|
||||
238B37C02AC55A2C00BFC9D5 /* XPTreasureFairyPoolRecordView.m in Sources */,
|
||||
9B2A12DE2783FEDD00CED41B /* UserVipInfoVo.m in Sources */,
|
||||
233423CA2AAEE97500B1253F /* XPCandyTreeConfirmBuyView.m in Sources */,
|
||||
E824543526F57D6E00BE8163 /* XPLoginVerifBindPhoneViewController.m in Sources */,
|
||||
@@ -12929,7 +12511,6 @@
|
||||
4C5C37232D0C1C7900BA9AB8 /* RegionListViewController.m in Sources */,
|
||||
4CE746C62D9297C30094E496 /* BravoGiftTipModel.m in Sources */,
|
||||
4CCFDA032DD59211009BD2FD /* Api+EventCenter.m in Sources */,
|
||||
238B37CC2AC55A2C00BFC9D5 /* XPTreasureFairyPrizeSubView.m in Sources */,
|
||||
E81125C4296E57B7000D9804 /* QinputPhotoView.m in Sources */,
|
||||
E880B3A1278BD60C00A83B0D /* XPAcrossRoomPKSelectRoomView.m in Sources */,
|
||||
9B3C181A292CE4FA003AF543 /* XPAnchorPKMatchView.m in Sources */,
|
||||
@@ -13052,7 +12633,6 @@
|
||||
E824544B26F5BBB800BE8163 /* XPMineModifPayPwdViewController.m in Sources */,
|
||||
E81C1B2227705F950020D1E4 /* Api+ArrangeMic.m in Sources */,
|
||||
E8E20BE828169BDC0033B688 /* XPMineLoginPasswordPresenter.m in Sources */,
|
||||
238B37D52AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardView.m in Sources */,
|
||||
E85E7B3F2A4EB0D300B6D00A /* XPGuildSingleRoomIncomeTableViewCell.m in Sources */,
|
||||
9B1EF3D227E81C0600554295 /* XPMineDressUpBubbleViewController.m in Sources */,
|
||||
2331C1AB2A60F32D00E1D940 /* CandyTreeResultModel.m in Sources */,
|
||||
@@ -13071,13 +12651,11 @@
|
||||
E86F6185284F4E4800E8EC9A /* RoomHalfHourRankModel.m in Sources */,
|
||||
9B208A362779B50100F9E54A /* GiftNobleInfoModel.m in Sources */,
|
||||
E80A086227F2AC190027B30C /* RoomPKDetailInfoModel.m in Sources */,
|
||||
238B37CD2AC55A2C00BFC9D5 /* XPTreasureFailyResultView.m in Sources */,
|
||||
4CAFF00A2DD342A400CD81DF /* MessagePublicEventModel.m in Sources */,
|
||||
E824545126F5CE6E00BE8163 /* XPMineModifPayPwdPresenter.m in Sources */,
|
||||
E8098CB1282E86EF0090B9F0 /* XPMomentsContentView.m in Sources */,
|
||||
E85E3FA728B7A6F000268DC8 /* MessageContentMonentsView.m in Sources */,
|
||||
E880B3AF278BE1D800A83B0D /* Api+AcrossRoomPK.m in Sources */,
|
||||
238B37DC2AC55A2C00BFC9D5 /* XPTreasureFairyBallView.m in Sources */,
|
||||
23CEFC4B2AFB8FC100576D89 /* BSUIDemoUtil.m in Sources */,
|
||||
E8B9842D28AB77F10022D026 /* XPMonentsPublishTopicView.m in Sources */,
|
||||
239141C62AE129F700322CA9 /* PIInputScrollingView.m in Sources */,
|
||||
@@ -13110,7 +12688,6 @@
|
||||
E8AC721C26F4720B007D6E91 /* XPMineSettingPresent.m in Sources */,
|
||||
2305EF102AD8006900AD403C /* PIRoomMessagePhotoAlbumCell.m in Sources */,
|
||||
4C0B4A502E65A68800D67F73 /* XPRoomAppManagerAction.m in Sources */,
|
||||
238B37BA2AC55A2C00BFC9D5 /* XPTreasureFairyFriendView.m in Sources */,
|
||||
E81060EE2987C35700B772F0 /* MessageTextClickModel.m in Sources */,
|
||||
E87AE8C5284E1A8400CAFBB3 /* XPRoomNewUserGreetView.m in Sources */,
|
||||
E87E627B2A3F5A0D002F68C9 /* XPNewHomeRecommendPresenter.m in Sources */,
|
||||
@@ -13177,7 +12754,6 @@
|
||||
9B7B605B27BB53060070BB72 /* XPAnchorAudienceUpMicView.m in Sources */,
|
||||
4CF67BA52DF9568C00EE5A28 /* BaseModelVo.m in Sources */,
|
||||
23CEFC522AFB8FC100576D89 /* BSFileOptionModel.m in Sources */,
|
||||
238B37D02AC55A2C00BFC9D5 /* XPTreasureFairySummonGiftView.m in Sources */,
|
||||
14DCAD0E299B6AD900A7DD31 /* XPForgetPwdViewController.m in Sources */,
|
||||
23194DD12AD14BF000649F51 /* DDAbstractDatabaseLogger.m in Sources */,
|
||||
545831A02C2AEFAF00364026 /* TenMicStageView.m in Sources */,
|
||||
@@ -13197,7 +12773,6 @@
|
||||
2331C1712A5EB71000E1D940 /* XPNobleCenterTableHeadView.m in Sources */,
|
||||
181D7F212727D9DB00B7C059 /* SocialStageView.m in Sources */,
|
||||
E8AB630D28ADD8C60023B0D2 /* XPMomentTopicContainerViewController.m in Sources */,
|
||||
23E9EA7C2A83977400B792F2 /* MessageContentTreasureFairyView.m in Sources */,
|
||||
4C85DB812DCDD83E00FD9839 /* CreateEventPresenter.m in Sources */,
|
||||
E8D4DE472940473500EC788D /* GiftTwelveStarFirstModel.m in Sources */,
|
||||
547B30F92CB511700041E962 /* RoomBoomEntryView.m in Sources */,
|
||||
@@ -13207,7 +12782,6 @@
|
||||
2331C1B82A60F32D00E1D940 /* XPRoomHalfWebView.m in Sources */,
|
||||
9BFE0D8E2898C8C300F53C24 /* XPAnchorCardSkillCollectionViewCell.m in Sources */,
|
||||
54AE7E172C9AE589006D2BE2 /* CPListViewController.m in Sources */,
|
||||
238B37A92AC55A2C00BFC9D5 /* TreasureFairyUserInfoModel.m in Sources */,
|
||||
E85E7B382A4EB0D300B6D00A /* XPMineGuildSearchMemberTableViewCell.m in Sources */,
|
||||
23D321D52ADD0F05006B259C /* Api+PhotoAlbum.m in Sources */,
|
||||
23E9EA842A84B6FD00B792F2 /* XPMineUserInfoTagModel.m in Sources */,
|
||||
@@ -13237,7 +12811,6 @@
|
||||
186A534626FC6ED900D67B2C /* TTPopup.m in Sources */,
|
||||
9B4D449328F15765002572D5 /* XPGiftLuckyGiftBroadcastView.m in Sources */,
|
||||
E81C278C26EAFAF60031E639 /* Base64.m in Sources */,
|
||||
238B37C92AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultSmallView.m in Sources */,
|
||||
544B19B62CA14A7100885BEB /* CPGiftBanner.m in Sources */,
|
||||
E8C1CD7027D894B800376F83 /* RoomFaceTitleItemModel.m in Sources */,
|
||||
E85E7B4B2A4EB0D300B6D00A /* XPMineGuildManagerSetViewController.m in Sources */,
|
||||
@@ -13291,9 +12864,7 @@
|
||||
1464C5F929A4D00000AF7C94 /* XPIAPRechargeHeaderView.m in Sources */,
|
||||
E83645A82A40AF5400E0DBE4 /* NSBundle+Localizable.m in Sources */,
|
||||
4CAE69CC2E69A2DB00A9FC35 /* MicMidpointRectManager.m in Sources */,
|
||||
23E9EA7F2A839B2F00B792F2 /* MessageTreasureFairyModel.m in Sources */,
|
||||
E8778AFB2989034200CF139B /* XPSessionSayHelloEmptyTableViewCell.m in Sources */,
|
||||
238B37B02AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultCell.m in Sources */,
|
||||
E88B5CC126FB407B00DA9178 /* XPMineUserInfoViewController.m in Sources */,
|
||||
2331C1AC2A60F32D00E1D940 /* CandyTreeRecordModel.m in Sources */,
|
||||
540EC1D32C89998500F3BF0D /* GiftComboManager.m in Sources */,
|
||||
@@ -13301,7 +12872,6 @@
|
||||
E81E09CF290F750800A1F410 /* AdvertiseModel.m in Sources */,
|
||||
2305F3472AD94E9D00AD403C /* XPMaskManagerCell.m in Sources */,
|
||||
E852D74428633A08001465ED /* MonentsCommentModel.m in Sources */,
|
||||
238B37C42AC55A2C00BFC9D5 /* XPTreasureFairyBallContentView.m in Sources */,
|
||||
E8C1CD6D27D8938C00376F83 /* XPRoomFaceTitleCollectionViewCell.m in Sources */,
|
||||
548E01C62C3F78360071C83D /* FeedBackViewController.m in Sources */,
|
||||
E8C1CD7627D8AE3D00376F83 /* XPRoomFacePresenter.m in Sources */,
|
||||
@@ -13311,11 +12881,9 @@
|
||||
E8899C7F27853B6A007944BE /* DatingMicroView.m in Sources */,
|
||||
23E9EA882A84B75900B792F2 /* XPMineUserInfoHeaderTagView.m in Sources */,
|
||||
E87DF4EC2A42CB60009C1185 /* XPSearchListTableViewCell.m in Sources */,
|
||||
238B37C22AC55A2C00BFC9D5 /* XPTreasureFairyDrawSubView.m in Sources */,
|
||||
E85E7B052A4EB0D200B6D00A /* XPClanPresenter.m in Sources */,
|
||||
E85E7BA52A4EC99300B6D00A /* XPMineChooseGiveDiamondView.m in Sources */,
|
||||
E8F63CB1298B553500B338BA /* SessionSayHelloLevelModel.m in Sources */,
|
||||
238B37BB2AC55A2C00BFC9D5 /* XPTreasureFairySummonView.m in Sources */,
|
||||
236B2E4B2AA07D06003967A8 /* XPLittleGameRoomListView.m in Sources */,
|
||||
9BE01AD428927E9C00B50299 /* XPDressUpShopListViewController.m in Sources */,
|
||||
4CD47BBE2E619F1700BCDA46 /* XPRoomMoreMenuAction.m in Sources */,
|
||||
@@ -13325,20 +12893,17 @@
|
||||
E824545926F5E65900BE8163 /* XPMineVerifIdentityView.m in Sources */,
|
||||
E841ED61280FB0BD00904808 /* ContentLevelUpgradeModel.m in Sources */,
|
||||
23CEFC632AFB8FC100576D89 /* BSRealTextView.m in Sources */,
|
||||
238B37B92AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordCell.m in Sources */,
|
||||
236B2E542AA08757003967A8 /* LittleGameScrollStageView.m in Sources */,
|
||||
189DD74026E21C3F00AB55B1 /* YYUtility+App.m in Sources */,
|
||||
E85E7B182A4EB0D200B6D00A /* ClanDetailInfoModel.m in Sources */,
|
||||
236B2E452AA07D06003967A8 /* NSData+RW.m in Sources */,
|
||||
E85E7B272A4EB0D300B6D00A /* XPGuildSuperAdminMenuView.m in Sources */,
|
||||
189DD74526E21CCC00AB55B1 /* YYReachability.m in Sources */,
|
||||
238B37D62AC55A2C00BFC9D5 /* XPTreasureFairyTrialsView.m in Sources */,
|
||||
E82109AD26F1C8A000FC3319 /* CountDownHelper.m in Sources */,
|
||||
E878B8582835F0D300E22DCF /* MonentsInteractiveModel.m in Sources */,
|
||||
E87DF4E42A42CAD2009C1185 /* XPHomeSearchNavView.m in Sources */,
|
||||
9BD2ECCE288F829600F5CD9A /* XPMineFootPrintViewController.m in Sources */,
|
||||
9B4E920028E57A620033419E /* XPGiftHeadTypeView.m in Sources */,
|
||||
238B37C62AC55A2C00BFC9D5 /* XPTreasureFairyMyView.m in Sources */,
|
||||
54E4D5332C90658C009E1FEA /* LuckyGiftWinningBannerView.m in Sources */,
|
||||
E86A16BF2856D4D5004228B8 /* XPSessionFindNewGreetListView.m in Sources */,
|
||||
E85E7B312A4EB0D300B6D00A /* XPNewGuildIncomeHeaderView.m in Sources */,
|
||||
@@ -13352,7 +12917,6 @@
|
||||
E8F1559328129EBA00EE8C06 /* ContentSecretaryModel.m in Sources */,
|
||||
E85E7B342A4EB0D300B6D00A /* XPMineMainGuildListVC.m in Sources */,
|
||||
9BBC02912786FC570007C24B /* XPMineNobleCardTableViewCell.m in Sources */,
|
||||
238B37B12AC55A2C00BFC9D5 /* XPTreasureFairyFriendCell.m in Sources */,
|
||||
E8751E7428A665BC0056EF44 /* RoomSailingInfoModel.m in Sources */,
|
||||
E80EC81328ACD84000D133C5 /* QKeyboardManager.m in Sources */,
|
||||
4CD6FF692D673F7F00262AB7 /* AgentMessageTableViewCell.m in Sources */,
|
||||
@@ -13387,7 +12951,6 @@
|
||||
4CC6195A2CEC7770008C1EE8 /* MyDressingDataPresent.m in Sources */,
|
||||
E84150BF27747BD300A7F548 /* Api+FirstRecharge.m in Sources */,
|
||||
E84B0E422727EE0A008818C6 /* XPRoomMessageHeaderView.m in Sources */,
|
||||
238B37AC2AC55A2C00BFC9D5 /* TreasureFailryMessageModel.m in Sources */,
|
||||
2331C1812A5ECD3800E1D940 /* XPNobleCenterPayCell.m in Sources */,
|
||||
E852D73B286317F0001465ED /* XPMomentsDetailViewController.m in Sources */,
|
||||
2331C1692A5EB71000E1D940 /* XPNobleSettingViewController.m in Sources */,
|
||||
@@ -13396,7 +12959,6 @@
|
||||
E81060D9298761A300B772F0 /* MessageBaseModel.m in Sources */,
|
||||
E890BC10273D23F00007C46B /* GiftInfoModel.m in Sources */,
|
||||
E8A30BEB28534A96003B4873 /* XPSessionFindNewFiltrateView.m in Sources */,
|
||||
238B37AD2AC55A2C00BFC9D5 /* TreasureFairyBallInfoModel.m in Sources */,
|
||||
E84BF7E0277C869A00EF8877 /* XPRoomOnLineViewController.m in Sources */,
|
||||
186A534826FC6ED900D67B2C /* TTAlertButtonConfig.m in Sources */,
|
||||
236B2E422AA07D06003967A8 /* SudCommon.m in Sources */,
|
||||
@@ -13410,7 +12972,6 @@
|
||||
9BD2ECDA288F867000F5CD9A /* XPMineFootPrintTableViewCell.m in Sources */,
|
||||
545888332C1AFFB500897585 /* XPRoomPKPanelView.m in Sources */,
|
||||
E8395339276A0CC100CF2F24 /* XPMineHeadwearTableViewCell.m in Sources */,
|
||||
238B37CB2AC55A2C00BFC9D5 /* XPTreasureFairyWebView.m in Sources */,
|
||||
E875FA8727D619820086ED04 /* ClientDataModel.m in Sources */,
|
||||
9BFB10222897D68400B3985E /* XPTabAnchorCardModel.m in Sources */,
|
||||
E8B846DC26FDE24300A777FE /* RechargeListModel.m in Sources */,
|
||||
@@ -13452,7 +13013,6 @@
|
||||
E8788934273A53D700BF1D57 /* XPSendGiftView.m in Sources */,
|
||||
234E50AF2BF7352C005CB6D5 /* NSTextAttachment+MSImage.m in Sources */,
|
||||
E896EF9C2771AE6B00AD2CC1 /* XPMineFansViewController.m in Sources */,
|
||||
238B37A72AC55A2C00BFC9D5 /* TreasureFairyRewardModel.m in Sources */,
|
||||
54B9C6E72C9C2CA1003F1CC5 /* XPMineGuildTableViewCell.m in Sources */,
|
||||
E84B0E462727EF9D008818C6 /* XPRoomMessageParser.m in Sources */,
|
||||
23E9E9A12A80C7E000B792F2 /* XPMineGuildPersonalBillRecordModel.m in Sources */,
|
||||
@@ -13497,7 +13057,6 @@
|
||||
540EC1D02C89925F00F3BF0D /* GiftComboView.m in Sources */,
|
||||
E81060DF29876D3A00B772F0 /* MessageTimeModel.m in Sources */,
|
||||
E81A65422835120200F55894 /* XPMonentsInteractivePresenter.m in Sources */,
|
||||
238B37A82AC55A2C00BFC9D5 /* TreasureFairyTrialsRecordModel.m in Sources */,
|
||||
239D0FD52C0475E6002977CE /* MSTabbarBeginGameView.m in Sources */,
|
||||
E80EC80C28ACD84000D133C5 /* UITextView+QEmotion.m in Sources */,
|
||||
E8664EE627E482EF000171BA /* RoomPKTeamModel.m in Sources */,
|
||||
@@ -13526,14 +13085,12 @@
|
||||
14EB640D29A5C16000A4A00B /* XPMomentsSimpleDetailNav.m in Sources */,
|
||||
E80EC80E28ACD84000D133C5 /* QKeyboardBaseManager.m in Sources */,
|
||||
54C389672C24464600FD47B1 /* HomeMineRoomModel.m in Sources */,
|
||||
23E9EA792A8385CC00B792F2 /* XPTreasureFairyGiftView.m in Sources */,
|
||||
149839C7299E0B9F00F82CBF /* XPMomentListCollectionViewCell.m in Sources */,
|
||||
4C6E1F792CEB12780073D0A3 /* UIView+GradientLayer.m in Sources */,
|
||||
236BA4982BB6AFED00C7C73A /* PINoblePrivilegeEmptyCell.m in Sources */,
|
||||
E88C729C2828F37D0047FB2B /* XPRoomMusicLibraryEmptyTableViewCell.m in Sources */,
|
||||
E85E7B0A2A4EB0D200B6D00A /* XPGuildManagerPerPresenter.m in Sources */,
|
||||
9B85F3562806DD8A006EDF51 /* XPAnchorPKFinishView.m in Sources */,
|
||||
238B37D72AC55A2C00BFC9D5 /* XPTreasureFairyTrialsBallView.m in Sources */,
|
||||
E85E7BA12A4EC99300B6D00A /* XPMineGiveDiamondModel.m in Sources */,
|
||||
E85E7B232A4EB0D300B6D00A /* XPMineClanViewController.m in Sources */,
|
||||
E89DA67227008D59008483C1 /* WalletInfoModel.m in Sources */,
|
||||
@@ -13546,7 +13103,6 @@
|
||||
E80CBDEA27D0C53F001E1EC2 /* XPWeakTimer.m in Sources */,
|
||||
E85E7BAC2A4EC99300B6D00A /* XPMineGiveDiamondDetailsView.m in Sources */,
|
||||
4C51B09F2DA50FDA00D8DFB5 /* CPRelationshipChangeView.m in Sources */,
|
||||
238B37B42AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonCell.m in Sources */,
|
||||
E85E7B152A4EB0D200B6D00A /* ClanInfoModel.m in Sources */,
|
||||
189DD55026DE37F900AB55B1 /* MvpViewController.m in Sources */,
|
||||
E81366F326F0B7C80076364C /* LoginFullInfoViewController.m in Sources */,
|
||||
|
@@ -1,16 +0,0 @@
|
||||
//
|
||||
// MessageContentTreasureFairyView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/23.
|
||||
//
|
||||
|
||||
#import "MessageContentCustomView.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface MessageContentTreasureFairyView : MessageContentCustomView
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,154 +0,0 @@
|
||||
//
|
||||
// MessageContentTreasureFairyView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/23.
|
||||
//
|
||||
|
||||
#import "MessageContentTreasureFairyView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
#import "NetImageView.h"
|
||||
#import "NSObject+MJExtension.h"
|
||||
#import "TTPopup.h"
|
||||
#import "MessageTreasureFairyModel.h"
|
||||
///Model
|
||||
#import "TreasureFairyBallInfoModel.h"
|
||||
#import "ContentTreasureFairyModel.h"
|
||||
///View
|
||||
#import "XPTreasureFairyMessageSendView.h"
|
||||
@interface MessageContentTreasureFairyView ()
|
||||
///显示内容
|
||||
@property (nonatomic,strong) NetImageView *ballImageView;
|
||||
///
|
||||
@property (nonatomic,strong) UIStackView *stackView;
|
||||
///显示标题
|
||||
@property (nonatomic,strong) UILabel *titleLabel;
|
||||
///查看
|
||||
@property (nonatomic,strong) UILabel *checkLabel;
|
||||
///消息
|
||||
@property (nonatomic,strong) NIMMessage *message;
|
||||
@property (nonatomic,strong) ContentTreasureFairyModel *fairyInfo;
|
||||
@end
|
||||
|
||||
@implementation MessageContentTreasureFairyView
|
||||
+ (CGFloat)measureHeight:(NIMMessage *)message {
|
||||
|
||||
return 78 + CONTENT_PADDING_V_TOTAL;
|
||||
}
|
||||
- (void)initSubViews {
|
||||
[super initSubViews];
|
||||
[self addSubview:self.backView];
|
||||
|
||||
[self.backView addSubview:self.ballImageView];
|
||||
[self.backView addSubview:self.stackView];
|
||||
[self.stackView addArrangedSubview:self.titleLabel];
|
||||
[self.stackView addArrangedSubview:self.checkLabel];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[super initSubViewConstraints];
|
||||
[self.backView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.bottom.trailing.equalTo(self);
|
||||
make.leading.mas_equalTo(self).offset(10);
|
||||
make.height.mas_equalTo(78);
|
||||
make.width.mas_equalTo(235);
|
||||
}];
|
||||
|
||||
[self.ballImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(62, 62));
|
||||
make.leading.mas_equalTo(self.backView);
|
||||
make.centerY.mas_equalTo(self.backView);
|
||||
}];
|
||||
|
||||
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(self.ballImageView.mas_trailing).offset(12);
|
||||
make.centerY.mas_equalTo(self.ballImageView);
|
||||
make.trailing.mas_equalTo(self.backView).offset(-10);
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)render:(MessageTreasureFairyModel *)model {
|
||||
self.message = model.message;
|
||||
NIMCustomObject *obj = (NIMCustomObject *)model.message.messageObject;
|
||||
AttachmentModel * attach = (AttachmentModel *)obj.attachment;
|
||||
ContentTreasureFairyModel * info;
|
||||
if (model.message.localExt) {
|
||||
info = [ContentTreasureFairyModel modelWithDictionary:model.message.localExt];
|
||||
} else {
|
||||
info = [ContentTreasureFairyModel modelWithDictionary:attach.data];
|
||||
}
|
||||
self.fairyInfo = info;
|
||||
self.checkLabel.hidden = (attach.second == Custom_Message_Sub_Treasure_Fairy_Send_Fairy || info.isSended || self.message.isOutgoingMsg);
|
||||
self.ballImageView.imageUrl = info.elfPicUrl;
|
||||
self.titleLabel.text = info.msgContent;
|
||||
}
|
||||
|
||||
- (void)checkRecognizer {
|
||||
if (!self.titleLabel.isHidden) {
|
||||
XPTreasureFairyMessageSendView * view = [[XPTreasureFairyMessageSendView alloc] init];
|
||||
view.fairyInfo = self.fairyInfo;
|
||||
@kWeakify(self);
|
||||
view.finish = ^(BOOL success,ContentTreasureFairyModel * fairyInfo) {
|
||||
@kStrongify(self);
|
||||
fairyInfo.isSended = YES;
|
||||
self.fairyInfo.isSended = fairyInfo;
|
||||
self.message.localExt = [self.fairyInfo model2dictionary];
|
||||
[[NIMSDK sharedSDK].conversationManager updateMessage:self.message forSession:self.message.session completion:^(NSError * _Nullable error) {
|
||||
if (self.customMessageDelegate && [self.customMessageDelegate respondsToSelector:@selector(updateMessageSuccess:)]) {
|
||||
[self.customMessageDelegate updateMessageSuccess:self.message];
|
||||
}
|
||||
}];
|
||||
};
|
||||
[TTPopup popupView:view style:TTPopupStyleAlert];
|
||||
}
|
||||
}
|
||||
|
||||
- (NetImageView *)ballImageView {
|
||||
if (!_ballImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_ballImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_ballImageView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
_ballImageView.layer.masksToBounds = YES;
|
||||
}
|
||||
return _ballImageView;
|
||||
}
|
||||
|
||||
- (UIStackView *)stackView {
|
||||
if (!_stackView) {
|
||||
_stackView = [[UIStackView alloc] init];
|
||||
_stackView.axis = UILayoutConstraintAxisVertical;
|
||||
_stackView.distribution = UIStackViewDistributionFill;
|
||||
_stackView.alignment = UIStackViewAlignmentFill;
|
||||
_stackView.spacing = 10;
|
||||
}
|
||||
return _stackView;
|
||||
}
|
||||
|
||||
- (UILabel *)titleLabel {
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] init];
|
||||
_titleLabel.font = [UIFont systemFontOfSize:13];
|
||||
_titleLabel.textColor = [DJDKMIMOMColor mainTextColor];
|
||||
_titleLabel.numberOfLines = 2;
|
||||
}
|
||||
return _titleLabel;
|
||||
}
|
||||
|
||||
- (UILabel *)checkLabel {
|
||||
if (!_checkLabel) {
|
||||
_checkLabel = [[UILabel alloc] init];
|
||||
_checkLabel.text = YMLocalizedString(@"MessageContentTreasureFairyView0");
|
||||
_checkLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#5FCCE4"];
|
||||
_checkLabel.font = [UIFont systemFontOfSize:13];
|
||||
_checkLabel.textAlignment = NSTextAlignmentLeft;
|
||||
_checkLabel.userInteractionEnabled = YES;
|
||||
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(checkRecognizer)];
|
||||
[_checkLabel addGestureRecognizer:tap];
|
||||
}
|
||||
return _checkLabel;
|
||||
}
|
||||
|
||||
@end
|
@@ -1,16 +0,0 @@
|
||||
//
|
||||
// MessageTreasureFairyModel.h
|
||||
// YuMi
|
||||
//
|
||||
// Created by duoban on 2023/8/9.
|
||||
//
|
||||
|
||||
#import "MessageBaseModel.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface MessageTreasureFairyModel : MessageBaseModel
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,28 +0,0 @@
|
||||
//
|
||||
// MessageTreasureFairyModel.m
|
||||
// YuMi
|
||||
//
|
||||
// Created by duoban on 2023/8/9.
|
||||
//
|
||||
|
||||
#import "MessageTreasureFairyModel.h"
|
||||
|
||||
#import "AttachmentModel.h"
|
||||
#import "GuildMessageModel.h"
|
||||
#import "DJDKMIMOMColor.h"
|
||||
#import "NSObject+MJExtension.h"
|
||||
@implementation MessageTreasureFairyModel
|
||||
- (instancetype)initWithMessage:(NIMMessage *)message {
|
||||
if (self = [super initWithMessage:message]) {
|
||||
self.messageType = SessionMessageType_Custom;
|
||||
self.height = 78 + CONTENT_PADDING_V_TOTAL;
|
||||
self.contentSize = CGSizeMake(CONTENT_WIDTH_MAX, 78 + 20 + 15 + 15);
|
||||
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (NSString *)cellContent:(MessageBaseModel *)model {
|
||||
return @"MessageContentTreasureFairyView";
|
||||
}
|
||||
@end
|
@@ -1,23 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyGiftView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by XY on 2023/3/1.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPTreasureFairyGiftView : UIView
|
||||
|
||||
///是否是动态飘屏
|
||||
@property (nonatomic,assign) BOOL isMaxLargeGift;
|
||||
/// 是否是抽奖(抽奖、召唤)
|
||||
@property (nonatomic,assign) BOOL isDrawGift;
|
||||
///夺宝信息
|
||||
@property (nonatomic,copy) NSDictionary *treasureInfo;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,193 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyGiftView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by XY on 2023/3/1.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyGiftView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <SVGA.h>
|
||||
#import "XPSVGAPlayer.h"
|
||||
#import "ThemeColor+Room.h"
|
||||
#import "TreasureFailryMessageModel.h"
|
||||
#import "NSObject+MJExtension.h"
|
||||
|
||||
@interface XPTreasureFairyGiftView()
|
||||
|
||||
///动画管理类
|
||||
@property (strong, nonatomic) SVGAParser *parser;
|
||||
///夺宝特效
|
||||
@property (nonatomic,strong) XPSVGAPlayer *treasureView;
|
||||
///背景图
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///容器
|
||||
@property (nonatomic,strong) UIView *titleView;
|
||||
///显示文本内容
|
||||
@property (nonatomic,strong) UILabel *titleLabel;
|
||||
|
||||
@end
|
||||
|
||||
@implementation XPTreasureFairyGiftView
|
||||
|
||||
- (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.treasureView];
|
||||
[self addSubview:self.backImageView];
|
||||
[self.backImageView addSubview:self.titleView];
|
||||
|
||||
[self.titleView addSubview:self.titleLabel];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.treasureView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self);
|
||||
}];
|
||||
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self);
|
||||
}];
|
||||
|
||||
[self.titleView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.backImageView).inset(20);
|
||||
make.height.mas_equalTo(28);
|
||||
make.top.mas_equalTo(self.backImageView).offset(23);
|
||||
}];
|
||||
|
||||
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.titleView);
|
||||
make.centerY.mas_equalTo(self.titleView);
|
||||
}];
|
||||
}
|
||||
|
||||
- (NSAttributedString *)createAttribute:(NSString * )text color:(UIColor *)color fontSize:(CGFloat)fonSize {
|
||||
NSDictionary * attribute = @{NSFontAttributeName:[UIFont systemFontOfSize:fonSize], NSForegroundColorAttributeName:color};
|
||||
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:text attributes:attribute];
|
||||
return attr;
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setTreasureInfo:(NSDictionary *)treasureInfo {
|
||||
if (treasureInfo) {
|
||||
TreasureFailryMessageModel * giftInfo = [TreasureFailryMessageModel modelWithDictionary:treasureInfo];
|
||||
NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init];
|
||||
CGFloat fontSize = self.isMaxLargeGift ? 22 : 13;
|
||||
// CGFloat fontSize = 13;
|
||||
if (self.isDrawGift) {
|
||||
[attribute appendAttributedString:[self createAttribute:YMLocalizedString(@"XPTreasureFairyGiftView0") color:[DJDKMIMOMColor colorWithHexString:@"#8C4700"] fontSize:fontSize]];
|
||||
NSString * nick = giftInfo.nick;
|
||||
if (nick.length > 6) {
|
||||
nick = [nick substringToIndex:6];
|
||||
}
|
||||
[attribute appendAttributedString:[self createAttribute:nick color:[DJDKMIMOMColor colorWithHexString:@"#EC4613"] fontSize:fontSize]];
|
||||
[attribute appendAttributedString:[self createAttribute:YMLocalizedString(@"XPTreasureFairyGiftView1") color:[DJDKMIMOMColor colorWithHexString:@"#8C4700"] fontSize:fontSize]];
|
||||
[attribute appendAttributedString:[self createAttribute:giftInfo.rewardName color:[DJDKMIMOMColor colorWithHexString:@"#EC4613"] fontSize:fontSize]];
|
||||
if (giftInfo.rewardNum > 1) {
|
||||
[attribute appendAttributedString:[self createAttribute:[NSString stringWithFormat:@" X%ld", giftInfo.rewardNum] color:[DJDKMIMOMColor colorWithHexString:@"#EC4613"] fontSize:fontSize]];
|
||||
}
|
||||
}else{
|
||||
[attribute appendAttributedString:[self createAttribute:YMLocalizedString(@"XPTreasureFairyGiftView2") color:[DJDKMIMOMColor colorWithHexString:@"#8C4700"] fontSize:fontSize]];
|
||||
[attribute appendAttributedString:[self createAttribute:giftInfo.nick color:[DJDKMIMOMColor colorWithHexString:@"#EC4613"] fontSize:fontSize]];
|
||||
[attribute appendAttributedString:[self createAttribute:YMLocalizedString(@"XPTreasureFairyGiftView3") color:[DJDKMIMOMColor colorWithHexString:@"#8C4700"] fontSize:fontSize]];
|
||||
NSString *level = @"";
|
||||
if (giftInfo.rewardLevel == 1) {
|
||||
level = YMLocalizedString(@"XPTreasureFairyGiftView4");
|
||||
}else if (giftInfo.rewardLevel == 2) {
|
||||
level = YMLocalizedString(@"XPTreasureFairyGiftView5");
|
||||
}else if (giftInfo.rewardLevel == 3) {
|
||||
level = YMLocalizedString(@"XPTreasureFairyGiftView6");
|
||||
}
|
||||
[attribute appendAttributedString:[self createAttribute:level color:[DJDKMIMOMColor colorWithHexString:@"#8C4700"] fontSize:fontSize]];
|
||||
[attribute appendAttributedString:[self createAttribute:YMLocalizedString(@"XPTreasureFairyGiftView7") color:[DJDKMIMOMColor colorWithHexString:@"#8C4700"] fontSize:fontSize]];
|
||||
[attribute appendAttributedString:[self createAttribute:[NSString stringWithFormat:@"%ld",giftInfo.rewardShowValue] color:[DJDKMIMOMColor colorWithHexString:@"#F1390A"] fontSize:fontSize]];
|
||||
|
||||
if ([giftInfo.rewardType isEqualToString:@"gift"]) {
|
||||
[attribute appendAttributedString:[self createAttribute:YMLocalizedString(@"XPTreasureFairyGiftView8") color:[DJDKMIMOMColor colorWithHexString:@"#F1390A"] fontSize:fontSize]];
|
||||
}else{
|
||||
[attribute appendAttributedString:[self createAttribute:giftInfo.rewardUnit color:[DJDKMIMOMColor colorWithHexString:@"#F1390A"] fontSize:fontSize]];
|
||||
}
|
||||
|
||||
[attribute appendAttributedString:[self createAttribute:giftInfo.rewardName color:[DJDKMIMOMColor colorWithHexString:@"#F1390A"] fontSize:fontSize]];
|
||||
}
|
||||
|
||||
NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new];
|
||||
paragraphStyle.lineBreakMode = NSLineBreakByCharWrapping;
|
||||
paragraphStyle.lineSpacing = 0.0f;//行间距
|
||||
paragraphStyle.alignment = NSTextAlignmentCenter;
|
||||
paragraphStyle.baseWritingDirection = NSWritingDirectionLeftToRight;
|
||||
[attribute addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, attribute.length)];
|
||||
[self.treasureView setAttributedText:attribute forKey:@"touming_text_name"];
|
||||
if (self.isMaxLargeGift) {
|
||||
self.backImageView.hidden = YES;
|
||||
self.treasureView.hidden = NO;
|
||||
@kWeakify(self);
|
||||
[self.parser parseWithNamed:@"pi_treasure_fairy_gift_bg" inBundle:[NSBundle mainBundle] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
|
||||
@kStrongify(self);
|
||||
self.treasureView.loops = 1;
|
||||
self.treasureView.clearsAfterStop = NO;
|
||||
self.treasureView.videoItem = videoItem;
|
||||
|
||||
[self.treasureView startAnimation];
|
||||
} failureBlock:^(NSError * _Nonnull error) {
|
||||
|
||||
}];
|
||||
} else {
|
||||
self.backImageView.hidden = NO;
|
||||
self.treasureView.hidden = YES;
|
||||
self.titleLabel.attributedText = attribute;
|
||||
self.titleLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (XPSVGAPlayer *)treasureView {
|
||||
if (!_treasureView) {
|
||||
_treasureView = [[XPSVGAPlayer alloc]init];
|
||||
_treasureView.backgroundColor = [UIColor clearColor];
|
||||
_treasureView.userInteractionEnabled = NO;
|
||||
}
|
||||
return _treasureView;
|
||||
}
|
||||
|
||||
- (SVGAParser *)parser {
|
||||
if (!_parser) {
|
||||
_parser = [[SVGAParser alloc]init];
|
||||
}
|
||||
return _parser;
|
||||
}
|
||||
|
||||
- (UIView *)titleView {
|
||||
if (!_titleView) {
|
||||
_titleView = [[UIView alloc] init];
|
||||
_titleView.backgroundColor = [UIColor clearColor];
|
||||
}
|
||||
return _titleView;
|
||||
}
|
||||
|
||||
- (UIImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.userInteractionEnabled = YES;
|
||||
_backImageView.image = [UIImage imageNamed:@"room_treaseure_fairy_normal_gift_bg"];
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)titleLabel {
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] init];
|
||||
_titleLabel.numberOfLines = 2;
|
||||
}
|
||||
return _titleLabel;
|
||||
}
|
||||
|
||||
@end
|
@@ -1,132 +0,0 @@
|
||||
//
|
||||
// Api+TreasureFairy.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/15.
|
||||
//
|
||||
|
||||
#import "Api.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface Api (TreasureFairy)
|
||||
/// 夺宝限制
|
||||
/// - Parameter completion: 完成
|
||||
+ (void)treasureFailyLimitInfo:(HttpRequestHelperCompletion)completion;
|
||||
/// 夺宝奖池
|
||||
/// - Parameter completion: 完成
|
||||
+ (void)treasureFailyDrawList:(HttpRequestHelperCompletion)completion;
|
||||
|
||||
/// 夺宝信息
|
||||
/// - Parameter completion: 完成
|
||||
+ (void)treasureFailyDrawInfo:(HttpRequestHelperCompletion)completion;
|
||||
|
||||
/// 开始夺宝
|
||||
/// - Parameters:
|
||||
/// - completion: 完成
|
||||
/// - roomUid: 房主的uid
|
||||
/// - drawNum: 个数
|
||||
+ (void)treasureFailyDraw:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid drawNum:(NSString *)drawNum;
|
||||
|
||||
/// 森林抽奖
|
||||
/// - Parameters:
|
||||
/// - completion: 完成
|
||||
/// - roomUid: 抽奖次数
|
||||
/// - poolLevel: 奖池类型 1:初级;2:中级;3:高级;
|
||||
+ (void)treasureFailyForestDraw:(HttpRequestHelperCompletion)completion drawNum:(NSString *)drawNum poolLevel:(NSString *)poolLevel;
|
||||
|
||||
/// 森林抽奖记录
|
||||
/// - Parameters:
|
||||
/// - completion: 完成
|
||||
/// - page: 页数
|
||||
/// - pageSize: 一页多少个
|
||||
+ (void)treasureFairyForestDrawRecord:(HttpRequestHelperCompletion)completion page:(NSString *)page pageSize:(NSString *)pageSize;
|
||||
|
||||
/// 用户森林信息
|
||||
/// - Parameter completion: 完成
|
||||
+ (void)treasureFailyForestUserInfo:(HttpRequestHelperCompletion)completion;
|
||||
|
||||
/// 猛犸森林奖池配置列表
|
||||
/// - Parameter completion: 完成
|
||||
/// - Parameter poolLevel: 奖池等级
|
||||
+ (void)treasureFailyForestItems:(HttpRequestHelperCompletion)completion poolLevel:(NSString *)poolLevel;
|
||||
|
||||
/// 我的精灵
|
||||
/// - Parameter completion: 完成
|
||||
+ (void)treasureFairyMyBallList:(HttpRequestHelperCompletion)completion;
|
||||
|
||||
/// 我的好友
|
||||
/// - Parameters:
|
||||
/// - completion: 完成
|
||||
/// - nick: 昵称
|
||||
+ (void)treasureFairyFansFriendList:(HttpRequestHelperCompletion)completion nick:(NSString *)nick;
|
||||
|
||||
/// 精灵赠送
|
||||
/// - Parameters:
|
||||
/// - completion: 完成
|
||||
/// - elfId: 精灵id
|
||||
/// - targetUid: 目标用户的uid
|
||||
+ (void)treasureFairySendFairyBall:(HttpRequestHelperCompletion)completion elfId:(NSString *)elfId targetUid:(NSString *)targetUid;
|
||||
|
||||
/// 索要
|
||||
/// - Parameters:
|
||||
/// - completion: 完成
|
||||
/// - elfId: 精灵id
|
||||
/// - targetUid: 目标用户的uid
|
||||
+ (void)treasureFairyAskForFairyBall:(HttpRequestHelperCompletion)completion elfId:(NSString *)elfId targetUid:(NSString *)targetUid;
|
||||
|
||||
/// 赠与和获赠记录
|
||||
/// - Parameter completion: 完成
|
||||
/// - Parameter page: 页数
|
||||
/// - Parameter page: 一页多少个
|
||||
+ (void)treasureFailySendAndAskRecordList:(HttpRequestHelperCompletion)completion page:(NSString *)page pageSize:(NSString *)pageSize;
|
||||
|
||||
/// 精灵试炼
|
||||
/// - Parameter completion: 完成
|
||||
/// - Parameter page: 页数
|
||||
/// - Parameter page: 一页多少个
|
||||
+ (void)treasureFailyCompoundBall:(HttpRequestHelperCompletion)completion compoundLevel:(NSInteger)compoundLevel compoundReqs:(NSArray *)compoundReqs;
|
||||
|
||||
/// 精灵试炼记录
|
||||
/// - Parameter completion: 完成
|
||||
/// - Parameter page: 页数
|
||||
/// - Parameter pageSize: 一页多少个
|
||||
+ (void)treasureFailyCompoundBallRecord:(HttpRequestHelperCompletion)completion page:(NSString *)page pageSize:(NSString *)pageSize;
|
||||
|
||||
/// 兑换-精灵召回列表
|
||||
/// - Parameter completion: 完成
|
||||
/// - Parameter page: 页数
|
||||
/// - Parameter pageSize: 一页多少个
|
||||
+ (void)treasureFailyConvertElfList:(HttpRequestHelperCompletion)completion;
|
||||
|
||||
/// 兑换-精灵
|
||||
/// - Parameter completion: 完成
|
||||
/// - Parameter itemId: id
|
||||
+ (void)treasureFailyConvert:(HttpRequestHelperCompletion)completion itemId:(NSString *)itemId roomUid:(NSString *)roomUid propIdStr:(NSString *)propIdStr propNumStr:(NSString *)propNumStr;
|
||||
|
||||
/// 兑换-碎片兑换列表
|
||||
/// - Parameter completion: 完成
|
||||
/// - Parameter page: 页数
|
||||
/// - Parameter pageSize: 一页多少个
|
||||
+ (void)treasureFailyFragmentExchangeList:(HttpRequestHelperCompletion)completion;
|
||||
|
||||
/// 兑换记录
|
||||
/// - Parameters:
|
||||
/// - completion: 完成
|
||||
/// - convertType: 1:精灵召唤 2:碎片兑换
|
||||
/// - page: 页数
|
||||
/// - pageSize: 一页多少个
|
||||
+ (void)treasureFairyConvertRecord:(HttpRequestHelperCompletion)completion convertType:(NSString *)convertType page:(NSString *)page pageSize:(NSString *)pageSize;
|
||||
/// 购买精灵碎片
|
||||
/// - Parameters:
|
||||
/// - completion: 完成
|
||||
/// - num: 数量
|
||||
/// - uid: 用户id
|
||||
+(void)buyElfShard:(HttpRequestHelperCompletion)completion num:(NSString *)num uid:(NSString *)uid;
|
||||
/// 精灵分解
|
||||
/// - Parameter completion: 完成
|
||||
/// - Parameter salvageReq: 分解的精灵
|
||||
+ (void)treasureFailySalvageall:(HttpRequestHelperCompletion)completion salvageReq:(NSArray *)salvageReq;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,184 +0,0 @@
|
||||
//
|
||||
// Api+TreasureFairy.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/15.
|
||||
//
|
||||
|
||||
#import "Api+TreasureFairy.h"
|
||||
#import "NSMutableDictionary+Saft.h"
|
||||
@implementation Api (TreasureFairy)
|
||||
|
||||
/// 夺宝限制
|
||||
/// - Parameter completion: 完成
|
||||
+ (void)treasureFailyLimitInfo:(HttpRequestHelperCompletion)completion {
|
||||
[self makeRequest:@"act/seize-treasure/status" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil];
|
||||
}
|
||||
|
||||
/// 夺宝奖池
|
||||
/// - Parameter completion: 完成
|
||||
+ (void)treasureFailyDrawList:(HttpRequestHelperCompletion)completion {
|
||||
[self makeRequest:@"act/seize-treasure/draw/pool/list" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil];
|
||||
}
|
||||
|
||||
/// 夺宝信息
|
||||
/// - Parameter completion: 完成
|
||||
+ (void)treasureFailyDrawInfo:(HttpRequestHelperCompletion)completion {
|
||||
[self makeRequest:@"act/seize-treasure/user/draw/info" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil];
|
||||
}
|
||||
|
||||
/// 开始夺宝
|
||||
/// - Parameters:
|
||||
/// - completion: 完成
|
||||
/// - roomUid: 房主的uid
|
||||
/// - drawNum: 个数
|
||||
+ (void)treasureFailyDraw:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid drawNum:(NSString *)drawNum {
|
||||
[self makeRequest:@"act/seize-treasure/draw" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, drawNum, nil];
|
||||
}
|
||||
|
||||
/// 森林抽奖
|
||||
/// - Parameters:
|
||||
/// - completion: 完成
|
||||
/// - roomUid: 抽奖次数
|
||||
/// - poolLevel: 奖池类型 1:初级;2:中级;3:高级;
|
||||
+ (void)treasureFailyForestDraw:(HttpRequestHelperCompletion)completion drawNum:(NSString *)drawNum poolLevel:(NSString *)poolLevel {
|
||||
[self makeRequest:@"act/seize-treasure/forest/draw" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, drawNum, poolLevel, nil];
|
||||
}
|
||||
|
||||
/// 森林抽奖记录
|
||||
/// - Parameters:
|
||||
/// - completion: 完成
|
||||
/// - page: 页数
|
||||
/// - pageSize: 一页多少个
|
||||
+ (void)treasureFairyForestDrawRecord:(HttpRequestHelperCompletion)completion page:(NSString *)page pageSize:(NSString *)pageSize {
|
||||
[self makeRequest:@"act/seize-treasure/forest/draw/record" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, page, pageSize, nil];
|
||||
}
|
||||
|
||||
/// 用户森林信息
|
||||
/// - Parameter completion: 完成
|
||||
+ (void)treasureFailyForestUserInfo:(HttpRequestHelperCompletion)completion {
|
||||
[self makeRequest:@"act/seize-treasure/user/forest/info" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil];
|
||||
}
|
||||
|
||||
/// 猛犸森林奖池配置列表
|
||||
/// - Parameter completion: 完成
|
||||
/// - Parameter poolLevel: 奖池等级
|
||||
+ (void)treasureFailyForestItems:(HttpRequestHelperCompletion)completion poolLevel:(NSString *)poolLevel {
|
||||
[self makeRequest:@"act/seize-treasure/draw/forest/item" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__,poolLevel, nil];
|
||||
}
|
||||
|
||||
/// 我的精灵
|
||||
/// - Parameter completion: 完成
|
||||
+ (void)treasureFairyMyBallList:(HttpRequestHelperCompletion)completion {
|
||||
[self makeRequest:@"act/seize-treasure/elf/user/info" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil];
|
||||
}
|
||||
|
||||
/// 我的好友
|
||||
/// - Parameters:
|
||||
/// - completion: 完成
|
||||
/// - nick: 昵称
|
||||
+ (void)treasureFairyFansFriendList:(HttpRequestHelperCompletion)completion nick:(NSString *)nick {
|
||||
NSMutableDictionary * params = [NSMutableDictionary dictionary];
|
||||
[params safeSetObject:nick forKey:@"nick"];
|
||||
[HttpRequestHelper request:@"fans/friend/list" method:HttpRequestHelperMethodGET params:params completion:completion];
|
||||
}
|
||||
|
||||
/// 精灵赠送
|
||||
/// - Parameters:
|
||||
/// - completion: 完成
|
||||
/// - elfId: 精灵id
|
||||
/// - targetUid: 目标用户的uid
|
||||
+ (void)treasureFairySendFairyBall:(HttpRequestHelperCompletion)completion elfId:(NSString *)elfId targetUid:(NSString *)targetUid {
|
||||
[self makeRequest:@"act/seize-treasure/elf/send" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__,elfId, targetUid, nil];
|
||||
}
|
||||
|
||||
/// 索要
|
||||
/// - Parameters:
|
||||
/// - completion: 完成
|
||||
/// - elfId: 精灵id
|
||||
/// - targetUid: 目标用户的uid
|
||||
+ (void)treasureFairyAskForFairyBall:(HttpRequestHelperCompletion)completion elfId:(NSString *)elfId targetUid:(NSString *)targetUid {
|
||||
[self makeRequest:@"act/seize-treasure/elf/askFor" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__,elfId, targetUid, nil];
|
||||
}
|
||||
|
||||
/// 赠与和获赠记录
|
||||
/// - Parameter completion: 完成
|
||||
/// - Parameter page: 页数
|
||||
/// - Parameter page: 一页多少个
|
||||
+ (void)treasureFailySendAndAskRecordList:(HttpRequestHelperCompletion)completion page:(NSString *)page pageSize:(NSString *)pageSize {
|
||||
[self makeRequest:@"act/seize-treasure/elf/record" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, page, pageSize,nil];
|
||||
}
|
||||
|
||||
/// 精灵试炼
|
||||
/// - Parameter completion: 完成
|
||||
/// - Parameter page: 页数
|
||||
/// - Parameter page: 一页多少个
|
||||
+ (void)treasureFailyCompoundBall:(HttpRequestHelperCompletion)completion compoundLevel:(NSInteger)compoundLevel compoundReqs:(NSArray *)compoundReqs {
|
||||
NSMutableDictionary * dic = [NSMutableDictionary dictionary];
|
||||
[dic safeSetObject:@(compoundLevel) forKey:@"level"];
|
||||
[dic safeSetObject:compoundReqs forKey:@"expendList"];
|
||||
[HttpRequestHelper postSkillCard:@"act/seize-treasure/elf/compound" params:dic.toJSONString completion:completion];
|
||||
}
|
||||
/// 精灵分解
|
||||
/// - Parameter completion: 完成
|
||||
/// - Parameter salvageReq: 分解的精灵
|
||||
+ (void)treasureFailySalvageall:(HttpRequestHelperCompletion)completion salvageReq:(NSArray *)salvageReq {
|
||||
NSMutableDictionary * dic = [NSMutableDictionary dictionary];
|
||||
[dic safeSetObject:salvageReq forKey:@"expendList"];
|
||||
[HttpRequestHelper postSkillCard:@"act/seize-treasure/elf/salvage" params:dic.toJSONString completion:completion];
|
||||
}
|
||||
/// 精灵试炼记录
|
||||
/// - Parameter completion: 完成
|
||||
/// - Parameter page: 页数
|
||||
/// - Parameter pageSize: 一页多少个
|
||||
+ (void)treasureFailyCompoundBallRecord:(HttpRequestHelperCompletion)completion page:(NSString *)page pageSize:(NSString *)pageSize {
|
||||
[self makeRequest:@"act/seize-treasure/elf/compound/record" method:HttpRequestHelperMethodGET completion:completion,__FUNCTION__, page, pageSize, nil];
|
||||
}
|
||||
|
||||
/// 兑换-精灵召回列表
|
||||
/// - Parameter completion: 完成
|
||||
/// - Parameter page: 页数
|
||||
/// - Parameter pageSize: 一页多少个
|
||||
+ (void)treasureFailyConvertElfList:(HttpRequestHelperCompletion)completion {
|
||||
[self makeRequest:@"act/seize-treasure/convert/elf/list" method:HttpRequestHelperMethodGET completion:completion,__FUNCTION__, nil];
|
||||
}
|
||||
|
||||
/// 兑换-精灵
|
||||
/// - Parameter completion: 完成
|
||||
/// - Parameter itemId: id
|
||||
+ (void)treasureFailyConvert:(HttpRequestHelperCompletion)completion itemId:(NSString *)itemId roomUid:(nonnull NSString *)roomUid propIdStr:(NSString *)propIdStr propNumStr:(NSString *)propNumStr {
|
||||
if(propIdStr.length > 0){
|
||||
[self makeRequest:@"act/seize-treasure/convert" method:HttpRequestHelperMethodPOST completion:completion,__FUNCTION__, itemId, roomUid,propIdStr,propNumStr,nil];
|
||||
return;
|
||||
}
|
||||
[self makeRequest:@"act/seize-treasure/convert" method:HttpRequestHelperMethodPOST completion:completion,__FUNCTION__, itemId, roomUid,nil];
|
||||
}
|
||||
|
||||
/// 兑换-碎片兑换列表
|
||||
/// - Parameter completion: 完成
|
||||
/// - Parameter page: 页数
|
||||
/// - Parameter pageSize: 一页多少个
|
||||
+ (void)treasureFailyFragmentExchangeList:(HttpRequestHelperCompletion)completion {
|
||||
[self makeRequest:@"act/seize-treasure/convert/chip/list" method:HttpRequestHelperMethodGET completion:completion,__FUNCTION__, nil];
|
||||
}
|
||||
|
||||
/// 兑换记录
|
||||
/// - Parameters:
|
||||
/// - completion: 完成
|
||||
/// - convertType: 1:精灵召唤 2:碎片兑换
|
||||
/// - page: 页数
|
||||
/// - pageSize: 一页多少个
|
||||
+ (void)treasureFairyConvertRecord:(HttpRequestHelperCompletion)completion convertType:(NSString *)convertType page:(NSString *)page pageSize:(NSString *)pageSize {
|
||||
[self makeRequest:@"act/seize-treasure/convert/record" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, convertType, page, pageSize, nil];
|
||||
}
|
||||
|
||||
/// 购买精灵碎片
|
||||
/// - Parameters:
|
||||
/// - completion: 完成
|
||||
/// - num: 数量
|
||||
/// - uid: 用户id
|
||||
+(void)buyElfShard:(HttpRequestHelperCompletion)completion num:(NSString*)num uid:(NSString *)uid{
|
||||
[self makeRequest:@"act/seize-treasure/shard/buy" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, num,uid, nil];
|
||||
}
|
||||
|
||||
@end
|
@@ -1,35 +0,0 @@
|
||||
//
|
||||
// TreasureFailryMessageModel.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/3/1.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface TreasureFailryMessageModel : PIBaseModel
|
||||
///奖励的名称
|
||||
@property (nonatomic,copy) NSString *rewardName;
|
||||
///奖励的个数
|
||||
@property (nonatomic,assign) NSInteger rewardNum;
|
||||
///用户的uid
|
||||
@property (nonatomic,copy) NSString *uid;
|
||||
///昵称
|
||||
@property (nonatomic,copy) NSString *nick;
|
||||
///所在房间的Uid
|
||||
@property (nonatomic,copy) NSString *roomUid;
|
||||
///奖励等级
|
||||
@property (nonatomic,assign) NSInteger rewardLevel;
|
||||
///奖励类型
|
||||
@property (nonatomic,copy) NSString *rewardType;
|
||||
///限制等级
|
||||
@property (nonatomic,assign) NSInteger userLevelLimit;
|
||||
///礼物价值
|
||||
@property (nonatomic,assign) NSInteger rewardShowValue;
|
||||
/// 奖励单位
|
||||
@property (nonatomic, copy) NSString *rewardUnit;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,12 +0,0 @@
|
||||
//
|
||||
// TreasureFailryMessageModel.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/3/1.
|
||||
//
|
||||
|
||||
#import "TreasureFailryMessageModel.h"
|
||||
|
||||
@implementation TreasureFailryMessageModel
|
||||
|
||||
@end
|
@@ -1,25 +0,0 @@
|
||||
//
|
||||
// TreasureFailyKeyInfoModel.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/17.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface TreasureFailyKeyInfoModel : PIBaseModel
|
||||
///门票数
|
||||
@property (nonatomic,assign) NSInteger drawTicketNum;
|
||||
///幸运值
|
||||
@property (nonatomic,assign) NSInteger luckyNum;
|
||||
///写一个幸运值
|
||||
@property (nonatomic,assign) NSInteger nextBallNum;
|
||||
///需要幸运值
|
||||
@property (nonatomic,assign) NSInteger needLuckyNum;
|
||||
///保存我的精灵选择的精灵等级,0,初级,1,史诗,2,传说
|
||||
@property (nonatomic,assign) NSInteger spriteLevel;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,12 +0,0 @@
|
||||
//
|
||||
// TreasureFailyKeyInfoModel.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/17.
|
||||
//
|
||||
|
||||
#import "TreasureFailyKeyInfoModel.h"
|
||||
|
||||
@implementation TreasureFailyKeyInfoModel
|
||||
|
||||
@end
|
@@ -1,52 +0,0 @@
|
||||
//
|
||||
// TreasureFairyBallInfoModel.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "TreasureFairyInfoModel.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class TreasureFairyBallModel;
|
||||
@interface TreasureFairyBallInfoModel : PIBaseModel
|
||||
///头像
|
||||
@property (nonatomic,copy) NSString *avatar;
|
||||
///昵称
|
||||
@property (nonatomic,copy) NSString *nick;
|
||||
///精灵碎片
|
||||
@property (nonatomic,assign) NSInteger chipNum;
|
||||
///史诗
|
||||
@property (nonatomic,copy) NSArray<TreasureFairyBallModel *> *middleElves;
|
||||
///普通
|
||||
@property (nonatomic,copy) NSArray<TreasureFairyBallModel *> *lowElves;
|
||||
///传说
|
||||
@property (nonatomic,copy) NSArray<TreasureFairyBallModel *> *highElves;
|
||||
@end
|
||||
|
||||
@interface TreasureFairyBallModel : PIBaseModel
|
||||
///id
|
||||
@property (nonatomic,assign) NSInteger elfId;
|
||||
///精灵名称
|
||||
@property (nonatomic,copy) NSString *elfName;
|
||||
///精灵数量
|
||||
@property (nonatomic,assign) NSInteger elfNum;
|
||||
///精灵图片
|
||||
@property (nonatomic,copy) NSString *elfPicUrl;
|
||||
///精灵等级
|
||||
@property (nonatomic,assign) TreasureFairyStoreType elfLevel;
|
||||
///是否翻转了 本地字段
|
||||
@property (nonatomic,assign) BOOL isFlip;
|
||||
///选中的个数 最大为3
|
||||
@property (nonatomic,assign) NSInteger chooseNum;
|
||||
///消息中使用的
|
||||
///昵称 赠送的时候使用
|
||||
@property (nonatomic,copy) NSString *nick;
|
||||
///赠送的人的uid
|
||||
@property (nonatomic,assign) NSInteger uid;
|
||||
|
||||
|
||||
@property(nonatomic,assign) BOOL isHigh;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,26 +0,0 @@
|
||||
//
|
||||
// TreasureFairyBallInfoModel.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/22.
|
||||
//
|
||||
|
||||
#import "TreasureFairyBallInfoModel.h"
|
||||
|
||||
@implementation TreasureFairyBallInfoModel
|
||||
+ (NSDictionary *)objectClassInArray {
|
||||
return @{
|
||||
@"highElves":TreasureFairyBallModel.class,
|
||||
@"lowElves":TreasureFairyBallModel.class,
|
||||
@"middleElves":TreasureFairyBallModel.class,
|
||||
};
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation TreasureFairyBallModel
|
||||
|
||||
|
||||
|
||||
@end
|
@@ -1,27 +0,0 @@
|
||||
//
|
||||
// TreasureFairyConvertRecordModel.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by XY on 2023/3/1.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface TreasureFairyConvertRecordModel : PIBaseModel
|
||||
|
||||
@property (nonatomic, assign) NSInteger convertLevel;
|
||||
@property (nonatomic, assign) NSInteger convertType;
|
||||
@property (nonatomic, copy) NSString *createTime;
|
||||
@property (nonatomic, assign) NSInteger recordId;
|
||||
@property (nonatomic, copy) NSString *rewardName;
|
||||
@property (nonatomic, copy) NSString *rewardNum;
|
||||
@property (nonatomic, copy) NSString *rewardPicUrl;
|
||||
@property (nonatomic, copy) NSString *rewardShowValue;
|
||||
@property (nonatomic, copy) NSString *rewardType;
|
||||
@property (nonatomic, copy) NSString *rewardUnit;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,12 +0,0 @@
|
||||
//
|
||||
// TreasureFairyConvertRecordModel.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by XY on 2023/3/1.
|
||||
//
|
||||
|
||||
#import "TreasureFairyConvertRecordModel.h"
|
||||
|
||||
@implementation TreasureFairyConvertRecordModel
|
||||
|
||||
@end
|
@@ -1,53 +0,0 @@
|
||||
//
|
||||
// TreasureFairyFragmentModel.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by XY on 2023/2/28.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface TreasureFairyFragmentModel : PIBaseModel
|
||||
|
||||
/// 消耗数量
|
||||
@property (nonatomic, assign) NSInteger expendNum;
|
||||
/// 兑换项id
|
||||
@property (nonatomic, assign) NSInteger itemId;
|
||||
/// 兑换等级
|
||||
@property (nonatomic, assign) NSInteger level;
|
||||
/// 奖励id
|
||||
@property (nonatomic, assign) NSInteger rewardId;
|
||||
/// 奖励名称
|
||||
@property (nonatomic, copy) NSString *rewardName;
|
||||
/// 奖励数量
|
||||
@property (nonatomic, assign) NSInteger rewardNum;
|
||||
/// 奖励图片url
|
||||
@property (nonatomic, copy) NSString *rewardPicUrl;
|
||||
/// 奖励价值
|
||||
@property (nonatomic, copy) NSString *rewardShowValue;
|
||||
/// 奖励类型 activityProps:活动道具;gift:礼物;namePlate:铭牌;car:座驾;headwear:头饰;chatBubble:气泡;infoCard:资料卡;
|
||||
@property (nonatomic, copy) NSString *rewardType;
|
||||
/// 奖励单位
|
||||
@property (nonatomic, copy) NSString *rewardUnit;
|
||||
/// 兑换类型
|
||||
@property (nonatomic, assign) NSInteger type;
|
||||
|
||||
@property(nonatomic,copy) NSArray *propItems;
|
||||
|
||||
@end
|
||||
@interface TreasureFairyFragmentItemModel : PIBaseModel
|
||||
|
||||
|
||||
@property (nonatomic, copy) NSString *picUrl;
|
||||
|
||||
@property (nonatomic, copy) NSString *propId;
|
||||
|
||||
@property (nonatomic, copy) NSString *propName;
|
||||
|
||||
@property (nonatomic, copy) NSString *propNum;
|
||||
|
||||
|
||||
@end
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,20 +0,0 @@
|
||||
//
|
||||
// TreasureFairyFragmentModel.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by XY on 2023/2/28.
|
||||
//
|
||||
|
||||
#import "TreasureFairyFragmentModel.h"
|
||||
|
||||
@implementation TreasureFairyFragmentModel
|
||||
+ (NSDictionary *)objectClassInArray{
|
||||
return @{@"propItems":TreasureFairyFragmentItemModel.class};
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation TreasureFairyFragmentItemModel
|
||||
|
||||
|
||||
|
||||
@end
|
@@ -1,58 +0,0 @@
|
||||
//
|
||||
// TreasureFairyInfoModel.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/15.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
typedef NS_ENUM(NSInteger, TreasureFairyStoreType) {
|
||||
///普通
|
||||
TreasureFairyStoreType_Normal = 1,
|
||||
///史诗
|
||||
TreasureFairyStoreType_Middle = 2,
|
||||
///传说
|
||||
TreasureFairyStoreType_High = 3,
|
||||
///分解
|
||||
TreasureFairyStoreType_Salvage = 7,
|
||||
};
|
||||
|
||||
typedef NS_ENUM(NSInteger, TreasureFairyPropType) {
|
||||
///碎片
|
||||
TreasureFairyPropType_Piece = 1,
|
||||
///精灵球
|
||||
TreasureFairyPropType_Ball = 2,
|
||||
///精灵
|
||||
TreasureFairyPropType_Fairy = 3,
|
||||
///分解获得碎片
|
||||
TreasureFairyPropType_Salvage = 4,
|
||||
};
|
||||
|
||||
@interface TreasureFairyInfoModel : PIBaseModel
|
||||
///奖励id
|
||||
@property (nonatomic,assign) NSInteger rewardId;
|
||||
///奖励的名称
|
||||
@property (nonatomic,copy) NSString *rewardName;
|
||||
///奖励的个数
|
||||
@property (nonatomic,assign) NSInteger rewardNum;
|
||||
///奖励的图片
|
||||
@property (nonatomic,copy) NSString *rewardPicUrl;
|
||||
/// 展示概率
|
||||
@property (nonatomic,assign) CGFloat showRatio;
|
||||
///礼物的等级
|
||||
@property (nonatomic,assign) NSInteger rewardLevel;
|
||||
///礼物的index
|
||||
@property (nonatomic,assign) NSInteger itemIndex;
|
||||
#pragma mark - 夺宝记录
|
||||
///奖池等级
|
||||
@property (nonatomic,assign) TreasureFairyStoreType poolLevel;
|
||||
///时间戳
|
||||
@property (nonatomic,copy) NSString *drawTime;
|
||||
///森林开出的礼物类型
|
||||
@property (nonatomic,assign) TreasureFairyPropType propType;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,12 +0,0 @@
|
||||
//
|
||||
// TreasureFairyInfoModel.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/15.
|
||||
//
|
||||
|
||||
#import "TreasureFairyInfoModel.h"
|
||||
|
||||
@implementation TreasureFairyInfoModel
|
||||
|
||||
@end
|
@@ -1,19 +0,0 @@
|
||||
//
|
||||
// TreasureFairyLimitModel.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/3/1.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface TreasureFairyLimitModel : PIBaseModel
|
||||
///是否开启
|
||||
@property (nonatomic,assign) BOOL open;
|
||||
///等级限制
|
||||
@property (nonatomic,assign) NSInteger levelLimit;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,12 +0,0 @@
|
||||
//
|
||||
// TreasureFairyLimitModel.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/3/1.
|
||||
//
|
||||
|
||||
#import "TreasureFairyLimitModel.h"
|
||||
|
||||
@implementation TreasureFairyLimitModel
|
||||
|
||||
@end
|
@@ -1,30 +0,0 @@
|
||||
//
|
||||
// TreasureFairyRewardModel.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/28.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "TreasureFairyInfoModel.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface TreasureFairyRewardModel : PIBaseModel
|
||||
@property (nonatomic,assign) NSInteger itemId;
|
||||
///奖励id
|
||||
@property (nonatomic,assign) NSInteger rewardId;
|
||||
///奖励的名称
|
||||
@property (nonatomic,copy) NSString *rewardName;
|
||||
///奖励的个数
|
||||
@property (nonatomic,assign) NSInteger rewardNum;
|
||||
///奖励的图片
|
||||
@property (nonatomic,copy) NSString *rewardPicUrl;
|
||||
///奖励的价值
|
||||
@property (nonatomic,assign) NSInteger rewardShowValue;
|
||||
///奖励的单位
|
||||
@property (nonatomic,assign) NSInteger rewardUnit;
|
||||
///类型
|
||||
@property (nonatomic,assign) TreasureFairyStoreType level;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,12 +0,0 @@
|
||||
//
|
||||
// TreasureFairyRewardModel.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/28.
|
||||
//
|
||||
|
||||
#import "TreasureFairyRewardModel.h"
|
||||
|
||||
@implementation TreasureFairyRewardModel
|
||||
|
||||
@end
|
@@ -1,34 +0,0 @@
|
||||
//
|
||||
// TreasureFairySendRecordModel.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/23.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
typedef NS_ENUM(NSInteger, TreasureFairySendRecordType) {
|
||||
///赠与
|
||||
TreasureFairySendRecordModel_Send = 2,
|
||||
///获赠
|
||||
TreasureFairySendRecordModel_Receive =3,
|
||||
};
|
||||
|
||||
@interface TreasureFairySendRecordModel : PIBaseModel
|
||||
///时间戳
|
||||
@property (nonatomic,copy) NSString *createTime;
|
||||
///图片
|
||||
@property (nonatomic,copy) NSString *elfPicUrl;
|
||||
///头像
|
||||
@property (nonatomic,copy) NSString *targetAvatar;
|
||||
///昵称
|
||||
@property (nonatomic,copy) NSString *targetNick;
|
||||
///类型
|
||||
@property (nonatomic,assign) TreasureFairySendRecordType type;
|
||||
///精灵名称
|
||||
@property (nonatomic,copy) NSString *elfName;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,12 +0,0 @@
|
||||
//
|
||||
// TreasureFairySendRecordModel.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/23.
|
||||
//
|
||||
|
||||
#import "TreasureFairySendRecordModel.h"
|
||||
|
||||
@implementation TreasureFairySendRecordModel
|
||||
|
||||
@end
|
@@ -1,25 +0,0 @@
|
||||
//
|
||||
// TreasureFairyTrialsRecordModel.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/27.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "TreasureFairyInfoModel.h"
|
||||
#import "TreasureFairyBallInfoModel.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface TreasureFairyTrialsRecordModel : PIBaseModel
|
||||
///精灵等级
|
||||
@property (nonatomic,assign) TreasureFairyStoreType compoundLevel;
|
||||
///创建的时间
|
||||
@property (nonatomic,copy) NSString *createTime;
|
||||
///奖励的名称
|
||||
@property (nonatomic,copy) NSString *elfName;
|
||||
///合成的元素
|
||||
@property (nonatomic,strong) NSArray<TreasureFairyBallModel *> *expendList;
|
||||
@property(nonatomic, assign) NSInteger type;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,16 +0,0 @@
|
||||
//
|
||||
// TreasureFairyTrialsRecordModel.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/27.
|
||||
//
|
||||
|
||||
#import "TreasureFairyTrialsRecordModel.h"
|
||||
|
||||
@implementation TreasureFairyTrialsRecordModel
|
||||
+ (NSDictionary *)objectClassInArray {
|
||||
return @{
|
||||
@"expendList":TreasureFairyBallModel.class
|
||||
};
|
||||
}
|
||||
@end
|
@@ -1,25 +0,0 @@
|
||||
//
|
||||
// TreasureFairyUserInfoModel.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/21.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface TreasureFairyUserInfoModel : PIBaseModel
|
||||
///奖励的名称
|
||||
@property (nonatomic,copy) NSString *avatar;
|
||||
///奖励的名称
|
||||
@property (nonatomic,copy) NSString *nick;
|
||||
///高级精灵球个数
|
||||
@property (nonatomic,assign) NSInteger highBallNum;
|
||||
///初级精灵球个数
|
||||
@property (nonatomic,assign) NSInteger lowBallNum;
|
||||
///中级精灵球个数
|
||||
@property (nonatomic,assign) NSInteger middleBallNum;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,12 +0,0 @@
|
||||
//
|
||||
// TreasureFairyUserInfoModel.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/21.
|
||||
//
|
||||
|
||||
#import "TreasureFairyUserInfoModel.h"
|
||||
|
||||
@implementation TreasureFairyUserInfoModel
|
||||
|
||||
@end
|
@@ -1,23 +0,0 @@
|
||||
//
|
||||
// TreasureFailyPresenter.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/15.
|
||||
//
|
||||
|
||||
#import "BaseMvpPresenter.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPTreasureFailyPresenter : BaseMvpPresenter
|
||||
///获取夺宝信息
|
||||
- (void)getTreasureFailyInfo;
|
||||
///夺宝奖励列表
|
||||
- (void)getTreasureFailyDrawList;
|
||||
///开始夺宝
|
||||
- (void)drawTreasureFaily:(NSString *)roomUid drawNum:(NSInteger)drawNum;
|
||||
///购买精灵碎片
|
||||
-(void)buyElfShardWithNum:(NSString *)num;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,50 +0,0 @@
|
||||
//
|
||||
// TreasureFailyPresenter.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/15.
|
||||
//
|
||||
|
||||
#import "XPTreasureFailyPresenter.h"
|
||||
#import "Api+TreasureFairy.h"
|
||||
#import "TreasureFailyKeyInfoModel.h"
|
||||
#import "TreasureFairyInfoModel.h"
|
||||
#import "XPTreasureFailyProtocol.h"
|
||||
@implementation XPTreasureFailyPresenter
|
||||
|
||||
///获取夺宝信息
|
||||
- (void)getTreasureFailyInfo {
|
||||
[Api treasureFailyDrawInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||
TreasureFailyKeyInfoModel * info = [TreasureFailyKeyInfoModel modelWithDictionary:data.data];
|
||||
[[self getView] getTreasureFailyInfoSuccess:info];
|
||||
}]];
|
||||
}
|
||||
|
||||
///夺宝奖励列表
|
||||
- (void)getTreasureFailyDrawList {
|
||||
[Api treasureFailyDrawList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||
NSArray * array = [TreasureFairyInfoModel modelsWithArray:data.data];
|
||||
[[self getView] getTreasureFailyDrawListSuccess:array];
|
||||
}]];
|
||||
}
|
||||
|
||||
///开始夺宝
|
||||
- (void)drawTreasureFaily:(NSString *)roomUid drawNum:(NSInteger)drawNum {
|
||||
NSString * drawStr = [NSString stringWithFormat:@"%ld", drawNum];
|
||||
[Api treasureFailyDraw:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||
NSArray * array = [TreasureFairyInfoModel modelsWithArray:data.data];
|
||||
[[self getView] drawTreasureFailySuccess:array];
|
||||
} fail:^(NSInteger code, NSString * _Nullable msg) {
|
||||
[[self getView] drawTreasureFailyFail:code num:drawStr];
|
||||
}] roomUid:roomUid drawNum:drawStr];
|
||||
}
|
||||
///购买精灵碎片
|
||||
-(void)buyElfShardWithNum:(NSString *)num{
|
||||
NSString *uid = [AccountInfoStorage instance].getUid;
|
||||
[Api buyElfShard:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||
[[self getView]buyElfShardSuccessWithNum:num];
|
||||
} fail:^(NSInteger code, NSString * _Nullable msg) {
|
||||
[[self getView]buyElfShardFail];
|
||||
}showLoading:YES] num:num uid:uid];
|
||||
}
|
||||
@end
|
@@ -1,29 +0,0 @@
|
||||
//
|
||||
// XPTreasureFailyProtocol.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/15.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class TreasureFailyKeyInfoModel;
|
||||
@protocol XPTreasureFailyProtocol <NSObject>
|
||||
|
||||
///获取夺宝精灵用户信息成功
|
||||
- (void)getTreasureFailyInfoSuccess:(TreasureFailyKeyInfoModel *)info;
|
||||
|
||||
///夺宝精灵奖励列表
|
||||
- (void)getTreasureFailyDrawListSuccess:(NSArray *)list;
|
||||
|
||||
///夺宝精灵 开始夺宝
|
||||
- (void)drawTreasureFailySuccess:(NSArray *)array;
|
||||
- (void)drawTreasureFailyFail:(NSInteger)code num:(NSString *)num;
|
||||
///购买精灵碎片成功
|
||||
-(void)buyElfShardSuccessWithNum:(NSString *)num;
|
||||
///购买精灵碎片失败
|
||||
-(void)buyElfShardFail;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,17 +0,0 @@
|
||||
//
|
||||
// XPTreasureFailyResultGiftView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/16.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class TreasureFairyInfoModel;
|
||||
@interface XPTreasureFailyResultGiftCell : UICollectionViewCell
|
||||
///奖励信息
|
||||
@property (nonatomic,strong) TreasureFairyInfoModel *prizeInfo;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,121 +0,0 @@
|
||||
//
|
||||
// XPTreasureFailyResultGiftView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/16.
|
||||
//
|
||||
|
||||
#import "XPTreasureFailyResultGiftCell.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
#import "NetImageView.h"
|
||||
///Model
|
||||
#import "TreasureFairyInfoModel.h"
|
||||
|
||||
@interface XPTreasureFailyResultGiftCell ()
|
||||
///背景
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///礼物名称
|
||||
@property (nonatomic,strong) NetImageView *giftImageView;
|
||||
///个数
|
||||
@property (nonatomic,strong) UIButton *countButton;
|
||||
///名字
|
||||
@property (nonatomic,strong) UILabel *nameLabel;
|
||||
@end
|
||||
|
||||
@implementation XPTreasureFailyResultGiftCell
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
[self.contentView addSubview:self.backImageView];
|
||||
[self.contentView addSubview:self.nameLabel];
|
||||
[self.backImageView addSubview:self.giftImageView];
|
||||
[self.backImageView addSubview:self.countButton];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.top.mas_equalTo(self);
|
||||
make.height.mas_equalTo(self.backImageView.mas_width);
|
||||
|
||||
}];
|
||||
|
||||
[self.giftImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self.backImageView).inset(10);
|
||||
}];
|
||||
|
||||
[self.countButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(29.5, 30.5));
|
||||
make.bottom.trailing.mas_equalTo(self.backImageView);
|
||||
}];
|
||||
|
||||
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self);
|
||||
make.top.mas_equalTo(self.backImageView.mas_bottom).offset(7);
|
||||
}];
|
||||
}
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setPrizeInfo:(TreasureFairyInfoModel *)prizeInfo {
|
||||
_prizeInfo = prizeInfo;
|
||||
if (_prizeInfo) {
|
||||
self.giftImageView.imageUrl = prizeInfo.rewardPicUrl;
|
||||
[self.countButton setTitle:[NSString stringWithFormat:@"%ld", _prizeInfo.rewardNum] forState:UIControlStateNormal];
|
||||
self.nameLabel.text = _prizeInfo.rewardName;
|
||||
}
|
||||
}
|
||||
|
||||
- (UIImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.userInteractionEnabled = YES;
|
||||
_backImageView.image = [UIImage imageNamed:@"room_treasure_faily_result_gift_bg"];
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
|
||||
- (NetImageView *)giftImageView {
|
||||
if (!_giftImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_giftImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_giftImageView.layer.masksToBounds = YES;
|
||||
_giftImageView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
}
|
||||
return _giftImageView;
|
||||
}
|
||||
|
||||
- (UIButton *)countButton {
|
||||
if (!_countButton) {
|
||||
_countButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_countButton setTitleColor:[DJDKMIMOMColor colorWithHexString:@"#1F5764"] forState:UIControlStateNormal];
|
||||
_countButton.titleLabel.font = [UIFont systemFontOfSize:10];
|
||||
[_countButton setBackgroundImage:[UIImage imageNamed:@"room_treasure_fairy_result_coung_bg"] forState:UIControlStateNormal];
|
||||
}
|
||||
return _countButton;
|
||||
}
|
||||
|
||||
- (UILabel *)nameLabel {
|
||||
if (!_nameLabel) {
|
||||
_nameLabel = [[UILabel alloc] init];
|
||||
_nameLabel.font = [UIFont systemFontOfSize:13];
|
||||
_nameLabel.textAlignment = NSTextAlignmentCenter;
|
||||
_nameLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#FFE8AA"];
|
||||
}
|
||||
return _nameLabel;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@end
|
@@ -1,16 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyFriendCell.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/23.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class UserInfoModel;
|
||||
@interface XPTreasureFairyFriendCell : UITableViewCell
|
||||
@property (nonatomic,strong) UserInfoModel *userInfo;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,122 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyFriendCell.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/23.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyFriendCell.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
#import "NetImageView.h"
|
||||
///Model
|
||||
#import "UserInfoModel.h"
|
||||
@interface XPTreasureFairyFriendCell ()
|
||||
///背景
|
||||
@property (nonatomic,strong) UIView *backView;
|
||||
///头像
|
||||
@property (nonatomic,strong) NetImageView *avatarImageView;
|
||||
///昵称
|
||||
@property (nonatomic,strong) UILabel *nickLabel;
|
||||
///签名
|
||||
@property (nonatomic,strong) UILabel *signLabel;
|
||||
@end
|
||||
|
||||
|
||||
@implementation XPTreasureFairyFriendCell
|
||||
|
||||
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
|
||||
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
self.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
[self.contentView addSubview:self.backView];
|
||||
[self.backView addSubview:self.avatarImageView];
|
||||
[self.backView addSubview:self.nickLabel];
|
||||
[self.backView addSubview:self.signLabel];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.backView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.contentView).inset(15);
|
||||
make.top.mas_equalTo(self.contentView);
|
||||
make.height.mas_equalTo(55);
|
||||
}];
|
||||
|
||||
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(49, 49));
|
||||
make.leading.mas_equalTo(self.backView).offset(12);
|
||||
make.centerY.mas_equalTo(self.backView);
|
||||
}];
|
||||
|
||||
[self.nickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(self.avatarImageView.mas_trailing).offset(8);
|
||||
make.trailing.mas_lessThanOrEqualTo(self.backView).offset(-5);
|
||||
make.bottom.mas_equalTo(self.avatarImageView.mas_centerY).offset(-3);
|
||||
}];
|
||||
|
||||
[self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.nickLabel);
|
||||
make.top.mas_equalTo(self.nickLabel.mas_bottom).offset(3);
|
||||
}];
|
||||
}
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setUserInfo:(UserInfoModel *)userInfo {
|
||||
_userInfo = userInfo;
|
||||
if (_userInfo) {
|
||||
self.avatarImageView.imageUrl = _userInfo.avatar;
|
||||
self.nickLabel.text = _userInfo.nick;
|
||||
self.signLabel.text = _userInfo.userDesc.length > 0 ? _userInfo.userDesc : YMLocalizedString(@"XPTreasureFairyFriendCell0");
|
||||
}
|
||||
}
|
||||
|
||||
- (UIView *)backView {
|
||||
if (!_backView) {
|
||||
_backView = [[UIView alloc] init];
|
||||
_backView.backgroundColor = [DJDKMIMOMColor colorWithHexString:@"#00A69D"];
|
||||
_backView.layer.cornerRadius = 4;
|
||||
_backView.layer.masksToBounds = YES;
|
||||
}
|
||||
return _backView;
|
||||
}
|
||||
|
||||
- (NetImageView *)avatarImageView {
|
||||
if (!_avatarImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_avatarImageView.layer.masksToBounds = YES;
|
||||
_avatarImageView.layer.cornerRadius = 49/2;
|
||||
_avatarImageView.layer.borderWidth = 0.5;
|
||||
_avatarImageView.layer.borderColor = [DJDKMIMOMColor colorWithHexString:@"#FFE8AA"].CGColor;
|
||||
}
|
||||
return _avatarImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)nickLabel {
|
||||
if (!_nickLabel) {
|
||||
_nickLabel = [[UILabel alloc] init];
|
||||
_nickLabel.font = [UIFont systemFontOfSize:14];
|
||||
_nickLabel.textColor = [UIColor whiteColor];
|
||||
}
|
||||
return _nickLabel;
|
||||
}
|
||||
- (UILabel *)signLabel {
|
||||
if (!_signLabel) {
|
||||
_signLabel = [[UILabel alloc] init];
|
||||
_signLabel.font = [UIFont systemFontOfSize:12];
|
||||
_signLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#59FDFF"];
|
||||
}
|
||||
return _signLabel;
|
||||
}
|
||||
|
||||
@end
|
@@ -1,28 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyNewSummonCell.h
|
||||
// YuMi
|
||||
//
|
||||
// Created by duoban on 2023/9/6.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "TreasureFairyFragmentModel.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@protocol XPTreasureFairyNewSummonCellDelegate <NSObject>
|
||||
|
||||
/// 兑换事件
|
||||
- (void)treasureFairyShopingExchangeAction:(TreasureFairyFragmentModel *)fragmentModel;
|
||||
|
||||
@end
|
||||
@interface XPTreasureFairyNewSummonCell : UICollectionViewCell
|
||||
@property (nonatomic, strong) TreasureFairyFragmentModel *fragmemtModel;
|
||||
|
||||
@property (nonatomic, weak) id<XPTreasureFairyNewSummonCellDelegate> delegate;
|
||||
@end
|
||||
|
||||
@interface XPTreasureFairyNewSummonPriceView : UIView
|
||||
@property(nonatomic,copy) NSString *imageIcon;
|
||||
@property(nonatomic,copy) NSString *text;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,315 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyNewSummonCell.m
|
||||
// YuMi
|
||||
//
|
||||
// Created by duoban on 2023/9/6.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyNewSummonCell.h"
|
||||
@interface XPTreasureFairyNewSummonCell()
|
||||
///背景图
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///精灵球的背景
|
||||
@property (nonatomic,strong) UIImageView *ballBgImageView;
|
||||
///精灵球
|
||||
@property (nonatomic,strong) NetImageView *ballImaegView;
|
||||
///昵称
|
||||
@property (nonatomic,strong) UILabel *nameLabel;
|
||||
///容器
|
||||
@property (nonatomic,strong) UIStackView *stackView;
|
||||
///第一个精灵数量
|
||||
@property (nonatomic,strong) XPTreasureFairyNewSummonPriceView *firstPieceView;
|
||||
|
||||
///第二个精灵数量
|
||||
@property (nonatomic,strong) XPTreasureFairyNewSummonPriceView *secondPieceView;
|
||||
|
||||
///第三个精灵数量
|
||||
@property (nonatomic,strong) XPTreasureFairyNewSummonPriceView *thirdPieceView;
|
||||
|
||||
///兑换
|
||||
@property (nonatomic,strong) UIButton *exchangeButton;
|
||||
@end
|
||||
@implementation XPTreasureFairyNewSummonCell
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
self.contentView.backgroundColor = UIColor.clearColor;
|
||||
self.backgroundColor = UIColor.clearColor;
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
[self.contentView addSubview:self.backImageView];
|
||||
[self.backImageView addSubview:self.ballImaegView];
|
||||
[self.backImageView addSubview:self.nameLabel];
|
||||
[self.backImageView addSubview:self.stackView];
|
||||
[self.backImageView addSubview:self.exchangeButton];
|
||||
|
||||
[self.stackView addArrangedSubview:self.firstPieceView];
|
||||
[self.stackView addArrangedSubview:self.secondPieceView];
|
||||
[self.stackView addArrangedSubview:self.thirdPieceView];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self.contentView);
|
||||
}];
|
||||
|
||||
[self.ballImaegView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(74);
|
||||
make.height.mas_equalTo(74);
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
make.top.mas_equalTo(60.0);
|
||||
}];
|
||||
|
||||
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(8);
|
||||
make.trailing.mas_equalTo(-8);
|
||||
make.height.mas_equalTo(12);
|
||||
make.top.mas_equalTo(137.0);
|
||||
}];
|
||||
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.equalTo(self.nameLabel.mas_bottom).mas_offset(4);
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
make.height.mas_equalTo(34);
|
||||
make.width.mas_equalTo(124);
|
||||
}];
|
||||
|
||||
[self.firstPieceView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(40);
|
||||
make.height.mas_equalTo(34);
|
||||
}];
|
||||
|
||||
[self.secondPieceView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(40);
|
||||
make.height.mas_equalTo(34);
|
||||
}];
|
||||
[self.thirdPieceView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(40);
|
||||
make.height.mas_equalTo(34);
|
||||
}];
|
||||
[self.exchangeButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
make.top.equalTo(self.stackView.mas_bottom).mas_offset(4);
|
||||
make.width.mas_equalTo(70);
|
||||
make.height.mas_equalTo(23);
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)layoutSubviews {
|
||||
[super layoutSubviews];
|
||||
self.ballImaegView.layer.cornerRadius = self.ballImaegView.bounds.size.width/2.0;
|
||||
self.ballImaegView.clipsToBounds = YES;
|
||||
}
|
||||
|
||||
- (void)setFragmemtModel:(TreasureFairyFragmentModel *)fragmemtModel {
|
||||
_fragmemtModel = fragmemtModel;
|
||||
NSString * utils = fragmemtModel.rewardUnit;
|
||||
if ([fragmemtModel.rewardType isEqualToString:@"gift"]) {
|
||||
utils = YMLocalizedString(@"XPTreasureFairyShopingExchangeCell0");
|
||||
self.nameLabel.text = [NSString stringWithFormat:@"%@(%@%@)",fragmemtModel.rewardName, fragmemtModel.rewardShowValue, utils];
|
||||
} else {
|
||||
self.nameLabel.text = [NSString stringWithFormat:@"%@(%ld%@)",fragmemtModel.rewardName, fragmemtModel.rewardNum, utils];
|
||||
}
|
||||
[self.ballImaegView loadImageWithUrl:fragmemtModel.rewardPicUrl completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
|
||||
self.ballImaegView.image = image;
|
||||
CGFloat width = 60;
|
||||
CGFloat height = 60;
|
||||
if(image.size.width < image.size.height){
|
||||
height = width * image.size.height / (image.size.width > 0 ? image.size.width : 1);
|
||||
}else if (image.size.width > image.size.height){
|
||||
width = height * image.size.width / (image.size.height > 0 ? image.size.height : 1);
|
||||
}
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[self.ballImaegView mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(width);
|
||||
make.height.mas_equalTo(height);
|
||||
}];
|
||||
});
|
||||
}];
|
||||
// self.pieceCountLabel.text = [NSString stringWithFormat:@"%ld",fragmemtModel.expendNum];
|
||||
|
||||
NSArray *pieceViewList = @[_firstPieceView,_secondPieceView,_thirdPieceView];
|
||||
int count = 0;
|
||||
for (int i = 0 ; i < pieceViewList.count; i++) {
|
||||
XPTreasureFairyNewSummonPriceView *priceView = pieceViewList[i];
|
||||
if(i < _fragmemtModel.propItems.count){
|
||||
priceView.hidden = NO;
|
||||
TreasureFairyFragmentItemModel *itemModel = _fragmemtModel.propItems[i];
|
||||
priceView.imageIcon = itemModel.picUrl;
|
||||
priceView.text = [NSString stringWithFormat:@"%@x%@",itemModel.propName,itemModel.propNum];
|
||||
}else{
|
||||
priceView.hidden = YES;
|
||||
count = count + 1;
|
||||
}
|
||||
}
|
||||
CGFloat width = 124 - count * 40;
|
||||
[self.stackView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.equalTo(self.nameLabel.mas_bottom).mas_offset(4);
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
make.height.mas_equalTo(34);
|
||||
make.width.mas_equalTo(width);
|
||||
}];
|
||||
[self.exchangeButton setTitle:YMLocalizedString(@"XPTreasureFairyShopingExchangeCell1") forState:UIControlStateNormal];
|
||||
}
|
||||
|
||||
#pragma mark - Action
|
||||
|
||||
- (void)exchangeBtnAction {
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(treasureFairyShopingExchangeAction:)]) {
|
||||
[self.delegate treasureFairyShopingExchangeAction:self.fragmemtModel];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
|
||||
- (UIImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.image = [UIImage imageNamed:@"room_treasure_fairy_shop_new_exchange_bg"];
|
||||
_backImageView.userInteractionEnabled = YES;
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
|
||||
- (NetImageView *)ballImaegView {
|
||||
if (!_ballImaegView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_ballImaegView = [[NetImageView alloc] initWithConfig:config];
|
||||
// _ballImaegView.clipsToBounds = YES;
|
||||
// _ballImaegView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
}
|
||||
return _ballImaegView;
|
||||
}
|
||||
|
||||
- (UILabel *)nameLabel {
|
||||
if (!_nameLabel) {
|
||||
_nameLabel = [[UILabel alloc] init];
|
||||
_nameLabel.textColor = UIColor.whiteColor;
|
||||
_nameLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightRegular];
|
||||
_nameLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _nameLabel;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- (UIStackView *)stackView {
|
||||
if (!_stackView) {
|
||||
_stackView = [[UIStackView alloc] init];
|
||||
_stackView.axis = UILayoutConstraintAxisHorizontal;
|
||||
_stackView.alignment = UIStackViewAlignmentFill;
|
||||
_stackView.distribution = UIStackViewDistributionFill;
|
||||
_stackView.spacing = 2;
|
||||
}
|
||||
return _stackView;
|
||||
}
|
||||
- (XPTreasureFairyNewSummonPriceView *)firstPieceView{
|
||||
if(!_firstPieceView){
|
||||
_firstPieceView = [[XPTreasureFairyNewSummonPriceView alloc]initWithFrame:CGRectZero];
|
||||
_firstPieceView.hidden = YES;
|
||||
_firstPieceView.tag = 101;
|
||||
}
|
||||
return _firstPieceView;
|
||||
}
|
||||
- (XPTreasureFairyNewSummonPriceView *)secondPieceView{
|
||||
if(!_secondPieceView){
|
||||
_secondPieceView = [[XPTreasureFairyNewSummonPriceView alloc]initWithFrame:CGRectZero];
|
||||
_secondPieceView.hidden = YES;
|
||||
_secondPieceView.tag = 102;
|
||||
}
|
||||
return _secondPieceView;
|
||||
}
|
||||
- (XPTreasureFairyNewSummonPriceView *)thirdPieceView{
|
||||
if(!_thirdPieceView){
|
||||
_thirdPieceView = [[XPTreasureFairyNewSummonPriceView alloc]initWithFrame:CGRectZero];
|
||||
_thirdPieceView.hidden = YES;
|
||||
_thirdPieceView.tag = 103;
|
||||
}
|
||||
return _thirdPieceView;
|
||||
}
|
||||
- (UIButton *)exchangeButton {
|
||||
if (!_exchangeButton) {
|
||||
_exchangeButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_exchangeButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor colorWithHexString:@"#3AEAC7"], [DJDKMIMOMColor colorWithHexString:@"#FFFEBB"]] gradientType:GradientTypeTopToBottom imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
|
||||
[_exchangeButton setTitleColor:[DJDKMIMOMColor colorWithHexString:@"#1F5764"] forState:UIControlStateNormal];
|
||||
_exchangeButton.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightRegular];
|
||||
_exchangeButton.layer.cornerRadius = 4;
|
||||
_exchangeButton.clipsToBounds = YES;
|
||||
[_exchangeButton addTarget:self action:@selector(exchangeBtnAction) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _exchangeButton;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@interface XPTreasureFairyNewSummonPriceView()
|
||||
///精灵图标
|
||||
@property(nonatomic,strong) NetImageView *iconView;
|
||||
///价格
|
||||
@property(nonatomic,strong) UILabel *priceView;
|
||||
@end
|
||||
|
||||
@implementation XPTreasureFairyNewSummonPriceView
|
||||
-(instancetype)initWithFrame:(CGRect)frame{
|
||||
self = [super initWithFrame:frame];
|
||||
if(self){
|
||||
[self installUI];
|
||||
[self installConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
-(void)installUI{
|
||||
[self addSubview:self.iconView];
|
||||
[self addSubview:self.priceView];
|
||||
}
|
||||
-(void)installConstraints{
|
||||
[self.iconView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.height.mas_equalTo(25);
|
||||
make.centerX.top.equalTo(self);
|
||||
}];
|
||||
[self.priceView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.equalTo(self.iconView.mas_bottom).mas_offset(1);
|
||||
make.leading.trailing.equalTo(self);
|
||||
make.height.mas_equalTo(8);
|
||||
}];
|
||||
}
|
||||
-(void)setImageIcon:(NSString *)imageIcon{
|
||||
_imageIcon = imageIcon;
|
||||
_iconView.imageUrl = _imageIcon;
|
||||
}
|
||||
-(void)setText:(NSString *)text{
|
||||
_text = text;
|
||||
_priceView.text = _text;
|
||||
}
|
||||
#pragma mark - 懒加载
|
||||
- (NetImageView *)iconView{
|
||||
if(!_iconView){
|
||||
NetImageConfig *config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultEmptyPlaceholder];
|
||||
_iconView = [[NetImageView alloc]initWithConfig:config];
|
||||
}
|
||||
return _iconView;
|
||||
}
|
||||
- (UILabel *)priceView{
|
||||
if(!_priceView){
|
||||
_priceView = [UILabel labelInitWithText:@"" font:[UIFont systemFontOfSize:8 weight:UIFontWeightRegular] textColor:[UIColor whiteColor]];
|
||||
_priceView.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _priceView;
|
||||
}
|
||||
|
||||
@end
|
@@ -1,17 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyPrizePoolCell.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/21.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class TreasureFairyInfoModel;
|
||||
@interface XPTreasureFairyPrizePoolCell : UICollectionViewCell
|
||||
|
||||
@property (nonatomic,strong) TreasureFairyInfoModel *info;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,106 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyPrizePoolCell.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/21.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyPrizePoolCell.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
#import "NetImageView.h"
|
||||
#import "UIImage+Utils.h"
|
||||
#import "TreasureFairyInfoModel.h"
|
||||
|
||||
@interface XPTreasureFairyPrizePoolCell ()
|
||||
|
||||
///奖励的图片
|
||||
@property (nonatomic,strong) NetImageView *giftImageView;
|
||||
///背景
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///奖励名称
|
||||
@property (nonatomic,strong) UILabel *nameLabel;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation XPTreasureFairyPrizePoolCell
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
[self.contentView addSubview:self.backImageView];
|
||||
[self.contentView addSubview:self.giftImageView];
|
||||
[self.contentView addSubview:self.nameLabel];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(94, 115));
|
||||
make.centerX.mas_equalTo(self.contentView);
|
||||
make.top.mas_equalTo(self.contentView);
|
||||
}];
|
||||
|
||||
[self.giftImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(65, 65));
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
make.top.mas_equalTo(self.backImageView).offset(18);
|
||||
}];
|
||||
|
||||
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.backImageView);
|
||||
make.bottom.mas_equalTo(self.backImageView).offset(-8);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setInfo:(TreasureFairyInfoModel *)info {
|
||||
_info = info;
|
||||
if (_info) {
|
||||
self.giftImageView.imageUrl = _info.rewardPicUrl;
|
||||
self.nameLabel.text = _info.rewardName;
|
||||
}
|
||||
}
|
||||
|
||||
- (NetImageView *)giftImageView {
|
||||
if (!_giftImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_giftImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_giftImageView.layer.masksToBounds = YES;
|
||||
_giftImageView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
}
|
||||
return _giftImageView;
|
||||
}
|
||||
|
||||
- (UIImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.userInteractionEnabled = YES;
|
||||
_backImageView.image = [UIImage imageNamed:@"room_treasure_fairy_prize_pool_bg"];
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)nameLabel {
|
||||
if (!_nameLabel) {
|
||||
_nameLabel = [[UILabel alloc] init];
|
||||
_nameLabel.font = [UIFont systemFontOfSize:15];
|
||||
_nameLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#1F5764"];
|
||||
_nameLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _nameLabel;
|
||||
}
|
||||
|
||||
@end
|
@@ -1,23 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyPrizeRecordCell.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/21.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class TreasureFairyInfoModel;
|
||||
@interface XPTreasureFairyPrizeRecordCell : UITableViewCell
|
||||
///礼物信息
|
||||
@property (nonatomic,strong) TreasureFairyInfoModel *recordInfo;
|
||||
///时间
|
||||
@property (nonatomic,strong, readonly) UILabel *timeLabel;
|
||||
///等级
|
||||
@property (nonatomic,strong, readonly) UILabel *levelLabel;
|
||||
///奖励
|
||||
@property (nonatomic,strong, readonly) UILabel * prizeLabel;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,134 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyPrizeRecordCell.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/21.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyPrizeRecordCell.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
#import "PLTimeUtil.h"
|
||||
///Model
|
||||
#import "TreasureFairyInfoModel.h"
|
||||
|
||||
@interface XPTreasureFairyPrizeRecordCell ()
|
||||
///容器
|
||||
@property (nonatomic,strong) UIStackView *stackView;
|
||||
///时间
|
||||
@property (nonatomic,strong) UILabel *timeLabel;
|
||||
///等级
|
||||
@property (nonatomic,strong) UILabel *levelLabel;
|
||||
///奖励
|
||||
@property (nonatomic,strong) UILabel * prizeLabel;
|
||||
|
||||
@end
|
||||
|
||||
@implementation XPTreasureFairyPrizeRecordCell
|
||||
|
||||
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
|
||||
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
self.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
[self.contentView addSubview:self.stackView];
|
||||
[self.stackView addArrangedSubview:self.timeLabel];
|
||||
[self.stackView addArrangedSubview:self.levelLabel];
|
||||
[self.stackView addArrangedSubview:self.prizeLabel];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self.contentView);
|
||||
}];
|
||||
}
|
||||
- (NSString *)getDateWithHHMMSS:(NSString *)time {
|
||||
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
|
||||
formatter.timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
|
||||
[formatter setDateStyle:NSDateFormatterMediumStyle];
|
||||
[formatter setTimeStyle:NSDateFormatterShortStyle];
|
||||
[formatter setDateFormat:@"HH:mm:ss"];
|
||||
NSDate* date = [NSDate dateWithTimeIntervalSince1970:[time doubleValue]/ 1000.0];
|
||||
NSString* dateString = [formatter stringFromDate:date];
|
||||
return dateString;
|
||||
}
|
||||
|
||||
- (NSString *)getDateWithYYMM:(NSString *)time {
|
||||
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
|
||||
formatter.timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
|
||||
[formatter setDateStyle:NSDateFormatterMediumStyle];
|
||||
[formatter setTimeStyle:NSDateFormatterShortStyle];
|
||||
[formatter setDateFormat:@"yyyy:MM:dd"];
|
||||
NSDate* date = [NSDate dateWithTimeIntervalSince1970:[time doubleValue]/ 1000.0];
|
||||
NSString* dateString = [formatter stringFromDate:date];
|
||||
return dateString;
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setRecordInfo:(TreasureFairyInfoModel *)recordInfo {
|
||||
_recordInfo = recordInfo;
|
||||
if (_recordInfo) {
|
||||
NSString * time = [NSString stringWithFormat:@"%@\n%@", [self getDateWithYYMM:_recordInfo.drawTime], [self getDateWithHHMMSS:_recordInfo.drawTime]];
|
||||
self.timeLabel.text = time;
|
||||
if (_recordInfo.poolLevel == TreasureFairyStoreType_Normal) {
|
||||
self.levelLabel.text = YMLocalizedString(@"XPTreasureFairyPrizeRecordCell0");
|
||||
} else if (_recordInfo.poolLevel == TreasureFairyStoreType_Middle) {
|
||||
self.levelLabel.text = YMLocalizedString(@"XPTreasureFairyPrizeRecordCell1");
|
||||
} else {
|
||||
self.levelLabel.text = YMLocalizedString(@"XPTreasureFairyPrizeRecordCell2");
|
||||
}
|
||||
self.prizeLabel.text = [NSString stringWithFormat:@"%@x%ld", _recordInfo.rewardName, _recordInfo.rewardNum];
|
||||
}
|
||||
}
|
||||
|
||||
- (UIStackView *)stackView {
|
||||
if (!_stackView) {
|
||||
_stackView = [[UIStackView alloc] init];
|
||||
_stackView.axis = UILayoutConstraintAxisHorizontal;
|
||||
_stackView.distribution = UIStackViewDistributionFillEqually;
|
||||
_stackView.alignment = UIStackViewAlignmentFill;
|
||||
_stackView.spacing = 0;
|
||||
}
|
||||
return _stackView;
|
||||
}
|
||||
|
||||
- (UILabel *)timeLabel {
|
||||
if (!_timeLabel) {
|
||||
_timeLabel = [[UILabel alloc] init];
|
||||
_timeLabel.font = [UIFont systemFontOfSize:12];
|
||||
_timeLabel.textColor = [UIColor whiteColor];
|
||||
_timeLabel.numberOfLines = 0;
|
||||
_timeLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _timeLabel;
|
||||
}
|
||||
|
||||
- (UILabel *)levelLabel {
|
||||
if (!_levelLabel) {
|
||||
_levelLabel = [[UILabel alloc] init];
|
||||
_levelLabel.font = [UIFont systemFontOfSize:12];
|
||||
_levelLabel.textColor = [UIColor whiteColor];
|
||||
_levelLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _levelLabel;
|
||||
}
|
||||
|
||||
- (UILabel *)prizeLabel {
|
||||
if (!_prizeLabel) {
|
||||
_prizeLabel = [[UILabel alloc] init];
|
||||
_prizeLabel.font = [UIFont systemFontOfSize:12];
|
||||
_prizeLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#FEF8A8"];
|
||||
_prizeLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _prizeLabel;
|
||||
}
|
||||
@end
|
@@ -1,16 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairySendRecordCell.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/23.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class TreasureFairySendRecordModel;
|
||||
@interface XPTreasureFairySendRecordCell : UITableViewCell
|
||||
@property (nonatomic,strong) TreasureFairySendRecordModel *recordInfo;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,142 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairySendRecordCell.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/23.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairySendRecordCell.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
#import "NetImageView.h"
|
||||
///Model
|
||||
#import "TreasureFairySendRecordModel.h"
|
||||
|
||||
@interface XPTreasureFairySendRecordCell ()
|
||||
///时间
|
||||
@property (nonatomic,strong) UILabel *timeLabel;
|
||||
///背景
|
||||
@property (nonatomic,strong) UIView *backView;
|
||||
///头像
|
||||
@property (nonatomic,strong) NetImageView *avatarImageView;
|
||||
///标题
|
||||
@property (nonatomic,strong) UILabel *titleLabel;
|
||||
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation XPTreasureFairySendRecordCell
|
||||
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
|
||||
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
self.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
[self.contentView addSubview:self.timeLabel];
|
||||
[self.contentView addSubview:self.backView];
|
||||
[self.backView addSubview:self.avatarImageView];
|
||||
[self.backView addSubview:self.titleLabel];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.timeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(self.contentView).offset(20);
|
||||
make.top.mas_equalTo(self.contentView);
|
||||
}];
|
||||
|
||||
[self.backView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.contentView).inset(20);
|
||||
make.height.mas_equalTo(58);
|
||||
make.top.mas_equalTo(self.timeLabel.mas_bottom).offset(8);
|
||||
}];
|
||||
|
||||
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(42, 42));
|
||||
make.leading.mas_equalTo(self.backView).offset(12);
|
||||
make.centerY.mas_equalTo(self.backView);
|
||||
}];
|
||||
|
||||
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(self.avatarImageView.mas_trailing).offset(9);
|
||||
make.centerY.mas_equalTo(self.avatarImageView);
|
||||
make.trailing.mas_lessThanOrEqualTo(self.backView).offset(-5);
|
||||
}];
|
||||
}
|
||||
|
||||
- (NSString *)getDateWithTotalTimeWith:(NSString *)time {
|
||||
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
|
||||
[formatter setDateStyle:NSDateFormatterMediumStyle];
|
||||
[formatter setTimeStyle:NSDateFormatterShortStyle];
|
||||
[formatter setDateFormat:YMLocalizedString(@"XPTreasureFairySendRecordCell0")];
|
||||
NSDate* date = [NSDate dateWithTimeIntervalSince1970:[time doubleValue]/ 1000.0];
|
||||
NSString* dateString = [formatter stringFromDate:date];
|
||||
return dateString;
|
||||
}
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setRecordInfo:(TreasureFairySendRecordModel *)recordInfo {
|
||||
_recordInfo = recordInfo;
|
||||
if (_recordInfo) {
|
||||
self.timeLabel.text = [self getDateWithTotalTimeWith:_recordInfo.createTime];
|
||||
self.avatarImageView.imageUrl = _recordInfo.elfPicUrl;
|
||||
NSString * nick = self.recordInfo.targetNick;
|
||||
if (_recordInfo.type == TreasureFairySendRecordModel_Send) {
|
||||
self.titleLabel.text = [NSString stringWithFormat:YMLocalizedString(@"XPTreasureFairySendRecordCell1"),nick,self.recordInfo.elfName];
|
||||
} else {
|
||||
self.titleLabel.text = [NSString stringWithFormat:YMLocalizedString(@"XPTreasureFairySendRecordCell2"), nick,self.recordInfo.elfName];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (UILabel *)timeLabel {
|
||||
if (!_timeLabel) {
|
||||
_timeLabel = [[UILabel alloc] init];
|
||||
_timeLabel.font = [UIFont systemFontOfSize:12];
|
||||
_timeLabel.textColor = [UIColor whiteColor];
|
||||
}
|
||||
return _timeLabel;
|
||||
}
|
||||
|
||||
- (UIView *)backView {
|
||||
if (!_backView) {
|
||||
_backView = [[UIView alloc] init];
|
||||
_backView.backgroundColor = [DJDKMIMOMColor colorWithHexString:@"#00A69D"];
|
||||
_backView.layer.masksToBounds = YES;
|
||||
_backView.layer.cornerRadius = 8;
|
||||
}
|
||||
return _backView;
|
||||
}
|
||||
|
||||
- (NetImageView *)avatarImageView {
|
||||
if (!_avatarImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_avatarImageView.layer.masksToBounds = YES;
|
||||
_avatarImageView.layer.cornerRadius = 4;
|
||||
_avatarImageView.layer.borderColor = [DJDKMIMOMColor colorWithHexString:@"#FFE8AA"].CGColor;
|
||||
_avatarImageView.layer.borderWidth = 0.5;
|
||||
_avatarImageView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
}
|
||||
return _avatarImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)titleLabel {
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] init];
|
||||
_titleLabel.font = [UIFont systemFontOfSize:12];
|
||||
_titleLabel.textColor = [UIColor whiteColor];
|
||||
_titleLabel.numberOfLines = 0;
|
||||
}
|
||||
return _titleLabel;
|
||||
}
|
||||
|
||||
|
||||
@end
|
@@ -1,28 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyShopingExchangeCell.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/28.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@class TreasureFairyFragmentModel;
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@protocol XPTreasureFairyShopingExchangeCellDelegate <NSObject>
|
||||
|
||||
/// 兑换事件
|
||||
- (void)treasureFairyShopingExchangeAction:(TreasureFairyFragmentModel *)fragmentModel;
|
||||
|
||||
@end
|
||||
|
||||
@interface XPTreasureFairyShopingExchangeCell : UICollectionViewCell
|
||||
|
||||
@property (nonatomic, strong) TreasureFairyFragmentModel *fragmemtModel;
|
||||
|
||||
@property (nonatomic, weak) id<XPTreasureFairyShopingExchangeCellDelegate> delegate;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,219 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyShopingExchangeCell.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/28.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyShopingExchangeCell.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
#import "NetImageView.h"
|
||||
#import "UIImage+Utils.h"
|
||||
///Model
|
||||
#import "TreasureFairyFragmentModel.h"
|
||||
|
||||
@interface XPTreasureFairyShopingExchangeCell ()
|
||||
///背景图
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///精灵球的背景
|
||||
@property (nonatomic,strong) UIImageView *ballBgImageView;
|
||||
///精灵球
|
||||
@property (nonatomic,strong) NetImageView *ballImaegView;
|
||||
///昵称
|
||||
@property (nonatomic,strong) UILabel *nameLabel;
|
||||
///容器
|
||||
@property (nonatomic,strong) UIStackView *stackView;
|
||||
///随便图片
|
||||
@property (nonatomic,strong) UIImageView *pieceImageView;
|
||||
///随便个数
|
||||
@property (nonatomic,strong) UILabel *pieceCountLabel;
|
||||
///兑换
|
||||
@property (nonatomic,strong) UIButton *exchangeButton;
|
||||
@end
|
||||
|
||||
|
||||
@implementation XPTreasureFairyShopingExchangeCell
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
self.contentView.backgroundColor = UIColor.clearColor;
|
||||
self.backgroundColor = UIColor.clearColor;
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
[self.contentView addSubview:self.backImageView];
|
||||
[self.backImageView addSubview:self.ballImaegView];
|
||||
[self.backImageView addSubview:self.nameLabel];
|
||||
[self.backImageView addSubview:self.stackView];
|
||||
[self.backImageView addSubview:self.exchangeButton];
|
||||
|
||||
[self.stackView addArrangedSubview:self.pieceImageView];
|
||||
[self.stackView addArrangedSubview:self.pieceCountLabel];
|
||||
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self.contentView);
|
||||
}];
|
||||
|
||||
[self.ballImaegView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(70);
|
||||
make.height.mas_equalTo(70);
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
make.top.mas_equalTo(55);
|
||||
}];
|
||||
|
||||
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(8);
|
||||
make.trailing.mas_equalTo(-8);
|
||||
make.bottom.mas_equalTo(self.stackView.mas_top).offset(-4);
|
||||
}];
|
||||
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.bottom.mas_equalTo(self.exchangeButton.mas_top).offset(-7);
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
make.height.mas_equalTo(20);
|
||||
}];
|
||||
[self.pieceImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(self.stackView.mas_height);
|
||||
}];
|
||||
[self.exchangeButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
make.bottom.mas_equalTo(-26);
|
||||
make.width.mas_equalTo(80);
|
||||
make.height.mas_equalTo(25);
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)layoutSubviews {
|
||||
[super layoutSubviews];
|
||||
self.ballImaegView.layer.cornerRadius = self.ballImaegView.bounds.size.width/2.0;
|
||||
self.ballImaegView.clipsToBounds = YES;
|
||||
}
|
||||
|
||||
- (void)setFragmemtModel:(TreasureFairyFragmentModel *)fragmemtModel {
|
||||
_fragmemtModel = fragmemtModel;
|
||||
NSString * utils = fragmemtModel.rewardUnit;
|
||||
if ([fragmemtModel.rewardType isEqualToString:@"gift"]) {
|
||||
utils = YMLocalizedString(@"XPTreasureFairyShopingExchangeCell0");
|
||||
self.nameLabel.text = [NSString stringWithFormat:@"%@(%@%@)",fragmemtModel.rewardName, fragmemtModel.rewardShowValue, utils];
|
||||
} else {
|
||||
self.nameLabel.text = [NSString stringWithFormat:@"%@(%ld%@)",fragmemtModel.rewardName, fragmemtModel.rewardNum, utils];
|
||||
}
|
||||
[self.ballImaegView loadImageWithUrl:fragmemtModel.rewardPicUrl completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
|
||||
self.ballImaegView.image = image;
|
||||
// CGFloat width = 60;
|
||||
// CGFloat height = 60;
|
||||
// if(image.size.width < image.size.height){
|
||||
// width = width * image.size.height / (image.size.width > 0 ? image.size.width : 1);
|
||||
// }else if (image.size.width > image.size.height){
|
||||
// height = height * image.size.width / (image.size.height > 0 ? image.size.height : 1);
|
||||
// }
|
||||
// dispatch_async(dispatch_get_main_queue(), ^{
|
||||
// [self.ballImaegView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
||||
// make.centerX.mas_equalTo(self.backImageView);
|
||||
// make.top.mas_equalTo(59.0);
|
||||
// make.width.mas_equalTo(width);
|
||||
// make.height.mas_equalTo(height);
|
||||
// }];
|
||||
// });
|
||||
}];
|
||||
self.pieceCountLabel.text = [NSString stringWithFormat:@"%ld",fragmemtModel.expendNum];
|
||||
[self.exchangeButton setTitle:YMLocalizedString(@"XPTreasureFairyShopingExchangeCell1") forState:UIControlStateNormal];
|
||||
}
|
||||
|
||||
#pragma mark - Action
|
||||
|
||||
- (void)exchangeBtnAction {
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(treasureFairyShopingExchangeAction:)]) {
|
||||
[self.delegate treasureFairyShopingExchangeAction:self.fragmemtModel];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
|
||||
- (UIImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.image = [UIImage imageNamed:@"room_treasure_fairy_shop_exchange_bg"];
|
||||
_backImageView.userInteractionEnabled = YES;
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
|
||||
- (NetImageView *)ballImaegView {
|
||||
if (!_ballImaegView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_ballImaegView = [[NetImageView alloc] initWithConfig:config];
|
||||
|
||||
_ballImaegView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
}
|
||||
return _ballImaegView;
|
||||
}
|
||||
|
||||
- (UILabel *)nameLabel {
|
||||
if (!_nameLabel) {
|
||||
_nameLabel = [[UILabel alloc] init];
|
||||
_nameLabel.textColor = UIColor.whiteColor;
|
||||
_nameLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightRegular];
|
||||
_nameLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _nameLabel;
|
||||
}
|
||||
|
||||
- (UIImageView *)pieceImageView {
|
||||
if (!_pieceImageView) {
|
||||
_pieceImageView = [[UIImageView alloc] init];
|
||||
_pieceImageView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
_pieceImageView.image = [UIImage imageNamed:@"room_treasure_fairy_shop_fragment"];
|
||||
}
|
||||
return _pieceImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)pieceCountLabel {
|
||||
if (!_pieceCountLabel) {
|
||||
_pieceCountLabel = [[UILabel alloc] init];
|
||||
_pieceCountLabel.textColor = UIColor.whiteColor;
|
||||
_pieceCountLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightRegular];
|
||||
_pieceCountLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _pieceCountLabel;
|
||||
}
|
||||
|
||||
- (UIStackView *)stackView {
|
||||
if (!_stackView) {
|
||||
_stackView = [[UIStackView alloc] init];
|
||||
_stackView.axis = UILayoutConstraintAxisHorizontal;
|
||||
_stackView.alignment = UIStackViewAlignmentFill;
|
||||
_stackView.distribution = UIStackViewDistributionFill;
|
||||
_stackView.spacing = 4;
|
||||
}
|
||||
return _stackView;
|
||||
}
|
||||
|
||||
- (UIButton *)exchangeButton {
|
||||
if (!_exchangeButton) {
|
||||
_exchangeButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_exchangeButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor colorWithHexString:@"#3AEAC7"], [DJDKMIMOMColor colorWithHexString:@"#FFFEBB"]] gradientType:GradientTypeTopToBottom imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
|
||||
[_exchangeButton setTitleColor:[DJDKMIMOMColor colorWithHexString:@"#1F5764"] forState:UIControlStateNormal];
|
||||
_exchangeButton.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightRegular];
|
||||
_exchangeButton.layer.cornerRadius = 4;
|
||||
_exchangeButton.clipsToBounds = YES;
|
||||
[_exchangeButton addTarget:self action:@selector(exchangeBtnAction) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _exchangeButton;
|
||||
}
|
||||
|
||||
@end
|
@@ -1,28 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyShopingRecordCell.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/27.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@class TreasureFairyConvertRecordModel;
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPTreasureFairyShopingRecordCell : UITableViewCell
|
||||
///是否是召唤
|
||||
@property (nonatomic,assign) BOOL isSummon;
|
||||
///时间
|
||||
@property (nonatomic,strong, readonly) UILabel *timeLabel;
|
||||
///等级
|
||||
@property (nonatomic,strong, readonly) UILabel *levelLabel;
|
||||
///奖励
|
||||
@property (nonatomic,strong, readonly) UILabel * prizeLabel;
|
||||
|
||||
///记录模型
|
||||
@property (nonatomic, strong) TreasureFairyConvertRecordModel *recordModel;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,161 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyShopingRecordCell.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/27.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyShopingRecordCell.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
#import "PLTimeUtil.h"
|
||||
///Model
|
||||
#import "TreasureFairyConvertRecordModel.h"
|
||||
|
||||
@interface XPTreasureFairyShopingRecordCell ()
|
||||
///容器
|
||||
@property (nonatomic,strong) UIStackView *stackView;
|
||||
///时间
|
||||
@property (nonatomic,strong) UILabel *timeLabel;
|
||||
///等级
|
||||
@property (nonatomic,strong) UILabel *levelLabel;
|
||||
///奖励
|
||||
@property (nonatomic,strong) UILabel * prizeLabel;
|
||||
|
||||
@end
|
||||
|
||||
@implementation XPTreasureFairyShopingRecordCell
|
||||
|
||||
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
|
||||
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
self.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
[self.contentView addSubview:self.stackView];
|
||||
[self.stackView addArrangedSubview:self.timeLabel];
|
||||
[self.stackView addArrangedSubview:self.levelLabel];
|
||||
[self.stackView addArrangedSubview:self.prizeLabel];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self.contentView);
|
||||
}];
|
||||
}
|
||||
- (NSString *)getDateWithHHMMSS:(NSString *)time {
|
||||
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
|
||||
formatter.timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
|
||||
[formatter setDateStyle:NSDateFormatterMediumStyle];
|
||||
[formatter setTimeStyle:NSDateFormatterShortStyle];
|
||||
[formatter setDateFormat:@"HH:mm:ss"];
|
||||
NSDate* date = [NSDate dateWithTimeIntervalSince1970:[time doubleValue]/ 1000.0];
|
||||
NSString* dateString = [formatter stringFromDate:date];
|
||||
return dateString;
|
||||
}
|
||||
|
||||
- (NSString *)getDateWithYYMM:(NSString *)time {
|
||||
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
|
||||
formatter.timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
|
||||
[formatter setDateStyle:NSDateFormatterMediumStyle];
|
||||
[formatter setTimeStyle:NSDateFormatterShortStyle];
|
||||
[formatter setDateFormat:@"yyyy:MM:dd"];
|
||||
NSDate* date = [NSDate dateWithTimeIntervalSince1970:[time doubleValue]/ 1000.0];
|
||||
NSString* dateString = [formatter stringFromDate:date];
|
||||
return dateString;
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
|
||||
- (void)setRecordModel:(TreasureFairyConvertRecordModel *)recordModel {
|
||||
_recordModel = recordModel;
|
||||
if (_recordModel != nil) {
|
||||
NSString * time = [NSString stringWithFormat:@"%@\n%@", [self getDateWithYYMM:recordModel.createTime], [self getDateWithHHMMSS:recordModel.createTime]];
|
||||
self.timeLabel.text = time;
|
||||
if (self.isSummon) {
|
||||
NSString *level = @"";
|
||||
if (recordModel.convertLevel == 1) {
|
||||
level = YMLocalizedString(@"XPTreasureFairyShopingRecordCell0");
|
||||
}else if (recordModel.convertLevel == 2) {
|
||||
level = YMLocalizedString(@"XPTreasureFairyShopingRecordCell1");
|
||||
}else if (recordModel.convertLevel == 3) {
|
||||
level = YMLocalizedString(@"XPTreasureFairyShopingRecordCell2");
|
||||
}else if (recordModel.convertLevel == 5){
|
||||
level = YMLocalizedString(@"XPTreasureFairyShopingRecordCell2");
|
||||
}
|
||||
self.levelLabel.text = level;
|
||||
self.prizeLabel.text = [NSString stringWithFormat:@"%@x%@",recordModel.rewardName, recordModel.rewardNum];
|
||||
}else{
|
||||
NSString *string1 = [NSString stringWithFormat:@"%@x%@\n",recordModel.rewardName, recordModel.rewardNum];
|
||||
NSString *string2 = [NSString stringWithFormat:YMLocalizedString(@"XPTreasureFairyShopingRecordCell3"), recordModel.rewardShowValue];
|
||||
NSString *string = [NSString stringWithFormat:@"%@%@",string1, string2];
|
||||
NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithString:string];
|
||||
NSRange range = NSMakeRange(string.length-string2.length, string2.length);
|
||||
[attrStr addAttribute:NSForegroundColorAttributeName value:UIColor.whiteColor range:range];
|
||||
[attrStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:11] range:range];
|
||||
self.prizeLabel.attributedText = attrStr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setIsSummon:(BOOL)isSummon {
|
||||
_isSummon = isSummon;
|
||||
// if (_isSummon) {
|
||||
// self.levelLabel.hidden = NO;
|
||||
// } else {
|
||||
// self.levelLabel.hidden = YES;
|
||||
// }
|
||||
self.levelLabel.hidden = YES;
|
||||
}
|
||||
|
||||
- (UIStackView *)stackView {
|
||||
if (!_stackView) {
|
||||
_stackView = [[UIStackView alloc] init];
|
||||
_stackView.axis = UILayoutConstraintAxisHorizontal;
|
||||
_stackView.distribution = UIStackViewDistributionFillEqually;
|
||||
_stackView.alignment = UIStackViewAlignmentFill;
|
||||
_stackView.spacing = 0;
|
||||
}
|
||||
return _stackView;
|
||||
}
|
||||
|
||||
- (UILabel *)timeLabel {
|
||||
if (!_timeLabel) {
|
||||
_timeLabel = [[UILabel alloc] init];
|
||||
_timeLabel.font = [UIFont systemFontOfSize:12];
|
||||
_timeLabel.textColor = [UIColor whiteColor];
|
||||
_timeLabel.numberOfLines = 0;
|
||||
_timeLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _timeLabel;
|
||||
}
|
||||
|
||||
- (UILabel *)levelLabel {
|
||||
if (!_levelLabel) {
|
||||
_levelLabel = [[UILabel alloc] init];
|
||||
_levelLabel.font = [UIFont systemFontOfSize:12];
|
||||
_levelLabel.textColor = [UIColor whiteColor];
|
||||
_levelLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _levelLabel;
|
||||
}
|
||||
|
||||
- (UILabel *)prizeLabel {
|
||||
if (!_prizeLabel) {
|
||||
_prizeLabel = [[UILabel alloc] init];
|
||||
_prizeLabel.font = [UIFont systemFontOfSize:12];
|
||||
_prizeLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#FEF8A8"];
|
||||
_prizeLabel.textAlignment = NSTextAlignmentCenter;
|
||||
_prizeLabel.numberOfLines = 0;
|
||||
}
|
||||
return _prizeLabel;
|
||||
}
|
||||
@end
|
@@ -1,20 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyStoreResultCell.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/20.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class TreasureFairyInfoModel, TreasureFairyBallModel;
|
||||
@interface XPTreasureFairyStoreResultCell : UICollectionViewCell
|
||||
///奖励信息
|
||||
@property (nonatomic,strong) TreasureFairyInfoModel *prizeInfo;
|
||||
|
||||
///试炼精灵球信息
|
||||
@property (nonatomic,strong) TreasureFairyBallModel *ballInfo;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,121 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyStoreResultCell.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/20.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyStoreResultCell.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
#import "NetImageView.h"
|
||||
#import "UIImage+Utils.h"
|
||||
///Model
|
||||
#import "TreasureFairyInfoModel.h"
|
||||
#import "TreasureFairyBallInfoModel.h"
|
||||
|
||||
@interface XPTreasureFairyStoreResultCell ()
|
||||
///背景
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///礼物名称
|
||||
@property (nonatomic,strong) NetImageView *giftImageView;
|
||||
///名字
|
||||
@property (nonatomic,strong) UILabel *nameLabel;
|
||||
@end
|
||||
|
||||
@implementation XPTreasureFairyStoreResultCell
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
[self.contentView addSubview:self.backImageView];
|
||||
[self.contentView addSubview:self.nameLabel];
|
||||
[self.contentView addSubview:self.giftImageView];
|
||||
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.top.mas_equalTo(self);
|
||||
make.height.mas_equalTo(self.backImageView.mas_width);
|
||||
}];
|
||||
|
||||
[self.giftImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self.backImageView).inset(10);
|
||||
}];
|
||||
|
||||
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self);
|
||||
make.top.mas_equalTo(self.backImageView.mas_bottom).offset(7);
|
||||
}];
|
||||
}
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setPrizeInfo:(TreasureFairyInfoModel *)prizeInfo {
|
||||
_prizeInfo = prizeInfo;
|
||||
if (_prizeInfo) {
|
||||
if(_prizeInfo.propType == TreasureFairyPropType_Salvage){
|
||||
self.giftImageView.image = kImage(@"room_treasure_fairy_buy_elf_icon");
|
||||
self.nameLabel.text =[NSString stringWithFormat:@"x%ld", _prizeInfo.rewardNum];
|
||||
_backImageView.hidden = YES;
|
||||
return;
|
||||
}
|
||||
_backImageView.hidden = NO;
|
||||
self.giftImageView.imageUrl = prizeInfo.rewardPicUrl;
|
||||
self.nameLabel.text =[NSString stringWithFormat:@"%@x%ld", _prizeInfo.rewardName, _prizeInfo.rewardNum];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
- (void)setBallInfo:(TreasureFairyBallModel *)ballInfo{
|
||||
_ballInfo = ballInfo;
|
||||
if (_ballInfo) {
|
||||
self.giftImageView.imageUrl = _ballInfo.elfPicUrl;
|
||||
self.nameLabel.text =[NSString stringWithFormat:@"%@", _ballInfo.elfName];
|
||||
}
|
||||
}
|
||||
|
||||
- (UIImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.userInteractionEnabled = YES;
|
||||
_backImageView.image = [UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor colorWithHexString:@"#00B9AF"], [DJDKMIMOMColor colorWithHexString:@"#006E7C"]] gradientType:GradientTypeTopToBottom imgSize:CGSizeMake(10, 10)];
|
||||
_backImageView.layer.masksToBounds = YES;
|
||||
_backImageView.layer.borderWidth = 0.5;
|
||||
_backImageView.layer.cornerRadius = 45;
|
||||
_backImageView.layer.borderColor = [DJDKMIMOMColor colorWithHexString:@"#F4FFC3"].CGColor;
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
|
||||
- (NetImageView *)giftImageView {
|
||||
if (!_giftImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_giftImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_giftImageView.layer.masksToBounds = YES;
|
||||
_giftImageView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
}
|
||||
return _giftImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)nameLabel {
|
||||
if (!_nameLabel) {
|
||||
_nameLabel = [[UILabel alloc] init];
|
||||
_nameLabel.font = [UIFont systemFontOfSize:12];
|
||||
_nameLabel.textAlignment = NSTextAlignmentCenter;
|
||||
_nameLabel.textColor = [UIColor whiteColor];
|
||||
}
|
||||
return _nameLabel;
|
||||
}
|
||||
@end
|
@@ -1,25 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyTrialsRecordCell.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/27.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class TreasureFairyTrialsRecordModel;
|
||||
@interface XPTreasureFairyTrialsRecordCell : UITableViewCell
|
||||
@property (nonatomic,strong) TreasureFairyTrialsRecordModel *recordInfo;
|
||||
///时间
|
||||
@property (nonatomic,strong, readonly) UILabel *timeLabel;
|
||||
///等级
|
||||
@property (nonatomic,strong, readonly) UILabel *levelLabel;
|
||||
///奖励
|
||||
@property (nonatomic,strong, readonly) UILabel * prizeLabel;
|
||||
///投入的
|
||||
@property (nonatomic,strong, readonly) UILabel *trialsLabel;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,161 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyTrialsRecordCell.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/27.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyTrialsRecordCell.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
#import "PLTimeUtil.h"
|
||||
#import "NSArray+Safe.h"
|
||||
///Model
|
||||
#import "TreasureFairyTrialsRecordModel.h"
|
||||
|
||||
@interface XPTreasureFairyTrialsRecordCell ()
|
||||
///容器
|
||||
@property (nonatomic,strong) UIStackView *stackView;
|
||||
///时间
|
||||
@property (nonatomic,strong) UILabel *timeLabel;
|
||||
///等级
|
||||
@property (nonatomic,strong) UILabel *levelLabel;
|
||||
///投入的
|
||||
@property (nonatomic,strong) UILabel *trialsLabel;
|
||||
///奖励
|
||||
@property (nonatomic,strong) UILabel * prizeLabel;
|
||||
|
||||
@end
|
||||
|
||||
@implementation XPTreasureFairyTrialsRecordCell
|
||||
|
||||
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
|
||||
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
self.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
[self.contentView addSubview:self.stackView];
|
||||
[self.stackView addArrangedSubview:self.timeLabel];
|
||||
[self.stackView addArrangedSubview:self.levelLabel];
|
||||
[self.stackView addArrangedSubview:self.trialsLabel];
|
||||
[self.stackView addArrangedSubview:self.prizeLabel];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.leading.bottom.equalTo(self.contentView);
|
||||
make.trailing.mas_equalTo(-5);
|
||||
}];
|
||||
}
|
||||
- (NSString *)getDateWithHHMMSS:(NSString *)time {
|
||||
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
|
||||
formatter.timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
|
||||
[formatter setDateStyle:NSDateFormatterMediumStyle];
|
||||
[formatter setTimeStyle:NSDateFormatterShortStyle];
|
||||
[formatter setDateFormat:@"HH:mm:ss"];
|
||||
NSDate* date = [NSDate dateWithTimeIntervalSince1970:[time doubleValue]/ 1000.0];
|
||||
NSString* dateString = [formatter stringFromDate:date];
|
||||
return dateString;
|
||||
}
|
||||
|
||||
- (NSString *)getDateWithYYMM:(NSString *)time {
|
||||
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
|
||||
formatter.timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
|
||||
[formatter setDateStyle:NSDateFormatterMediumStyle];
|
||||
[formatter setTimeStyle:NSDateFormatterShortStyle];
|
||||
[formatter setDateFormat:@"yyyy:MM:dd"];
|
||||
NSDate* date = [NSDate dateWithTimeIntervalSince1970:[time doubleValue]/ 1000.0];
|
||||
NSString* dateString = [formatter stringFromDate:date];
|
||||
return dateString;
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setRecordInfo:(TreasureFairyTrialsRecordModel *)recordInfo {
|
||||
_recordInfo = recordInfo;
|
||||
if (_recordInfo) {
|
||||
NSString * time = [NSString stringWithFormat:@"%@\n%@", [self getDateWithYYMM:_recordInfo.createTime], [self getDateWithHHMMSS:_recordInfo.createTime]];
|
||||
self.timeLabel.text = time;
|
||||
if (_recordInfo.type == TreasureFairyStoreType_Salvage) {
|
||||
self.levelLabel.text = YMLocalizedString(@"XPTreasureFairyTrialsRecordCell1");
|
||||
} else {
|
||||
self.levelLabel.text = YMLocalizedString(@"XPTreasureFairyTrialsRecordCell0");
|
||||
}
|
||||
NSMutableString * trilasTitle = [[NSMutableString alloc] init];
|
||||
for (int i = 0; i < _recordInfo.expendList.count; i++) {
|
||||
TreasureFairyBallModel * ballInfo = [_recordInfo.expendList xpSafeObjectAtIndex:i];
|
||||
if (ballInfo.elfName.length > 0) {
|
||||
[trilasTitle appendString:[NSString stringWithFormat:@"%@x%ld", ballInfo.elfName, ballInfo.elfNum]];
|
||||
}
|
||||
|
||||
if (i <( _recordInfo.expendList.count -1)){
|
||||
[trilasTitle appendString:@"\n"];
|
||||
}
|
||||
}
|
||||
self.trialsLabel.text = trilasTitle;
|
||||
self.prizeLabel.text = _recordInfo.elfName;
|
||||
}
|
||||
}
|
||||
|
||||
- (UIStackView *)stackView {
|
||||
if (!_stackView) {
|
||||
_stackView = [[UIStackView alloc] init];
|
||||
_stackView.axis = UILayoutConstraintAxisHorizontal;
|
||||
_stackView.distribution = UIStackViewDistributionFillEqually;
|
||||
_stackView.alignment = UIStackViewAlignmentFill;
|
||||
_stackView.spacing = 0;
|
||||
}
|
||||
return _stackView;
|
||||
}
|
||||
|
||||
- (UILabel *)timeLabel {
|
||||
if (!_timeLabel) {
|
||||
_timeLabel = [[UILabel alloc] init];
|
||||
_timeLabel.font = [UIFont systemFontOfSize:12];
|
||||
_timeLabel.textColor = [UIColor whiteColor];
|
||||
_timeLabel.numberOfLines = 0;
|
||||
_timeLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _timeLabel;
|
||||
}
|
||||
|
||||
- (UILabel *)levelLabel {
|
||||
if (!_levelLabel) {
|
||||
_levelLabel = [[UILabel alloc] init];
|
||||
_levelLabel.font = [UIFont systemFontOfSize:12];
|
||||
_levelLabel.textColor = [UIColor whiteColor];
|
||||
_levelLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _levelLabel;
|
||||
}
|
||||
|
||||
- (UILabel *)trialsLabel {
|
||||
if (!_trialsLabel) {
|
||||
_trialsLabel = [[UILabel alloc] init];
|
||||
_trialsLabel.font = [UIFont systemFontOfSize:12];
|
||||
_trialsLabel.textColor = [UIColor whiteColor];
|
||||
_trialsLabel.textAlignment = NSTextAlignmentCenter;
|
||||
_trialsLabel.numberOfLines = 4;
|
||||
}
|
||||
return _trialsLabel;
|
||||
}
|
||||
|
||||
- (UILabel *)prizeLabel {
|
||||
if (!_prizeLabel) {
|
||||
_prizeLabel = [[UILabel alloc] init];
|
||||
_prizeLabel.font = [UIFont systemFontOfSize:12];
|
||||
_prizeLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#FEF8A8"];
|
||||
_prizeLabel.textAlignment = NSTextAlignmentCenter;
|
||||
_prizeLabel.numberOfLines = 0;
|
||||
}
|
||||
return _prizeLabel;
|
||||
}
|
||||
@end
|
@@ -1,25 +0,0 @@
|
||||
//
|
||||
// PITreasureFairyBuyElfShardInputNumView.h
|
||||
// YuMi
|
||||
//
|
||||
// Created by duoban on 2023/9/7.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@protocol PITreasureFairyBuyElfShardInputNumViewDelegate <NSObject>
|
||||
|
||||
-(void)inputShardNum:(NSString *)num;
|
||||
|
||||
@end
|
||||
|
||||
@interface PITreasureFairyBuyElfShardInputNumView : UIView
|
||||
@property(nonatomic,copy) NSString *text;
|
||||
@property(nonatomic,weak) id<PITreasureFairyBuyElfShardInputNumViewDelegate>delegate;
|
||||
///精灵碎片数量
|
||||
@property(nonatomic,copy) NSString *shardNum;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,164 +0,0 @@
|
||||
//
|
||||
// PITreasureFairyBuyElfShardInputNumView.m
|
||||
// YuMi
|
||||
//
|
||||
// Created by duoban on 2023/9/7.
|
||||
//
|
||||
|
||||
#import "PITreasureFairyBuyElfShardInputNumView.h"
|
||||
@interface PITreasureFairyBuyElfShardInputNumView()<UITextFieldDelegate>
|
||||
///加
|
||||
@property(nonatomic,strong) UIButton *addBtn;
|
||||
///减
|
||||
@property(nonatomic,strong) UIButton *subtractBtn;
|
||||
///背景
|
||||
@property(nonatomic,strong) UIView *bgView;
|
||||
///输入框
|
||||
@property(nonatomic,strong) MSBaseTextField *textFiled;
|
||||
|
||||
@end
|
||||
@implementation PITreasureFairyBuyElfShardInputNumView
|
||||
|
||||
-(instancetype)initWithFrame:(CGRect)frame{
|
||||
self = [super initWithFrame:frame];
|
||||
if(self){
|
||||
[self installUI];
|
||||
[self installConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
-(void)installUI{
|
||||
[self addSubview:self.bgView];
|
||||
[self addSubview:self.subtractBtn];
|
||||
|
||||
[self addSubview:self.addBtn];
|
||||
|
||||
[self.bgView addSubview:self.textFiled];
|
||||
}
|
||||
-(void)installConstraints{
|
||||
[self.subtractBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(51);
|
||||
make.height.mas_equalTo(29);
|
||||
make.leading.top.equalTo(self);
|
||||
}];
|
||||
[self.addBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.trailing.top.equalTo(self);
|
||||
make.width.mas_equalTo(51);
|
||||
make.height.mas_equalTo(29);
|
||||
}];
|
||||
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.equalTo(self).inset(15);
|
||||
make.bottom.top.equalTo(self);
|
||||
}];
|
||||
[self.textFiled mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(51);
|
||||
make.trailing.mas_equalTo(-51);
|
||||
make.bottom.top.equalTo(self);
|
||||
}];
|
||||
|
||||
}
|
||||
-(void)setShardNum:(NSString *)shardNum{
|
||||
_shardNum = shardNum;
|
||||
_textFiled.text = _shardNum;
|
||||
|
||||
}
|
||||
#pragma mark -UITextFieldDelegate
|
||||
- (void)textFieldDidChanged:(UITextField *)textField {
|
||||
if(textField.text.integerValue <= 0){
|
||||
textField.text = @"";
|
||||
}
|
||||
|
||||
|
||||
if(self.delegate && [self.delegate respondsToSelector:@selector(inputShardNum:)]){
|
||||
[self.delegate inputShardNum:textField.text];
|
||||
}
|
||||
}
|
||||
- (void)textFieldDidEndEditing:(UITextField *)textField{
|
||||
if(textField.text.length <= 0){
|
||||
textField.text = @"";
|
||||
}
|
||||
|
||||
|
||||
if(self.delegate && [self.delegate respondsToSelector:@selector(inputShardNum:)]){
|
||||
[self.delegate inputShardNum:textField.text];
|
||||
}
|
||||
}
|
||||
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
|
||||
return [self validateNumber:string];
|
||||
}
|
||||
|
||||
- (BOOL)validateNumber:(NSString*)number {
|
||||
BOOL res = YES;
|
||||
NSCharacterSet* tmpSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
|
||||
int i = 0;
|
||||
while (i < number.length) {
|
||||
NSString * string = [number substringWithRange:NSMakeRange(i, 1)];
|
||||
NSRange range = [string rangeOfCharacterFromSet:tmpSet];
|
||||
if (range.length == 0) {
|
||||
res = NO;
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
-(void)addBtnAction{
|
||||
NSInteger num = self.textFiled.text.integerValue + 10;
|
||||
self.textFiled.text = @(num).stringValue;
|
||||
if(self.delegate && [self.delegate respondsToSelector:@selector(inputShardNum:)]){
|
||||
[self.delegate inputShardNum:self.textFiled.text];
|
||||
}
|
||||
}
|
||||
-(void)subtractAction{
|
||||
NSInteger num = self.textFiled.text.integerValue - 10;
|
||||
if(num <= 1){
|
||||
num = 1;
|
||||
}
|
||||
self.textFiled.text = @(num).stringValue;
|
||||
if(self.delegate && [self.delegate respondsToSelector:@selector(inputShardNum:)]){
|
||||
[self.delegate inputShardNum:self.textFiled.text];
|
||||
}
|
||||
}
|
||||
#pragma mark - 懒加载
|
||||
- (NSString *)text{
|
||||
return self.textFiled.text;
|
||||
}
|
||||
- (UIView *)bgView{
|
||||
if(!_bgView){
|
||||
_bgView = [UIView new];
|
||||
_bgView.backgroundColor = UIColorFromRGB(0x306065);
|
||||
}
|
||||
return _bgView;
|
||||
}
|
||||
- (MSBaseTextField *)textFiled {
|
||||
if (!_textFiled) {
|
||||
_textFiled = [[MSBaseTextField alloc] init];
|
||||
_textFiled.tintColor = [UIColor whiteColor];
|
||||
_textFiled.textColor = [UIColor whiteColor];
|
||||
_textFiled.backgroundColor = [UIColor clearColor];
|
||||
_textFiled.textAlignment = NSTextAlignmentCenter;
|
||||
_textFiled.font = [UIFont systemFontOfSize:12 weight:UIFontWeightRegular];
|
||||
_textFiled.text = @"1";
|
||||
_textFiled.delegate = self;
|
||||
[_textFiled addTarget:self action:@selector(textFieldDidChanged:) forControlEvents:UIControlEventEditingChanged];
|
||||
_textFiled.keyboardType = UIKeyboardTypeNumberPad;
|
||||
}
|
||||
return _textFiled;
|
||||
}
|
||||
- (UIButton *)addBtn{
|
||||
if(!_addBtn){
|
||||
_addBtn = [UIButton new];
|
||||
[_addBtn setBackgroundImage:kImage(@"room_treasure_fairy_new_buy_elf_add") forState:UIControlStateNormal];
|
||||
[_addBtn addTarget:self action:@selector(addBtnAction) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _addBtn;
|
||||
}
|
||||
- (UIButton *)subtractBtn{
|
||||
if(!_subtractBtn){
|
||||
_subtractBtn = [UIButton new];
|
||||
[_subtractBtn setBackgroundImage:kImage(@"room_treasure_fairy_new_buy_elf_subtract") forState:UIControlStateNormal];
|
||||
[_subtractBtn addTarget:self action:@selector(subtractAction) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _subtractBtn;
|
||||
}
|
||||
@end
|
@@ -1,16 +0,0 @@
|
||||
//
|
||||
// PITreasureFairyBuyElfShardSuccessView.h
|
||||
// YuMi
|
||||
//
|
||||
// Created by duoban on 2023/9/7.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface PITreasureFairyBuyElfShardSuccessView : UIView
|
||||
@property(nonatomic,copy) NSString *num;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,177 +0,0 @@
|
||||
//
|
||||
// PITreasureFairyBuyElfShardSuccessView.m
|
||||
// YuMi
|
||||
//
|
||||
// Created by duoban on 2023/9/7.
|
||||
//
|
||||
|
||||
#import "PITreasureFairyBuyElfShardSuccessView.h"
|
||||
@interface PITreasureFairyBuyElfShardSuccessView()
|
||||
///返回
|
||||
@property(nonatomic,strong) UIButton *closeView;
|
||||
|
||||
///精灵图标
|
||||
@property(nonatomic,strong) UIImageView *pi_iconView;
|
||||
///背景
|
||||
@property(nonatomic,strong) UIImageView *bgImageView;
|
||||
///标题图片
|
||||
@property(nonatomic,strong) UIImageView *titleView;
|
||||
///得到
|
||||
@property(nonatomic,strong) UILabel *getView;
|
||||
///数量
|
||||
@property(nonatomic,strong) UILabel *numView;
|
||||
///选择今天不显示
|
||||
@property(nonatomic,strong) UIButton *chooseBnt;
|
||||
///今天不显示
|
||||
@property(nonatomic,strong) UILabel *tipsView;
|
||||
@end
|
||||
@implementation PITreasureFairyBuyElfShardSuccessView
|
||||
|
||||
-(instancetype)initWithFrame:(CGRect)frame{
|
||||
self = [super initWithFrame:frame];
|
||||
if(self){
|
||||
[self installUI];
|
||||
[self installConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
-(void)installUI{
|
||||
|
||||
[self addSubview:self.closeView];
|
||||
[self addSubview:self.bgImageView];
|
||||
[self addSubview:self.titleView];
|
||||
[self.bgImageView addSubview:self.getView];
|
||||
[self.bgImageView addSubview:self.pi_iconView];
|
||||
[self.bgImageView addSubview:self.numView];
|
||||
[self.bgImageView addSubview:self.chooseBnt];
|
||||
[self.bgImageView addSubview:self.tipsView];
|
||||
}
|
||||
-(void)installConstraints{
|
||||
[self.closeView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self);
|
||||
}];
|
||||
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(242);
|
||||
make.width.mas_equalTo(258);
|
||||
make.center.equalTo(self);
|
||||
}];
|
||||
[self.titleView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.equalTo(self.bgImageView.mas_top).mas_offset(-13);
|
||||
make.width.mas_equalTo(136);
|
||||
make.height.mas_equalTo(44);
|
||||
make.centerX.equalTo(self.bgImageView);
|
||||
}];
|
||||
[self.getView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.equalTo(self.titleView.mas_bottom).mas_offset(16);
|
||||
make.height.mas_equalTo(13);
|
||||
make.centerX.equalTo(self.bgImageView);
|
||||
}];
|
||||
[self.pi_iconView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.height.mas_equalTo(65);
|
||||
make.centerX.equalTo(self.bgImageView);
|
||||
make.top.equalTo(self.getView.mas_bottom).mas_offset(7);
|
||||
}];
|
||||
[self.numView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.equalTo(self.bgImageView);
|
||||
make.height.mas_equalTo(13);
|
||||
make.top.equalTo(self.pi_iconView.mas_bottom).mas_offset(14);
|
||||
}];
|
||||
[self.tipsView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.equalTo(self.bgImageView).mas_offset(8);
|
||||
make.height.mas_equalTo(10);
|
||||
make.top.equalTo(self.numView.mas_bottom).mas_offset(22);
|
||||
}];
|
||||
[self.chooseBnt mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.height.mas_equalTo(10);
|
||||
make.trailing.equalTo(self.tipsView.mas_leading).mas_offset(-6);
|
||||
make.centerY.equalTo(self.tipsView);
|
||||
}];
|
||||
|
||||
}
|
||||
-(void)setNum:(NSString *)num{
|
||||
_num = num;
|
||||
_numView.text = [NSString stringWithFormat:@"x%@",_num];
|
||||
}
|
||||
-(void)closeViewAction{
|
||||
[TTPopup dismiss];
|
||||
}
|
||||
-(void)chooseTipAction{
|
||||
_chooseBnt.selected = !_chooseBnt.selected;
|
||||
NSString *time = [NSDate getNowTimeTimestamp];
|
||||
NSString *curTime = [NSDate timestampSwitchTime:[time integerValue] andFormatter:@"yyyy-MM-dd"];
|
||||
NSDictionary *timeDic = [[NSUserDefaults standardUserDefaults]valueForKey:@"kBuyElfShardSuccessNoPrompt"];
|
||||
if(timeDic == nil){
|
||||
if(_chooseBnt.selected == NO)return;
|
||||
NSMutableDictionary *curDic = [[NSMutableDictionary alloc]initWithDictionary:timeDic];
|
||||
[curDic setValue:@(YES) forKey:curTime];
|
||||
[[NSUserDefaults standardUserDefaults]setValue:curDic forKey:@"kBuyElfShardSuccessNoPrompt"];
|
||||
[[NSUserDefaults standardUserDefaults]synchronize];
|
||||
}else{
|
||||
NSMutableDictionary *curDic = [[NSMutableDictionary alloc]initWithDictionary:timeDic];
|
||||
[curDic removeAllObjects];
|
||||
if(_chooseBnt.selected == YES){
|
||||
[curDic setValue:@(YES) forKey:curTime];
|
||||
}
|
||||
[[NSUserDefaults standardUserDefaults]setValue:curDic forKey:@"kBuyElfShardSuccessNoPrompt"];
|
||||
[[NSUserDefaults standardUserDefaults]synchronize];
|
||||
}
|
||||
}
|
||||
#pragma mark - 懒加载
|
||||
- (UIButton *)closeView{
|
||||
if(!_closeView){
|
||||
_closeView = [UIButton new];
|
||||
[_closeView addTarget:self action:@selector(closeViewAction) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _closeView;
|
||||
}
|
||||
- (UIImageView *)bgImageView{
|
||||
if(!_bgImageView){
|
||||
_bgImageView = [UIImageView new];
|
||||
_bgImageView.image = kImage(@"room_treasure_fairy_new_buy_elf_bg");
|
||||
_bgImageView.userInteractionEnabled = YES;
|
||||
}
|
||||
return _bgImageView;
|
||||
}
|
||||
-(UIImageView *)pi_iconView{
|
||||
if(!_pi_iconView){
|
||||
_pi_iconView = [UIImageView new];
|
||||
_pi_iconView.image = kImage(@"room_treasure_fairy_buy_elf_icon");
|
||||
}
|
||||
return _pi_iconView;
|
||||
}
|
||||
-(UIImageView *)titleView{
|
||||
if(!_titleView){
|
||||
_titleView = [UIImageView new];
|
||||
_titleView.image = [UIImage getLanguageImage:@"room_treasure_fairy_buy_elf_title"];
|
||||
}
|
||||
return _titleView;
|
||||
}
|
||||
- (UILabel *)numView{
|
||||
if(!_numView){
|
||||
_numView = [UILabel labelInitWithText:@"0" font:[UIFont systemFontOfSize:16 weight:UIFontWeightMedium] textColor:UIColorFromRGB(0xFFE8AA)];
|
||||
}
|
||||
return _numView;
|
||||
}
|
||||
- (UIButton *)chooseBnt{
|
||||
if(!_chooseBnt){
|
||||
_chooseBnt = [UIButton new];
|
||||
[_chooseBnt setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
|
||||
[_chooseBnt setImage:kImage(@"room_treasure_fairy_buy_elf_choose") forState:UIControlStateSelected];
|
||||
[_chooseBnt setImage:kImage(@"room_treasure_fairy_buy_elf_no_choose") forState:UIControlStateNormal];
|
||||
[_chooseBnt addTarget:self action:@selector(chooseTipAction) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _chooseBnt;
|
||||
}
|
||||
- (UILabel *)tipsView{
|
||||
if(!_tipsView){
|
||||
_tipsView = [UILabel labelInitWithText:YMLocalizedString(@"PITreasureFairyBuyElfShardSuccessView0") font:[UIFont systemFontOfSize:10 weight:UIFontWeightRegular] textColor:[UIColor colorWithWhite:1 alpha:0.8]];
|
||||
}
|
||||
return _tipsView;
|
||||
}
|
||||
- (UILabel *)getView{
|
||||
if(!_getView){
|
||||
_getView = [UILabel labelInitWithText:YMLocalizedString(@"PITreasureFairyBuyElfShardSuccessView1") font:[UIFont systemFontOfSize:14 weight:UIFontWeightMedium] textColor:UIColorFromRGB(0xFFE8AA)];
|
||||
}
|
||||
return _getView;
|
||||
}
|
||||
@end
|
@@ -1,30 +0,0 @@
|
||||
//
|
||||
// PITreasureFairyBuyElfShardView.h
|
||||
// YuMi
|
||||
//
|
||||
// Created by duoban on 2023/9/7.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@protocol PITreasureFairyBuyElfShardViewDelegate <NSObject>
|
||||
|
||||
-(void)buyElfShardWithType:(int)type num:(NSString *)num;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@interface PITreasureFairyBuyElfShardView : UIView
|
||||
///精灵碎片数量
|
||||
@property(nonatomic,copy) NSString *shardNum;
|
||||
///精灵碎片价格
|
||||
@property(nonatomic,copy) NSString *price;
|
||||
@property(nonatomic,weak) id<PITreasureFairyBuyElfShardViewDelegate>delegate;
|
||||
-(instancetype)initWithFrame:(CGRect)frame type:(int)type;
|
||||
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,340 +0,0 @@
|
||||
//
|
||||
// PITreasureFairyBuyElfShardView.m
|
||||
// YuMi
|
||||
//
|
||||
// Created by duoban on 2023/9/7.
|
||||
//
|
||||
|
||||
#import "PITreasureFairyBuyElfShardView.h"
|
||||
#import "PITreasureFairyBuyElfShardInputNumView.h"
|
||||
@interface PITreasureFairyBuyElfShardView()<PITreasureFairyBuyElfShardInputNumViewDelegate>
|
||||
///返回
|
||||
@property(nonatomic,strong) UIButton *closeView;
|
||||
|
||||
///精灵图标
|
||||
@property(nonatomic,strong) UIImageView *pi_iconView;
|
||||
///背景
|
||||
@property(nonatomic,strong) UIImageView *bgImageView;
|
||||
///标题图片
|
||||
@property(nonatomic,strong) UIImageView *titleView;
|
||||
///标题提示
|
||||
@property(nonatomic,strong) UILabel *titleTipsView;
|
||||
///数量
|
||||
@property(nonatomic,strong) UILabel *numView;
|
||||
///选择今天不显示
|
||||
@property(nonatomic,strong) UIButton *chooseBnt;
|
||||
///今天不显示
|
||||
@property(nonatomic,strong) UILabel *tipsView;
|
||||
///输入数量
|
||||
@property(nonatomic,strong) PITreasureFairyBuyElfShardInputNumView *inputNumView;
|
||||
///购买
|
||||
@property(nonatomic,strong) UIButton *buyBtn;
|
||||
///类型,0,提示购买,1,购买
|
||||
@property(nonatomic,assign) int type;
|
||||
@end
|
||||
@implementation PITreasureFairyBuyElfShardView
|
||||
-(void)dealloc{
|
||||
[[NSNotificationCenter defaultCenter]removeObserver:self];
|
||||
}
|
||||
-(instancetype)initWithFrame:(CGRect)frame type:(int)type{
|
||||
self = [super initWithFrame:frame];
|
||||
if(self){
|
||||
self.type = type;
|
||||
if(type == 0){
|
||||
[self installUI];
|
||||
[self installConstraints];
|
||||
}else{
|
||||
[self installUIWithBuy];
|
||||
[self installConstraintsWithBuy];
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHidden:) name:UIKeyboardWillHideNotification object:nil];
|
||||
}
|
||||
|
||||
}
|
||||
return self;
|
||||
}
|
||||
- (void)keyboardWillShow:(NSNotification *)notification {
|
||||
|
||||
CGRect keyboardRect = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
|
||||
CGFloat time = [[[notification userInfo] objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue];
|
||||
|
||||
CGFloat height = KScreenHeight - keyboardRect.size.height - 315;
|
||||
|
||||
[UIView animateWithDuration:time animations:^{
|
||||
CGRect rect = self.bgImageView.frame;
|
||||
rect.origin.y = height;
|
||||
self.bgImageView.frame = rect;
|
||||
CGRect titleRect = self.titleView.frame;
|
||||
titleRect.origin.y = height;
|
||||
self.titleView.frame = titleRect;
|
||||
|
||||
}];
|
||||
|
||||
}
|
||||
|
||||
//键盘隐藏
|
||||
- (void)keyboardWillHidden:(NSNotification *)notification {
|
||||
CGFloat time = [[[notification userInfo] objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue];
|
||||
[UIView animateWithDuration:time animations:^{
|
||||
CGRect rect = self.bgImageView.frame;
|
||||
rect.origin.y = (KScreenHeight - 315)/2;
|
||||
self.bgImageView.frame = rect;
|
||||
CGRect titleRect = self.titleView.frame;
|
||||
titleRect.origin.y = (KScreenHeight - 315)/2;
|
||||
self.titleView.frame = titleRect;
|
||||
}];
|
||||
|
||||
|
||||
}
|
||||
-(void)installUI{
|
||||
[self addSubview:self.closeView];
|
||||
[self addSubview:self.bgImageView];
|
||||
[self addSubview:self.titleView];
|
||||
[self.bgImageView addSubview:self.pi_iconView];
|
||||
[self.bgImageView addSubview:self.numView];
|
||||
[self.bgImageView addSubview:self.titleTipsView];
|
||||
[self.bgImageView addSubview:self.buyBtn];
|
||||
[self.bgImageView addSubview:self.chooseBnt];
|
||||
[self.bgImageView addSubview:self.tipsView];
|
||||
|
||||
|
||||
}
|
||||
-(void)installConstraints{
|
||||
[self.closeView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self);
|
||||
}];
|
||||
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(315);
|
||||
make.width.mas_equalTo(258);
|
||||
make.center.equalTo(self);
|
||||
}];
|
||||
[self.titleView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.equalTo(self.bgImageView.mas_top).mas_offset(0);
|
||||
make.width.mas_equalTo(136);
|
||||
make.height.mas_equalTo(44);
|
||||
make.centerX.equalTo(self.bgImageView);
|
||||
}];
|
||||
|
||||
[self.pi_iconView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(65);
|
||||
make.width.mas_equalTo(65);
|
||||
make.centerX.equalTo(self.bgImageView);
|
||||
make.top.equalTo(self.titleView.mas_bottom).mas_offset(31);
|
||||
}];
|
||||
[self.numView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.equalTo(self.bgImageView);
|
||||
make.height.mas_equalTo(19);
|
||||
make.top.equalTo(self.pi_iconView.mas_bottom).mas_offset(4);
|
||||
}];
|
||||
[self.titleTipsView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.equalTo(self.numView.mas_bottom).mas_offset(13);
|
||||
make.height.mas_equalTo(12);
|
||||
make.centerX.equalTo(self.bgImageView);
|
||||
}];
|
||||
[self.buyBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(140);
|
||||
make.height.mas_equalTo(34);
|
||||
make.top.equalTo(self.titleTipsView.mas_bottom).mas_offset(20);
|
||||
make.centerX.equalTo(self.bgImageView);
|
||||
}];
|
||||
[self.tipsView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.equalTo(self.bgImageView).mas_offset(8);
|
||||
make.height.mas_equalTo(10);
|
||||
make.top.equalTo(self.buyBtn.mas_bottom).mas_offset(17);
|
||||
}];
|
||||
[self.chooseBnt mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.height.mas_equalTo(10);
|
||||
make.trailing.equalTo(self.tipsView.mas_leading).mas_offset(-6);
|
||||
make.centerY.equalTo(self.tipsView);
|
||||
}];
|
||||
|
||||
|
||||
|
||||
}
|
||||
-(void)installUIWithBuy{
|
||||
self.backgroundColor = [UIColor colorWithWhite:0 alpha:0.5];
|
||||
[self addSubview:self.closeView];
|
||||
[self addSubview:self.bgImageView];
|
||||
[self addSubview:self.titleView];
|
||||
[self.bgImageView addSubview:self.titleTipsView];
|
||||
[self.bgImageView addSubview:self.pi_iconView];
|
||||
[self.bgImageView addSubview:self.numView];
|
||||
[self.bgImageView addSubview:self.inputNumView];
|
||||
[self.bgImageView addSubview:self.buyBtn];
|
||||
|
||||
}
|
||||
-(void)installConstraintsWithBuy{
|
||||
[self.closeView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self);
|
||||
}];
|
||||
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(315);
|
||||
make.width.mas_equalTo(258);
|
||||
make.center.equalTo(self);
|
||||
}];
|
||||
[self.titleView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.equalTo(self.bgImageView.mas_top).mas_offset(0);
|
||||
make.width.mas_equalTo(136);
|
||||
make.height.mas_equalTo(44);
|
||||
make.centerX.equalTo(self.bgImageView);
|
||||
}];
|
||||
[self.titleTipsView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.equalTo(self.titleView.mas_bottom).mas_offset(18);
|
||||
make.height.mas_equalTo(13);
|
||||
make.centerX.equalTo(self.bgImageView);
|
||||
}];
|
||||
[self.pi_iconView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(64);
|
||||
make.width.mas_equalTo(63);
|
||||
make.centerX.equalTo(self.bgImageView);
|
||||
make.top.equalTo(self.titleTipsView.mas_bottom).mas_offset(12);
|
||||
}];
|
||||
[self.numView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.equalTo(self.bgImageView);
|
||||
make.height.mas_equalTo(19);
|
||||
make.top.equalTo(self.pi_iconView.mas_bottom).mas_offset(4);
|
||||
}];
|
||||
[self.inputNumView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.equalTo(self.numView.mas_bottom).mas_offset(13);
|
||||
make.height.mas_equalTo(29);
|
||||
make.width.mas_equalTo(172);
|
||||
make.centerX.equalTo(self.bgImageView);
|
||||
}];
|
||||
[self.buyBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(34);
|
||||
make.width.mas_equalTo(140);
|
||||
make.centerX.equalTo(self.bgImageView);
|
||||
make.top.equalTo(self.inputNumView.mas_bottom).mas_offset(20);
|
||||
}];
|
||||
|
||||
}
|
||||
-(void)closeViewAction{
|
||||
[TTPopup dismiss];
|
||||
}
|
||||
-(void)chooseTipAction{
|
||||
_chooseBnt.selected = !_chooseBnt.selected;
|
||||
NSString *time = [NSDate getNowTimeTimestamp];
|
||||
NSString *curTime = [NSDate timestampSwitchTime:[time integerValue] andFormatter:@"yyyy-MM-dd"];
|
||||
NSDictionary *timeDic = [[NSUserDefaults standardUserDefaults]valueForKey:@"kBuyElfShardNoPrompt"];
|
||||
if(timeDic == nil){
|
||||
if(_chooseBnt.selected == NO)return;
|
||||
NSMutableDictionary *curDic = [[NSMutableDictionary alloc]initWithDictionary:timeDic];
|
||||
[curDic setValue:@(YES) forKey:curTime];
|
||||
[[NSUserDefaults standardUserDefaults]setValue:curDic forKey:@"kBuyElfShardNoPrompt"];
|
||||
[[NSUserDefaults standardUserDefaults]synchronize];
|
||||
}else{
|
||||
NSMutableDictionary *curDic = [[NSMutableDictionary alloc]initWithDictionary:timeDic];
|
||||
[curDic removeAllObjects];
|
||||
if(_chooseBnt.selected == YES){
|
||||
[curDic setValue:@(YES) forKey:curTime];
|
||||
}
|
||||
[[NSUserDefaults standardUserDefaults]setValue:curDic forKey:@"kBuyElfShardNoPrompt"];
|
||||
[[NSUserDefaults standardUserDefaults]synchronize];
|
||||
}
|
||||
}
|
||||
- (void)setShardNum:(NSString *)shardNum{
|
||||
_shardNum = shardNum;
|
||||
_titleTipsView.text = [NSString stringWithFormat:YMLocalizedString(@"PITreasureFairyBuyElfShardView2"),_shardNum];
|
||||
_inputNumView.shardNum = _shardNum;
|
||||
}
|
||||
-(void)setPrice:(NSString *)price{
|
||||
_price = price;
|
||||
[self setPriceView];
|
||||
}
|
||||
-(void)setPriceView{
|
||||
NSString *getPrice = @(self.price.integerValue * self.shardNum.integerValue).stringValue;
|
||||
NSMutableAttributedString *textAtt = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@" %@",getPrice] attributes:@{NSFontAttributeName:self.numView.font,NSForegroundColorAttributeName:[UIColor whiteColor]}];
|
||||
NSTextAttachment * attachment = [[NSTextAttachment alloc] init];
|
||||
UIImage *iconImage = [UIImage imageNamed:@"room_treasure_fairy_buy_elf_price"];;
|
||||
attachment.bounds = CGRectMake(0, roundf(self.numView.font.capHeight - iconImage.size.height)/2.f, iconImage.size.width, iconImage.size.height);
|
||||
attachment.image = iconImage;
|
||||
[textAtt insertAttributedString:[NSMutableAttributedString attributedStringWithAttachment:attachment] atIndex:0];
|
||||
self.numView.attributedText = textAtt;
|
||||
}
|
||||
-(void)bugShardAction{
|
||||
if(self.delegate && [self.delegate respondsToSelector:@selector(buyElfShardWithType:num:)]){
|
||||
[self.delegate buyElfShardWithType:self.type num:self.shardNum];
|
||||
}
|
||||
}
|
||||
#pragma mark- PITreasureFairyBuyElfShardInputNumViewDelegate
|
||||
-(void)inputShardNum:(NSString *)num{
|
||||
self.shardNum = num;
|
||||
[self setPriceView];
|
||||
}
|
||||
#pragma mark - 懒加载
|
||||
- (UIButton *)closeView{
|
||||
if(!_closeView){
|
||||
_closeView = [UIButton new];
|
||||
[_closeView addTarget:self action:@selector(closeViewAction) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _closeView;
|
||||
}
|
||||
- (UIImageView *)bgImageView{
|
||||
if(!_bgImageView){
|
||||
_bgImageView = [UIImageView new];
|
||||
_bgImageView.image = kImage(@"room_treasure_fairy_buy_elf_bg");
|
||||
_bgImageView.userInteractionEnabled = YES;
|
||||
}
|
||||
return _bgImageView;
|
||||
}
|
||||
-(UIImageView *)pi_iconView{
|
||||
if(!_pi_iconView){
|
||||
_pi_iconView = [UIImageView new];
|
||||
_pi_iconView.image = kImage(@"room_treasure_fairy_buy_elf_icon");
|
||||
}
|
||||
return _pi_iconView;
|
||||
}
|
||||
-(UIImageView *)titleView{
|
||||
if(!_titleView){
|
||||
_titleView = [UIImageView new];
|
||||
_titleView.image = kImage(@"room_treasure_fairy_new_buy_elf_title");
|
||||
}
|
||||
return _titleView;
|
||||
}
|
||||
- (UILabel *)numView{
|
||||
if(!_numView){
|
||||
_numView = [UILabel labelInitWithText:@"0" font:[UIFont systemFontOfSize:16 weight:UIFontWeightRegular] textColor:[UIColor whiteColor]];
|
||||
}
|
||||
return _numView;
|
||||
}
|
||||
- (UIButton *)chooseBnt{
|
||||
if(!_chooseBnt){
|
||||
_chooseBnt = [UIButton new];
|
||||
[_chooseBnt setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
|
||||
[_chooseBnt setImage:kImage(@"room_treasure_fairy_buy_elf_choose") forState:UIControlStateSelected];
|
||||
[_chooseBnt setImage:kImage(@"room_treasure_fairy_buy_elf_no_choose") forState:UIControlStateNormal];
|
||||
[_chooseBnt addTarget:self action:@selector(chooseTipAction) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _chooseBnt;
|
||||
}
|
||||
- (UILabel *)tipsView{
|
||||
if(!_tipsView){
|
||||
_tipsView = [UILabel labelInitWithText:YMLocalizedString(@"PITreasureFairyBuyElfShardSuccessView0") font:[UIFont systemFontOfSize:10 weight:UIFontWeightRegular] textColor:[UIColor colorWithWhite:1 alpha:0.8]];
|
||||
}
|
||||
return _tipsView;
|
||||
}
|
||||
- (UILabel *)titleTipsView{
|
||||
if(!_titleTipsView){
|
||||
_titleTipsView = [UILabel labelInitWithText:YMLocalizedString(@"PITreasureFairyBuyElfShardView0") font:[UIFont systemFontOfSize:14 weight:UIFontWeightMedium] textColor:UIColorFromRGB(0xFFE8AA)];
|
||||
}
|
||||
return _titleTipsView;
|
||||
}
|
||||
- (PITreasureFairyBuyElfShardInputNumView *)inputNumView{
|
||||
if(!_inputNumView){
|
||||
_inputNumView = [[PITreasureFairyBuyElfShardInputNumView alloc]initWithFrame:CGRectZero];
|
||||
_inputNumView.delegate = self;
|
||||
}
|
||||
return _inputNumView;
|
||||
}
|
||||
- (UIButton *)buyBtn{
|
||||
if(!_buyBtn){
|
||||
_buyBtn = [UIButton new];
|
||||
[_buyBtn setBackgroundImage:kImage(@"room_treasure_fairy_buy_elf_but_btn") forState:UIControlStateNormal];
|
||||
[_buyBtn setTitle:YMLocalizedString(@"PITreasureFairyBuyElfShardView1") forState:UIControlStateNormal];
|
||||
[_buyBtn setTitleColor:UIColorFromRGB(0x1F5764) forState:UIControlStateNormal];
|
||||
_buyBtn.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium];
|
||||
[_buyBtn addTarget:self action:@selector(bugShardAction) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _buyBtn;
|
||||
}
|
||||
@end
|
@@ -1,16 +0,0 @@
|
||||
//
|
||||
// XPTreasureFailrySummonBallView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/28.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class TreasureFairyBallModel;
|
||||
@interface XPTreasureFailrySummonBallView : UIView
|
||||
@property (nonatomic,strong) TreasureFairyBallModel *ballInfo;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,118 +0,0 @@
|
||||
//
|
||||
// XPTreasureFailrySummonBallView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/28.
|
||||
// 召唤的精灵球
|
||||
|
||||
#import "XPTreasureFailrySummonBallView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
#import "NetImageView.h"
|
||||
///Model
|
||||
#import "TreasureFairyBallInfoModel.h"
|
||||
@interface XPTreasureFailrySummonBallView ()
|
||||
///背景
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///精灵球
|
||||
@property (nonatomic,strong) NetImageView *ballImageView;
|
||||
///名字
|
||||
@property (nonatomic,strong) UILabel *nameLabel;
|
||||
///个数
|
||||
@property (nonatomic,strong) UILabel *countLabel;
|
||||
@end
|
||||
|
||||
@implementation XPTreasureFailrySummonBallView
|
||||
|
||||
- (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.backImageView];
|
||||
[self addSubview:self.ballImageView];
|
||||
[self addSubview:self.nameLabel];
|
||||
[self addSubview:self.countLabel];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self);
|
||||
}];
|
||||
|
||||
[self.ballImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(45, 45));
|
||||
make.top.mas_equalTo(self).offset(13);
|
||||
make.centerX.mas_equalTo(self);
|
||||
}];
|
||||
|
||||
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.bottom.mas_equalTo(self.backImageView).offset(-3);
|
||||
make.leading.trailing.mas_equalTo(self.backImageView);
|
||||
}];
|
||||
|
||||
[self.countLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(18, 18));
|
||||
make.leading.mas_equalTo(self.backImageView).offset(61);
|
||||
make.top.mas_equalTo(self.backImageView).offset(51);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setBallInfo:(TreasureFairyBallModel *)ballInfo {
|
||||
_ballInfo =ballInfo;
|
||||
if (_ballInfo) {
|
||||
self.ballImageView.imageUrl = _ballInfo.elfPicUrl;
|
||||
self.nameLabel.text = _ballInfo.elfName;
|
||||
self.countLabel.text = [NSString stringWithFormat:@"%ld", _ballInfo.elfNum];
|
||||
}
|
||||
}
|
||||
|
||||
- (UIImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.userInteractionEnabled = YES;
|
||||
_backImageView.image = [UIImage imageNamed:@"room_treasure_fairy_shoping_ball_bg"];
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
|
||||
- (NetImageView *)ballImageView {
|
||||
if (!_ballImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_ballImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_ballImageView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
}
|
||||
return _ballImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)nameLabel {
|
||||
if (!_nameLabel) {
|
||||
_nameLabel = [[UILabel alloc] init];
|
||||
_nameLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
|
||||
_nameLabel.textColor = [UIColor whiteColor];
|
||||
_nameLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _nameLabel;
|
||||
}
|
||||
|
||||
- (UILabel *)countLabel {
|
||||
if (!_countLabel) {
|
||||
_countLabel = [[UILabel alloc] init];
|
||||
_countLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
|
||||
_countLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#1F5764"];
|
||||
_countLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _countLabel;
|
||||
}
|
||||
|
||||
@end
|
@@ -1,17 +0,0 @@
|
||||
//
|
||||
// XPTreasureFailyPrizeGiftView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/15.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPTreasureFailyPrizeGiftView : UIView
|
||||
///显示的内容
|
||||
@property (nonatomic,copy) NSString *title;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,65 +0,0 @@
|
||||
//
|
||||
// XPTreasureFailyPrizeGiftView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/15.
|
||||
//
|
||||
|
||||
#import "XPTreasureFailyPrizeGiftView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
|
||||
@interface XPTreasureFailyPrizeGiftView ()
|
||||
|
||||
///奖励的
|
||||
@property (nonatomic,strong) UIButton *prizeButton;
|
||||
|
||||
@end
|
||||
|
||||
@implementation XPTreasureFailyPrizeGiftView
|
||||
|
||||
- (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.prizeButton];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.prizeButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.bottom.mas_equalTo(self);
|
||||
make.top.mas_equalTo(self).offset(6);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setTitle:(NSString *)title {
|
||||
_title = title;
|
||||
if (_title.length > 0) {
|
||||
[self.prizeButton setTitle:title forState:UIControlStateNormal];
|
||||
}
|
||||
}
|
||||
|
||||
- (UIButton *)prizeButton {
|
||||
if (!_prizeButton) {
|
||||
UIButton * newAnimaView = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
newAnimaView.imageView.layer.masksToBounds = YES;
|
||||
newAnimaView.imageView.contentMode = UIViewContentModeCenter;
|
||||
[newAnimaView setBackgroundImage:[UIImage imageNamed:@"room_treasure_fairy_prize_bg"] forState:UIControlStateNormal];
|
||||
newAnimaView.titleLabel.font = [UIFont systemFontOfSize:12];
|
||||
[newAnimaView setTitleColor:[DJDKMIMOMColor colorWithHexString:@"#FFE8AA"] forState:UIControlStateNormal];
|
||||
_prizeButton = newAnimaView;
|
||||
}
|
||||
return _prizeButton;
|
||||
}
|
||||
|
||||
@end
|
@@ -1,19 +0,0 @@
|
||||
//
|
||||
// XPTreasureFailyResultView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/16.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPTreasureFailyResultView : UIView
|
||||
|
||||
///数据
|
||||
@property (nonatomic,strong) NSArray *datasource;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,156 +0,0 @@
|
||||
//
|
||||
// XPTreasureFailyResultView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/16.
|
||||
//
|
||||
|
||||
#import "XPTreasureFailyResultView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
|
||||
#import "TTPopup.h"
|
||||
#import "NSArray+Safe.h"
|
||||
///View
|
||||
#import "XPTreasureFailyResultGiftCell.h"
|
||||
|
||||
@interface XPTreasureFailyResultView ()<UICollectionViewDelegate, UICollectionViewDataSource>
|
||||
///顶部的View
|
||||
@property (nonatomic,strong) UIView *bottomView;
|
||||
///背景
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///只有一个cell的时候
|
||||
@property (nonatomic,strong) XPTreasureFailyResultGiftCell *oneGiftView;
|
||||
///列表
|
||||
@property (nonatomic,strong) UICollectionView *collectionView;
|
||||
@end
|
||||
|
||||
|
||||
@implementation XPTreasureFailyResultView
|
||||
|
||||
|
||||
- (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.backImageView];
|
||||
[self addSubview:self.bottomView];
|
||||
[self.backImageView addSubview:self.oneGiftView];
|
||||
[self.backImageView addSubview:self.collectionView];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
CGFloat kscale = 364.0 / 375.0;
|
||||
self.frame = CGRectMake(0, 0, KScreenWidth, KScreenWidth * kscale + 89 * kScreenScale);
|
||||
[self.bottomView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.bottom.mas_equalTo(self);
|
||||
make.top.mas_equalTo(self.backImageView.mas_bottom);
|
||||
}];
|
||||
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.top.mas_equalTo(self);
|
||||
make.height.mas_equalTo(KScreenWidth * kscale);
|
||||
}];
|
||||
|
||||
[self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.backImageView).offset(87 * kScreenScale);
|
||||
make.bottom.mas_equalTo(self.backImageView).offset((-182 + 89) * kScreenScale);
|
||||
make.leading.trailing.mas_equalTo(self.backImageView);
|
||||
}];
|
||||
|
||||
[self.oneGiftView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(115);
|
||||
make.width.mas_equalTo(90);
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
make.top.mas_equalTo(self.backImageView).offset(129 * kScreenScale);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - Event Response
|
||||
- (void)dismissView {
|
||||
[TTPopup dismiss];
|
||||
}
|
||||
|
||||
#pragma mark - UICollectionViewDelegate And UICollectionViewDataSoure
|
||||
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
|
||||
return self.datasource.count;
|
||||
}
|
||||
|
||||
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
|
||||
XPTreasureFailyResultGiftCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([XPTreasureFailyResultGiftCell class]) forIndexPath:indexPath];
|
||||
TreasureFairyInfoModel * info = [self.datasource xpSafeObjectAtIndex:indexPath.row];
|
||||
cell.prizeInfo = info;
|
||||
return cell;
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setDatasource:(NSArray *)datasource {
|
||||
_datasource = datasource;
|
||||
if (_datasource.count > 1) {
|
||||
self.collectionView.hidden = NO;
|
||||
self.oneGiftView.hidden = YES;
|
||||
[self.collectionView reloadData];
|
||||
} else {
|
||||
self.oneGiftView.hidden = NO;
|
||||
self.collectionView.hidden = YES;
|
||||
if (_datasource.count == 1) {
|
||||
self.oneGiftView.prizeInfo = _datasource.firstObject;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (UICollectionView *)collectionView{
|
||||
if (!_collectionView) {
|
||||
MSBaseRTLFlowLayout *layout = [[MSBaseRTLFlowLayout alloc] init];
|
||||
CGFloat itemWidth = (KScreenWidth - 14 * 3 - 60) / 4.0;
|
||||
layout.itemSize = CGSizeMake(itemWidth, itemWidth + 23);
|
||||
layout.sectionInset = UIEdgeInsetsMake(0, 30, 0, 30);
|
||||
layout.minimumLineSpacing = 11;
|
||||
layout.minimumInteritemSpacing = 14;
|
||||
_collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
|
||||
_collectionView.dataSource = self;
|
||||
_collectionView.delegate = self;
|
||||
_collectionView.backgroundColor = [UIColor clearColor];
|
||||
[_collectionView registerClass:[XPTreasureFailyResultGiftCell class] forCellWithReuseIdentifier:NSStringFromClass([XPTreasureFailyResultGiftCell class])];
|
||||
}
|
||||
return _collectionView;
|
||||
}
|
||||
|
||||
- (UIView *)bottomView {
|
||||
if (!_bottomView) {
|
||||
_bottomView = [[UIView alloc] init];
|
||||
_bottomView.backgroundColor = [UIColor clearColor];
|
||||
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissView)];
|
||||
[_bottomView addGestureRecognizer:tap];
|
||||
}
|
||||
return _bottomView;
|
||||
}
|
||||
|
||||
- (UIImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.userInteractionEnabled = YES;
|
||||
_backImageView.image = [UIImage getLanguageImage:@"room_treasure_fairy_result_bg"];
|
||||
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissView)];
|
||||
[_backImageView addGestureRecognizer:tap];
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
|
||||
- (XPTreasureFailyResultGiftCell *)oneGiftView {
|
||||
if (!_oneGiftView) {
|
||||
_oneGiftView = [[XPTreasureFailyResultGiftCell alloc] init];
|
||||
}
|
||||
return _oneGiftView;
|
||||
}
|
||||
|
||||
@end
|
@@ -1,26 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyBallContentView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/22.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class XPTreasureFairyBallContentView, TreasureFairyBallModel;
|
||||
@protocol XPTreasureFairyBallContentViewDelegate <NSObject>
|
||||
///索取
|
||||
- (void)xPTreasureFairyBallContentView:(XPTreasureFairyBallContentView *)view askInfo:(TreasureFairyBallModel *)askInfo;
|
||||
///赠送
|
||||
- (void)xPTreasureFairyBallContentView:(XPTreasureFairyBallContentView *)view sendInfo:(TreasureFairyBallModel *)sendInfo;
|
||||
|
||||
@end
|
||||
@interface XPTreasureFairyBallContentView : UIView
|
||||
///数据
|
||||
@property (nonatomic,strong) NSArray *datasource;
|
||||
///代理
|
||||
@property (nonatomic,weak) id<XPTreasureFairyBallContentViewDelegate> delegate;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,130 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyBallContentView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/22.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyBallContentView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
#import "NSArray+Safe.h"
|
||||
///View
|
||||
#import "XPTreasureFairyBallView.h"
|
||||
|
||||
@interface XPTreasureFairyBallContentView ()<XPTreasureFairyBallViewDelegate>
|
||||
///第一个
|
||||
@property (nonatomic,strong) XPTreasureFairyBallView *firstView;
|
||||
///第二个
|
||||
@property (nonatomic,strong) XPTreasureFairyBallView *secondView;
|
||||
///第三个
|
||||
@property (nonatomic,strong) XPTreasureFairyBallView *thirdView;
|
||||
@property (nonatomic,strong) NSArray *viewList;
|
||||
@end
|
||||
|
||||
@implementation XPTreasureFairyBallContentView
|
||||
|
||||
- (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.firstView];
|
||||
[self addSubview:self.secondView];
|
||||
[self addSubview:self.thirdView];
|
||||
|
||||
|
||||
self.viewList = @[self.firstView, self.secondView, self.thirdView];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
|
||||
[self mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.bottom.mas_equalTo(self.thirdView.mas_bottom);
|
||||
}];
|
||||
|
||||
|
||||
[self.firstView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(108, 153));
|
||||
make.centerX.mas_equalTo(self);
|
||||
make.top.mas_equalTo(self);
|
||||
}];
|
||||
|
||||
[self.secondView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(108, 153));
|
||||
make.trailing.mas_equalTo(self.mas_centerX).mas_offset(-19);
|
||||
make.top.equalTo(self.firstView.mas_bottom).mas_offset(10);
|
||||
}];
|
||||
|
||||
|
||||
|
||||
[self.thirdView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.centerY.mas_equalTo(self.secondView);
|
||||
make.leading.mas_equalTo(self.secondView.mas_trailing).offset(37);
|
||||
}];
|
||||
|
||||
|
||||
}
|
||||
|
||||
#pragma mark - XPTreasureFairyBallViewDelegate
|
||||
- (void)xPTreasureFairyBallView:(XPTreasureFairyBallView *)view askBallInfo:(TreasureFairyBallModel *)info {
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPTreasureFairyBallContentView:askInfo:)]) {
|
||||
[self.delegate xPTreasureFairyBallContentView:self askInfo:info];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)xPTreasureFairyBallView:(XPTreasureFairyBallView *)view sendBallInfo:(TreasureFairyBallModel *)info {
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPTreasureFairyBallContentView:sendInfo:)]) {
|
||||
[self.delegate xPTreasureFairyBallContentView:self sendInfo:info];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setDatasource:(NSArray *)datasource {
|
||||
_datasource = datasource;
|
||||
if (_datasource.count > 0) {
|
||||
for (int i = 0; i < _datasource.count; i++) {
|
||||
TreasureFairyBallModel * ballInfo = [_datasource xpSafeObjectAtIndex:i];
|
||||
if (i < self.viewList.count) {
|
||||
XPTreasureFairyBallView * view = [self.viewList xpSafeObjectAtIndex:i];
|
||||
view.ballInfo = ballInfo;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
- (XPTreasureFairyBallView *)firstView {
|
||||
if(!_firstView) {
|
||||
_firstView = [[XPTreasureFairyBallView alloc] init];
|
||||
_firstView.delegate = self;
|
||||
}
|
||||
return _firstView;
|
||||
}
|
||||
|
||||
- (XPTreasureFairyBallView *)secondView {
|
||||
if(!_secondView) {
|
||||
_secondView = [[XPTreasureFairyBallView alloc] init];
|
||||
_secondView.delegate = self;
|
||||
}
|
||||
return _secondView;
|
||||
}
|
||||
|
||||
|
||||
- (XPTreasureFairyBallView *)thirdView {
|
||||
if(!_thirdView) {
|
||||
_thirdView = [[XPTreasureFairyBallView alloc] init];
|
||||
_thirdView.delegate = self;
|
||||
}
|
||||
return _thirdView;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@end
|
@@ -1,25 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyBallView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/22.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class TreasureFairyBallModel, XPTreasureFairyBallView;
|
||||
@protocol XPTreasureFairyBallViewDelegate <NSObject>
|
||||
///索要
|
||||
- (void)xPTreasureFairyBallView:(XPTreasureFairyBallView *)view askBallInfo:(TreasureFairyBallModel *)info;
|
||||
///赠送
|
||||
- (void)xPTreasureFairyBallView:(XPTreasureFairyBallView *)view sendBallInfo:(TreasureFairyBallModel *)info;
|
||||
@end
|
||||
|
||||
@interface XPTreasureFairyBallView : UIView
|
||||
@property (nonatomic,strong) TreasureFairyBallModel *ballInfo;
|
||||
///代理
|
||||
@property (nonatomic,weak) id<XPTreasureFairyBallViewDelegate> delegate;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,296 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyBallView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/22.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyBallView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
#import "NetImageView.h"
|
||||
///Model
|
||||
#import "TreasureFairyBallInfoModel.h"
|
||||
@interface XPTreasureFairyBallView ()
|
||||
|
||||
///背景
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///精灵名称
|
||||
@property (nonatomic,strong) UILabel *nameLabel;
|
||||
///数量
|
||||
@property (nonatomic,strong) UILabel *numberLabel;
|
||||
///精灵球
|
||||
@property (nonatomic,strong) NetImageView *ballImageView;
|
||||
///容器
|
||||
@property (nonatomic,strong) UIStackView *stackView;
|
||||
///没有获得
|
||||
@property (nonatomic,strong) UIButton *notGetButton;
|
||||
///赠送
|
||||
@property (nonatomic,strong) UIButton *sendButton;
|
||||
///索要
|
||||
@property (nonatomic,strong) UIButton *askButton;
|
||||
///覆盖的
|
||||
@property (nonatomic,strong) UIImageView *coverImageView;
|
||||
@end
|
||||
|
||||
@implementation XPTreasureFairyBallView
|
||||
|
||||
- (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.backImageView];
|
||||
[self addSubview:self.nameLabel];
|
||||
[self addSubview:self.ballImageView];
|
||||
[self addSubview:self.coverImageView];
|
||||
[self addSubview:self.numberLabel];
|
||||
[self addSubview:self.notGetButton];
|
||||
[self addSubview:self.stackView];
|
||||
|
||||
[self.stackView addArrangedSubview:self.sendButton];
|
||||
[self.stackView addArrangedSubview:self.askButton];
|
||||
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(flipRecognizer)];
|
||||
[self addGestureRecognizer:tap];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self);
|
||||
}];
|
||||
|
||||
[self.coverImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self);
|
||||
}];
|
||||
|
||||
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.backImageView);
|
||||
make.top.mas_equalTo(self.backImageView).offset(30);
|
||||
}];
|
||||
|
||||
[self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.backImageView);
|
||||
make.top.mas_equalTo(self.nameLabel.mas_bottom).offset(8);
|
||||
}];
|
||||
|
||||
[self.ballImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(76, 76));
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
make.top.mas_equalTo(self.backImageView).offset(74);
|
||||
}];
|
||||
|
||||
[self.notGetButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(54, 54));
|
||||
make.top.mas_equalTo(self.backImageView).offset(60);
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
}];
|
||||
|
||||
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerY.mas_equalTo(self.notGetButton);
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
}];
|
||||
|
||||
[self.askButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(54, 54));
|
||||
}];
|
||||
|
||||
[self.sendButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(54, 54));
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)delayAction {
|
||||
TreasureFairyBallModel * info = self.ballInfo;
|
||||
info.isFlip = !info.isFlip;
|
||||
self.ballInfo = info;
|
||||
}
|
||||
|
||||
#pragma mark - Event Response
|
||||
- (void)flipRecognizer {
|
||||
self.stackView.hidden = YES;
|
||||
self.notGetButton.hidden = YES;
|
||||
[self performSelector:@selector(delayAction) withObject:self afterDelay:0.5];
|
||||
[UIView beginAnimations:@"aa" context:nil];
|
||||
[UIView setAnimationDuration:0.5];
|
||||
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
|
||||
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self cache:NO];
|
||||
[UIView commitAnimations];
|
||||
}
|
||||
|
||||
- (void)sendButtonAction:(UIButton *)sener {
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPTreasureFairyBallView:sendBallInfo:)]) {
|
||||
[self.delegate xPTreasureFairyBallView:self sendBallInfo:self.ballInfo];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)askButtonAction:(UIButton *)sender {
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPTreasureFairyBallView:askBallInfo:)]) {
|
||||
[self.delegate xPTreasureFairyBallView:self askBallInfo:self.ballInfo];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setBallInfo:(TreasureFairyBallModel *)ballInfo {
|
||||
_ballInfo = ballInfo;
|
||||
if (_ballInfo) {
|
||||
self.nameLabel.text = _ballInfo.elfName;
|
||||
self.ballImageView.imageUrl = _ballInfo.elfPicUrl;
|
||||
NSString * backImageName;
|
||||
NSString * coverImageName;
|
||||
|
||||
if (_ballInfo.elfLevel == TreasureFairyStoreType_High) {
|
||||
backImageName = @"room_treasure_fairy_my_high_ball_bg";
|
||||
coverImageName = @"room_treasure_fairy_my_high_ball_cover";
|
||||
self.nameLabel.textColor = [UIColor whiteColor];
|
||||
self.numberLabel.textColor = [UIColor whiteColor];
|
||||
} else if (_ballInfo.elfLevel == TreasureFairyStoreType_Middle) {
|
||||
backImageName = @"room_treasure_fairy_my_middle_ball_bg";
|
||||
coverImageName = @"room_treasure_fairy_my_middle_ball_cover";
|
||||
self.nameLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#FFFED6"];
|
||||
self.numberLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#59FDFF"];
|
||||
} else {
|
||||
backImageName = @"room_treasure_fairy_my_low_ball_bg";
|
||||
coverImageName = @"room_treasure_fairy_my_low_ball_cover";
|
||||
self.nameLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#A4FFFC"];
|
||||
self.numberLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#FFE8AA"];
|
||||
}
|
||||
|
||||
if (_ballInfo.elfNum <=0 || _ballInfo.isFlip) {
|
||||
self.coverImageView.hidden = NO;
|
||||
} else {
|
||||
self.coverImageView.hidden = YES;
|
||||
}
|
||||
|
||||
if (_ballInfo.elfNum > 0) {///已获得
|
||||
self.numberLabel.hidden = NO;
|
||||
self.notGetButton.hidden = YES;
|
||||
self.numberLabel.text = [NSString stringWithFormat:@"x%ld", _ballInfo.elfNum];
|
||||
} else {///未获得
|
||||
self.numberLabel.hidden = YES;
|
||||
if (_ballInfo.isFlip) {
|
||||
self.notGetButton.hidden = YES;
|
||||
} else {
|
||||
self.notGetButton.hidden = NO;
|
||||
}
|
||||
}
|
||||
|
||||
if (_ballInfo.isFlip) {
|
||||
self.stackView.hidden = NO;
|
||||
if (_ballInfo.elfNum > 0) {
|
||||
self.sendButton.hidden = NO;
|
||||
} else {
|
||||
self.sendButton.hidden = YES;
|
||||
}
|
||||
} else {
|
||||
self.stackView.hidden = YES;
|
||||
}
|
||||
|
||||
if (backImageName.length > 0) {
|
||||
self.backImageView.image = [UIImage imageNamed:backImageName];
|
||||
}
|
||||
|
||||
if (coverImageName.length > 0) {
|
||||
self.coverImageView.image = [UIImage imageNamed:coverImageName];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (UIImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.userInteractionEnabled = YES;
|
||||
_backImageView.image = [UIImage imageNamed:@"room_treasure_fairy_ball_bg"];
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
- (UILabel *)nameLabel {
|
||||
if (!_nameLabel) {
|
||||
_nameLabel = [[UILabel alloc] init];
|
||||
_nameLabel.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium];
|
||||
_nameLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#A4FFFC"];
|
||||
_nameLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _nameLabel;
|
||||
}
|
||||
|
||||
- (UILabel *)numberLabel {
|
||||
if (!_numberLabel) {
|
||||
_numberLabel = [[UILabel alloc] init];
|
||||
_numberLabel.font = [UIFont systemFontOfSize:12];
|
||||
_numberLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#59FDFF"];
|
||||
_numberLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _numberLabel;
|
||||
}
|
||||
|
||||
- (UIImageView *)coverImageView {
|
||||
if (!_coverImageView) {
|
||||
_coverImageView = [[UIImageView alloc] init];
|
||||
_coverImageView.userInteractionEnabled = YES;
|
||||
}
|
||||
return _coverImageView;
|
||||
}
|
||||
|
||||
- (NetImageView *)ballImageView {
|
||||
if (!_ballImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_ballImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_ballImageView.layer.masksToBounds = YES;
|
||||
_ballImageView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
}
|
||||
return _ballImageView;
|
||||
}
|
||||
|
||||
- (UIStackView *)stackView {
|
||||
if (!_stackView) {
|
||||
_stackView = [[UIStackView alloc] init];
|
||||
_stackView.axis = UILayoutConstraintAxisVertical;
|
||||
_stackView.distribution = UIStackViewDistributionFill;
|
||||
_stackView.alignment = UIStackViewAlignmentFill;
|
||||
_stackView.spacing = 10;
|
||||
_stackView.hidden = YES;
|
||||
}
|
||||
return _stackView;
|
||||
}
|
||||
|
||||
- (UIButton *)notGetButton {
|
||||
if (!_notGetButton) {
|
||||
_notGetButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_notGetButton setImage:[UIImage getLanguageImage:@"room_treasure_fairy_ball_not_get"] forState:UIControlStateNormal];
|
||||
[_notGetButton setImage:[UIImage getLanguageImage:@"room_treasure_fairy_ball_not_get"] forState:UIControlStateSelected];
|
||||
_notGetButton.hidden = YES;
|
||||
_notGetButton.userInteractionEnabled = NO;
|
||||
}
|
||||
return _notGetButton;
|
||||
}
|
||||
|
||||
- (UIButton *)sendButton {
|
||||
if (!_sendButton) {
|
||||
_sendButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_sendButton setImage:[UIImage getLanguageImage:@"room_treasure_fairy_ball_send"] forState:UIControlStateNormal];
|
||||
[_sendButton setImage:[UIImage getLanguageImage:@"room_treasure_fairy_ball_send"] forState:UIControlStateSelected];
|
||||
[_sendButton addTarget:self action:@selector(sendButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _sendButton;
|
||||
}
|
||||
|
||||
- (UIButton *)askButton {
|
||||
if (!_askButton) {
|
||||
_askButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_askButton setImage:[UIImage getLanguageImage:@"room_treasure_fairy_ball_ask"] forState:UIControlStateNormal];
|
||||
[_askButton setImage:[UIImage getLanguageImage:@"room_treasure_fairy_ball_ask"] forState:UIControlStateSelected];
|
||||
[_askButton addTarget:self action:@selector(askButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _askButton;
|
||||
}
|
||||
|
||||
@end
|
@@ -1,23 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyBottomView.h
|
||||
// YuMi
|
||||
//
|
||||
// Created by duoban on 2023/9/5.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@protocol XPTreasureFairyBottomViewDelegate <NSObject>
|
||||
///购买精灵碎片
|
||||
-(void)buyElfShardWithNum:(NSString *)num;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@interface XPTreasureFairyBottomView : UIView
|
||||
@property(nonatomic,weak) id<XPTreasureFairyBottomViewDelegate>delegate;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,323 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyBottomView.m
|
||||
// YuMi
|
||||
//
|
||||
// Created by duoban on 2023/9/5.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyBottomView.h"
|
||||
@interface XPTreasureFairyBottomView()<UITextFieldDelegate>
|
||||
///背景图片
|
||||
@property(nonatomic,strong) UIImageView *bgImageView;
|
||||
///背景
|
||||
@property(nonatomic,strong) UIImageView *bgView;
|
||||
///买一个背景
|
||||
@property(nonatomic,strong) UIButton *firstBg;
|
||||
///买十个背景
|
||||
@property(nonatomic,strong) UIButton *tenthBg;
|
||||
///买一百个背景
|
||||
@property(nonatomic,strong) UIButton *hundredthBg;
|
||||
///买一个
|
||||
@property(nonatomic,strong) UIButton *firstBtn;
|
||||
|
||||
///买十个
|
||||
@property(nonatomic,strong) UIButton *tenthBtn;
|
||||
///买一百个
|
||||
@property(nonatomic,strong) UIButton *hundredthBtn;
|
||||
///输入数量背景
|
||||
@property(nonatomic,strong) UIView *textBgView;
|
||||
///输入数量
|
||||
@property(nonatomic,strong) MSBaseTextField *textField;
|
||||
///购买
|
||||
@property(nonatomic,strong) UIButton *buyBtn;
|
||||
///购买的数量
|
||||
@property(nonatomic,copy) NSString *chooseNum;
|
||||
@end
|
||||
@implementation XPTreasureFairyBottomView
|
||||
|
||||
-(instancetype)initWithFrame:(CGRect)frame{
|
||||
self = [super initWithFrame:frame];
|
||||
if(self){
|
||||
[self installUI];
|
||||
[self installConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
-(void)installUI{
|
||||
[self addSubview:self.bgImageView];
|
||||
[self.bgImageView addSubview:self.bgView];
|
||||
[self.bgView addSubview:self.firstBtn];
|
||||
[self.firstBtn addSubview:self.firstBg];
|
||||
[self.bgView addSubview:self.tenthBtn];
|
||||
[self.tenthBtn addSubview:self.tenthBg];
|
||||
[self.bgView addSubview:self.hundredthBtn];
|
||||
[self.hundredthBtn addSubview:self.hundredthBg];
|
||||
[self.bgView addSubview:self.textBgView];
|
||||
[self.bgView addSubview:self.textField];
|
||||
[self.bgView addSubview:self.buyBtn];
|
||||
}
|
||||
-(void)installConstraints{
|
||||
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self);
|
||||
}];
|
||||
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.equalTo(self.bgImageView);
|
||||
make.width.mas_equalTo(327);
|
||||
make.top.mas_equalTo(10);
|
||||
make.height.mas_equalTo(30);
|
||||
}];
|
||||
[self.firstBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(43);
|
||||
make.height.mas_equalTo(19);
|
||||
make.leading.mas_equalTo(12);
|
||||
make.centerY.equalTo(self.bgView);
|
||||
}];
|
||||
[self.firstBg mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self.firstBtn);
|
||||
}];
|
||||
[self.tenthBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(43);
|
||||
make.height.mas_equalTo(19);
|
||||
make.leading.mas_equalTo(65);
|
||||
make.centerY.equalTo(self.bgView);
|
||||
}];
|
||||
[self.tenthBg mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self.tenthBtn);
|
||||
}];
|
||||
[self.hundredthBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(43);
|
||||
make.height.mas_equalTo(19);
|
||||
make.leading.mas_equalTo(118);
|
||||
make.centerY.equalTo(self.bgView);
|
||||
}];
|
||||
[self.hundredthBg mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self.hundredthBtn);
|
||||
}];
|
||||
[self.textBgView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.trailing.mas_equalTo(-71);
|
||||
make.width.mas_equalTo(61);
|
||||
make.height.mas_equalTo(21);
|
||||
make.centerY.equalTo(self.bgView);
|
||||
}];
|
||||
[self.textField mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self.textBgView);
|
||||
}];
|
||||
[self.buyBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(59);
|
||||
make.height.mas_equalTo(23);
|
||||
make.leading.equalTo(self.textBgView.mas_trailing).mas_offset(8);
|
||||
make.centerY.equalTo(self.bgView);
|
||||
}];
|
||||
}
|
||||
-(void)chooseBuyNumAction:(UIButton *)sender{
|
||||
UIButton *supBtn = (UIButton *)sender.superview;
|
||||
self.chooseNum = supBtn.currentTitle;
|
||||
self.textField.text = @"";
|
||||
NSArray *btnArr = @[self.firstBg,self.tenthBg,self.hundredthBg];
|
||||
for (UIButton *btn in btnArr) {
|
||||
if(btn == sender){
|
||||
btn.hidden = YES;
|
||||
btn.superview.layer.borderWidth = 1;
|
||||
}else{
|
||||
btn.hidden = NO;
|
||||
btn.superview.layer.borderWidth = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark -UITextFieldDelegate
|
||||
- (void)textFieldDidChange:(UITextField *)textField {
|
||||
if(textField.text.integerValue <= 0){
|
||||
textField.text = @"";
|
||||
}
|
||||
self.chooseNum = textField.text;
|
||||
NSArray *btnArr = @[self.firstBg,self.tenthBg,self.hundredthBg];
|
||||
for (UIButton *btn in btnArr) {
|
||||
|
||||
btn.hidden = NO;
|
||||
btn.superview.layer.borderWidth = 0;
|
||||
|
||||
}
|
||||
}
|
||||
- (void)textFieldDidEndEditing:(UITextField *)textField{
|
||||
if(textField.text.length <= 0){
|
||||
textField.text = @"";
|
||||
}
|
||||
NSArray *btnArr = @[self.firstBg,self.tenthBg,self.hundredthBg];
|
||||
for (UIButton *btn in btnArr) {
|
||||
|
||||
btn.hidden = NO;
|
||||
btn.superview.layer.borderWidth = 0;
|
||||
|
||||
}
|
||||
self.chooseNum = textField.text;
|
||||
}
|
||||
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
|
||||
return [self validateNumber:string];
|
||||
}
|
||||
|
||||
- (BOOL)validateNumber:(NSString*)number {
|
||||
BOOL res = YES;
|
||||
NSCharacterSet* tmpSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
|
||||
int i = 0;
|
||||
while (i < number.length) {
|
||||
NSString * string = [number substringWithRange:NSMakeRange(i, 1)];
|
||||
NSRange range = [string rangeOfCharacterFromSet:tmpSet];
|
||||
if (range.length == 0) {
|
||||
res = NO;
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
-(void)bugAction{
|
||||
if(self.self.chooseNum.length ==0){
|
||||
[XNDJTDDLoadingTool showErrorWithMessage:YMLocalizedString(@"XPTreasureFairyBottomView2")];
|
||||
return;
|
||||
}
|
||||
if(self.delegate && [self.delegate respondsToSelector:@selector(buyElfShardWithNum:)]){
|
||||
[self.delegate buyElfShardWithNum:self.chooseNum];
|
||||
}
|
||||
[self.textField resignFirstResponder];
|
||||
}
|
||||
#pragma mark - 懒加载
|
||||
- (UIImageView *)bgImageView{
|
||||
if(!_bgImageView){
|
||||
_bgImageView = [UIImageView new];
|
||||
_bgImageView.userInteractionEnabled = YES;
|
||||
_bgImageView.image = kImage(@"room_treasure_fairy_bottom_bg");
|
||||
}
|
||||
return _bgImageView;
|
||||
}
|
||||
- (UIImageView *)bgView{
|
||||
if(!_bgView){
|
||||
_bgView = [UIImageView new];
|
||||
_bgView.userInteractionEnabled = YES;
|
||||
UIImage *image = [UIImage gradientColorImageFromColors:@[UIColorFromRGB(0x17303C),UIColorFromRGB(0x284D5A)] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(327, 30)];
|
||||
_bgView.image = image;
|
||||
_bgView.layer.cornerRadius = 15;
|
||||
_bgView.layer.masksToBounds = YES;
|
||||
_bgView.layer.borderWidth = 1;
|
||||
_bgView.layer.borderColor = [UIColor colorWithWhite:1 alpha:0.6].CGColor;
|
||||
}
|
||||
return _bgView;
|
||||
}
|
||||
- (UIButton *)firstBg{
|
||||
if(!_firstBg){
|
||||
_firstBg = [UIButton new];
|
||||
_firstBg.backgroundColor = UIColorRGBAlpha(0x1F5B4B, 0.5);
|
||||
_firstBg.layer.cornerRadius = 19/2;
|
||||
_firstBg.layer.masksToBounds = YES;
|
||||
[_firstBg addTarget:self action:@selector(chooseBuyNumAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
|
||||
}
|
||||
return _firstBg;
|
||||
}
|
||||
- (UIButton *)tenthBg{
|
||||
if(!_tenthBg){
|
||||
_tenthBg = [UIButton new];
|
||||
_tenthBg.backgroundColor = UIColorRGBAlpha(0x1F5B4B, 0.5);
|
||||
_tenthBg.layer.cornerRadius = 19/2;
|
||||
_tenthBg.layer.masksToBounds = YES;
|
||||
[_tenthBg addTarget:self action:@selector(chooseBuyNumAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _tenthBg;
|
||||
}
|
||||
- (UIButton *)hundredthBg{
|
||||
if(!_hundredthBg){
|
||||
_hundredthBg = [UIButton new];
|
||||
_hundredthBg.backgroundColor = UIColorRGBAlpha(0x1F5B4B, 0.5);
|
||||
_hundredthBg.layer.cornerRadius = 19/2;
|
||||
_hundredthBg.layer.masksToBounds = YES;
|
||||
[ _hundredthBg addTarget:self action:@selector(chooseBuyNumAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _hundredthBg;
|
||||
}
|
||||
-(UIButton *)firstBtn{
|
||||
if(!_firstBtn){
|
||||
_firstBtn = [UIButton new];
|
||||
[_firstBtn setTitle:@"1" forState:UIControlStateNormal];
|
||||
_firstBtn.backgroundColor = [UIColor colorWithWhite:1 alpha:0.1];
|
||||
_firstBtn.layer.cornerRadius = 19/2;
|
||||
_firstBtn.layer.masksToBounds = YES;
|
||||
_firstBtn.layer.borderWidth = 0;
|
||||
_firstBtn.layer.borderColor = UIColorFromRGB(0xF2DE84).CGColor;
|
||||
[_firstBtn setTitleColor:UIColorFromRGB(0xF6F6F6) forState:UIControlStateNormal];
|
||||
_firstBtn.titleLabel.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium];
|
||||
[_firstBtn setImage:kImage(@"room_treasure_fairy_bottom_icon") forState:UIControlStateNormal];
|
||||
[_firstBtn setImageEdgeInsets:UIEdgeInsetsMake(0, -15, 0, 0)];
|
||||
[_firstBtn setTitleEdgeInsets:UIEdgeInsetsMake(0, -5, 0, 0)];
|
||||
|
||||
}
|
||||
return _firstBtn;
|
||||
}
|
||||
-(UIButton *)tenthBtn{
|
||||
if(!_tenthBtn){
|
||||
_tenthBtn = [UIButton new];
|
||||
_tenthBtn.backgroundColor = [UIColor colorWithWhite:1 alpha:0.1];
|
||||
[_tenthBtn setTitle:@"10" forState:UIControlStateNormal];
|
||||
[_tenthBtn setTitleColor:UIColorFromRGB(0xF6F6F6) forState:UIControlStateNormal];
|
||||
_tenthBtn.titleLabel.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium];
|
||||
[_tenthBtn setImage:kImage(@"room_treasure_fairy_bottom_icon") forState:UIControlStateNormal];
|
||||
_tenthBtn.layer.cornerRadius = 19/2;
|
||||
_tenthBtn.layer.masksToBounds = YES;
|
||||
_tenthBtn.layer.borderWidth = 0;
|
||||
_tenthBtn.layer.borderColor = UIColorFromRGB(0xF2DE84).CGColor;
|
||||
[_tenthBtn setImageEdgeInsets:UIEdgeInsetsMake(0, -11, 0, 0)];
|
||||
[_tenthBtn setTitleEdgeInsets:UIEdgeInsetsMake(0, -5, 0, 0)];
|
||||
}
|
||||
return _tenthBtn;
|
||||
}
|
||||
-(UIButton *)hundredthBtn{
|
||||
if(!_hundredthBtn){
|
||||
_hundredthBtn = [UIButton new];
|
||||
_hundredthBtn.backgroundColor = [UIColor colorWithWhite:1 alpha:0.1];
|
||||
[_hundredthBtn setTitle:@"100" forState:UIControlStateNormal];
|
||||
[_hundredthBtn setTitleColor:UIColorFromRGB(0xF6F6F6) forState:UIControlStateNormal];
|
||||
_hundredthBtn.titleLabel.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium];
|
||||
[_hundredthBtn setImage:kImage(@"room_treasure_fairy_bottom_icon") forState:UIControlStateNormal];
|
||||
_hundredthBtn.layer.cornerRadius = 19/2;
|
||||
_hundredthBtn.layer.masksToBounds = YES;
|
||||
_hundredthBtn.layer.borderWidth = 0;
|
||||
_hundredthBtn.layer.borderColor = UIColorFromRGB(0xF2DE84).CGColor;
|
||||
}
|
||||
return _hundredthBtn;
|
||||
}
|
||||
- (UIView *)textBgView{
|
||||
if(!_textBgView ){
|
||||
_textBgView = [UIView new];
|
||||
_textBgView.backgroundColor = UIColorFromRGB(0x365A65);
|
||||
_textBgView.layer.cornerRadius = 4;
|
||||
_textBgView.layer.masksToBounds = YES;
|
||||
}
|
||||
return _textBgView;
|
||||
}
|
||||
- (MSBaseTextField *)textField{
|
||||
if(!_textField){
|
||||
_textField = [[MSBaseTextField alloc]init];
|
||||
NSMutableAttributedString *textAtt = [[NSMutableAttributedString alloc]initWithString:YMLocalizedString(@"XPTreasureFairyBottomView0") attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:9 weight:UIFontWeightRegular],NSForegroundColorAttributeName:UIColorFromRGB(0xF6F6F6)}];
|
||||
_textField.attributedPlaceholder = textAtt;
|
||||
_textField.font = [UIFont systemFontOfSize:9 weight:UIFontWeightRegular];
|
||||
_textField.textColor = UIColorFromRGB(0xF6F6F6);
|
||||
_textField.keyboardType = UIKeyboardTypeNumberPad;
|
||||
_textField.textAlignment = NSTextAlignmentCenter;
|
||||
_textField.delegate = self;
|
||||
_textField.backgroundColor = [UIColor clearColor];
|
||||
_textField.adjustsFontSizeToFitWidth = YES;
|
||||
[_textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
|
||||
}
|
||||
return _textField;
|
||||
}
|
||||
- (UIButton *)buyBtn{
|
||||
if(!_buyBtn){
|
||||
_buyBtn = [UIButton new];
|
||||
[_buyBtn setBackgroundImage:kImage(@"room_treasure_fairy_bottom_buy") forState:UIControlStateNormal];
|
||||
[_buyBtn setTitle:YMLocalizedString(@"XPTreasureFairyBottomView1") forState:UIControlStateNormal];
|
||||
[_buyBtn setTitleColor:UIColorFromRGB(0x1F5764 ) forState:UIControlStateNormal];
|
||||
_buyBtn.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
|
||||
[_buyBtn addTarget:self action:@selector(bugAction) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _buyBtn;
|
||||
}
|
||||
@end
|
@@ -1,16 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyDrawSubView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/15.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class TreasureFairyInfoModel;
|
||||
@interface XPTreasureFairyDrawSubView : UIView
|
||||
@property (nonatomic,strong) TreasureFairyInfoModel *info;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,99 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyDrawSubView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/15.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyDrawSubView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
#import "NetImageView.h"
|
||||
|
||||
///Model
|
||||
#import "TreasureFairyInfoModel.h"
|
||||
@interface XPTreasureFairyDrawSubView ()
|
||||
///背景
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///精灵
|
||||
@property (nonatomic,strong) NetImageView *fairyView;
|
||||
///礼物名称
|
||||
@property (nonatomic,strong) UILabel *nameLabel;
|
||||
@end
|
||||
|
||||
@implementation XPTreasureFairyDrawSubView
|
||||
|
||||
- (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.backImageView];
|
||||
[self addSubview:self.fairyView];
|
||||
[self addSubview:self.nameLabel];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self);
|
||||
}];
|
||||
|
||||
[self.fairyView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(40, 46));
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
make.top.mas_equalTo(self.backImageView).offset(8);
|
||||
}];
|
||||
|
||||
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.backImageView);
|
||||
make.top.mas_equalTo(self.fairyView.mas_bottom).offset(2);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setInfo:(TreasureFairyInfoModel *)info {
|
||||
_info = info;
|
||||
if (_info) {
|
||||
self.fairyView.imageUrl = _info.rewardPicUrl;
|
||||
self.nameLabel.text = _info.rewardName;
|
||||
}
|
||||
}
|
||||
|
||||
- (UIImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.userInteractionEnabled = YES;
|
||||
_backImageView.image = [UIImage imageNamed:@"room_treasure_fairy_draw_bg"];
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
|
||||
- (NetImageView *)fairyView {
|
||||
if (!_fairyView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
_fairyView = [[NetImageView alloc] initWithConfig:config];
|
||||
_fairyView.layer.masksToBounds = YES;
|
||||
_fairyView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
}
|
||||
return _fairyView;
|
||||
}
|
||||
|
||||
- (UILabel *)nameLabel {
|
||||
if (!_nameLabel) {
|
||||
_nameLabel = [[UILabel alloc] init];
|
||||
_nameLabel.font = [UIFont systemFontOfSize:12];
|
||||
_nameLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#FFE8AA"];
|
||||
_nameLabel.textAlignment = NSTextAlignmentCenter;
|
||||
_nameLabel.text = YMLocalizedString(@"XPTreasureFairyDrawSubView0");
|
||||
}
|
||||
return _nameLabel;
|
||||
}
|
||||
|
||||
@end
|
@@ -1,29 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyDrewView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/15.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class TreasureFailyKeyInfoModel, TreasureFairyInfoModel;
|
||||
|
||||
typedef void(^AnimationCompletion)(BOOL finish);
|
||||
typedef void(^RebrushCompletion)(void);
|
||||
@interface XPTreasureFairyDrawView : UIView
|
||||
@property (nonatomic,strong) TreasureFailyKeyInfoModel *keyInfo;
|
||||
@property(nonatomic,copy) RebrushCompletion rebrushComletion;
|
||||
///礼物的列表
|
||||
@property (nonatomic,strong) NSArray *failyList;
|
||||
|
||||
- (void)startTimerCompletion:(AnimationCompletion)comletion;
|
||||
///停止动画
|
||||
- (void)stopAnimation;
|
||||
|
||||
///奖励的信息(最高奖励 动画要停止的位置)
|
||||
@property (nonatomic,strong) TreasureFairyInfoModel *rewardInfo;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,538 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyDrewView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/15.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyDrawView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
#import "XPWeakTimer.h"
|
||||
#import "NSArray+Safe.h"
|
||||
|
||||
///Model
|
||||
#import "TreasureFairyInfoModel.h"
|
||||
#import "TreasureFailyKeyInfoModel.h"
|
||||
///View
|
||||
#import "XPTreasureFairyDrawSubView.h"
|
||||
|
||||
@interface XPTreasureFairyDrawView ()
|
||||
{
|
||||
NSTimer * timer;
|
||||
}
|
||||
///动画的
|
||||
@property (nonatomic,strong) UIImageView *coverImageView;
|
||||
///第一个
|
||||
@property (nonatomic,strong) XPTreasureFairyDrawSubView *firstView;
|
||||
///第二个
|
||||
@property (nonatomic,strong) XPTreasureFairyDrawSubView *secondView;
|
||||
///第三个
|
||||
@property (nonatomic,strong) XPTreasureFairyDrawSubView *thirdView;
|
||||
///第四个
|
||||
@property (nonatomic,strong) XPTreasureFairyDrawSubView *fourthView;
|
||||
///第五个
|
||||
@property (nonatomic,strong) XPTreasureFairyDrawSubView *fifView;
|
||||
///第六个
|
||||
@property (nonatomic,strong) XPTreasureFairyDrawSubView *sixView;
|
||||
///第七个
|
||||
@property (nonatomic,strong) XPTreasureFairyDrawSubView *sevenView;
|
||||
///第八个
|
||||
@property (nonatomic,strong) XPTreasureFairyDrawSubView *eightView;
|
||||
///第9个
|
||||
@property (nonatomic,strong) XPTreasureFairyDrawSubView *nineView;
|
||||
///第10个
|
||||
@property (nonatomic,strong) XPTreasureFairyDrawSubView *tenView;
|
||||
///第11个
|
||||
@property (nonatomic,strong) XPTreasureFairyDrawSubView *elevenView;
|
||||
///第12个
|
||||
@property (nonatomic,strong) XPTreasureFairyDrawSubView *twelveView;
|
||||
///存放view的数组
|
||||
@property (nonatomic,strong) NSArray *viewList;
|
||||
///当前幸运值背景
|
||||
@property (nonatomic,strong) UIImageView *currentValueBgView;
|
||||
///当前幸运值
|
||||
@property (nonatomic,strong) UILabel *currentValueButton;
|
||||
///背景
|
||||
@property (nonatomic,strong) UIImageView *diamondBGView;
|
||||
///钻石
|
||||
@property (nonatomic,strong) UIImageView *diamondImageView;
|
||||
///进度
|
||||
@property (nonatomic,strong) UIImageView *coverDiamondView;
|
||||
///额外获得
|
||||
@property (nonatomic,strong) UILabel *limitLabel;
|
||||
///当前的index
|
||||
@property (nonatomic,assign) NSInteger currentIndex;
|
||||
///循环的次数
|
||||
@property (nonatomic,assign) NSInteger cycleCount;
|
||||
///中奖的下标
|
||||
@property (nonatomic,assign) NSInteger rewardIndex;
|
||||
@property (nonatomic,assign) NSInteger rewardNumber;
|
||||
///结束了
|
||||
@property (nonatomic,copy) AnimationCompletion finishCompletion;
|
||||
@property(nonatomic,strong) UIButton *rebrushBtn;
|
||||
@end
|
||||
|
||||
|
||||
@implementation XPTreasureFairyDrawView
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Public Method
|
||||
- (void)startTimerCompletion:(AnimationCompletion)comletion {
|
||||
self.finishCompletion = comletion;
|
||||
if (timer == nil) {
|
||||
timer = [XPWeakTimer scheduledTimerWithTimeInterval:0.07 target:self selector:@selector(run) userInfo:nil repeats:YES];
|
||||
[timer fire];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)stopAnimation {
|
||||
XPTreasureFairyDrawSubView * view = [self.viewList xpSafeObjectAtIndex:self.rewardNumber];
|
||||
if (view) {
|
||||
[self.coverImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(75 * kScreenScale, 81 * kScreenScale));
|
||||
make.center.equalTo(view);
|
||||
}];
|
||||
}
|
||||
[self stopTimer];
|
||||
}
|
||||
|
||||
- (void)stopTimer {
|
||||
[timer invalidate];
|
||||
timer = nil;
|
||||
self.cycleCount = 0;
|
||||
self.finishCompletion(YES);
|
||||
}
|
||||
|
||||
- (void)run {
|
||||
self.currentIndex ++;
|
||||
self.cycleCount ++;
|
||||
///拿到需要停止的奖品的位置
|
||||
if (self.cycleCount == (12 * 2 + self.rewardIndex)) {
|
||||
[self stopTimer];
|
||||
XPTreasureFairyDrawSubView * view = [self.viewList xpSafeObjectAtIndex:self.rewardNumber];
|
||||
if (view) {
|
||||
[self.coverImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(75 * kScreenScale, 81 * kScreenScale));
|
||||
make.center.equalTo(view);
|
||||
}];
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (self.currentIndex >= self.viewList.count) {
|
||||
self.currentIndex = 0;
|
||||
}
|
||||
XPTreasureFairyDrawSubView * view = [self.viewList xpSafeObjectAtIndex:self.currentIndex];
|
||||
if (view) {
|
||||
[self.coverImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(75 * kScreenScale, 81 * kScreenScale));
|
||||
make.center.equalTo(view);
|
||||
}];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
[self addSubview:self.firstView];
|
||||
[self addSubview:self.secondView];
|
||||
[self addSubview:self.thirdView];
|
||||
[self addSubview:self.fourthView];
|
||||
[self addSubview:self.fifView];
|
||||
[self addSubview:self.sixView];
|
||||
[self addSubview:self.sevenView];
|
||||
[self addSubview:self.eightView];
|
||||
[self addSubview:self.nineView];
|
||||
[self addSubview:self.tenView];
|
||||
[self addSubview:self.elevenView];
|
||||
[self addSubview:self.twelveView];
|
||||
[self addSubview:self.diamondBGView];
|
||||
[self addSubview:self.coverImageView];
|
||||
[self addSubview:self.currentValueBgView];
|
||||
[self addSubview:self.currentValueButton];
|
||||
[self addSubview:self.rebrushBtn];
|
||||
[self addSubview:self.coverDiamondView];
|
||||
[self addSubview:self.diamondImageView];
|
||||
[self addSubview:self.limitLabel];
|
||||
self.viewList = @[self.firstView, self.secondView, self.thirdView, self.fourthView, self.fifView, self.sixView, self.sevenView, self.eightView, self.nineView, self.tenView, self.elevenView, self.twelveView];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.bottom.mas_equalTo(self.sevenView.mas_bottom);
|
||||
}];
|
||||
|
||||
[self.coverImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(75 * kScreenScale, 81 * kScreenScale));
|
||||
make.center.equalTo(self.firstView);
|
||||
}];
|
||||
|
||||
[self.firstView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(75 * kScreenScale, 75 * kScreenScale));
|
||||
make.leading.mas_equalTo(self).offset(0);
|
||||
make.top.mas_equalTo(self).offset(0);
|
||||
}];
|
||||
|
||||
CGFloat margin = 15;
|
||||
CGFloat topMargin = 11;
|
||||
|
||||
[self.secondView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.centerY.equalTo(self.firstView);
|
||||
make.leading.mas_equalTo(self.firstView.mas_trailing).offset(margin);
|
||||
}];
|
||||
|
||||
[self.thirdView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.centerY.equalTo(self.firstView);
|
||||
make.leading.mas_equalTo(self.secondView.mas_trailing).offset(margin);
|
||||
}];
|
||||
|
||||
[self.fourthView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.centerY.equalTo(self.firstView);
|
||||
make.leading.mas_equalTo(self.thirdView.mas_trailing).offset(margin);
|
||||
}];
|
||||
|
||||
[self.fifView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.equalTo(self.firstView);
|
||||
make.leading.mas_equalTo(self.fourthView);
|
||||
make.top.mas_equalTo(self.fourthView.mas_bottom).offset(topMargin);
|
||||
}];
|
||||
|
||||
[self.sixView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.centerX.equalTo(self.fifView);
|
||||
make.top.mas_equalTo(self.fifView.mas_bottom).offset(topMargin);
|
||||
}];
|
||||
|
||||
[self.sevenView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.centerX.equalTo(self.fifView);
|
||||
make.top.mas_equalTo(self.sixView.mas_bottom).offset(topMargin);
|
||||
}];
|
||||
|
||||
[self.eightView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.centerY.equalTo(self.sevenView);
|
||||
make.trailing.mas_equalTo(self.sevenView.mas_leading).offset(-margin);
|
||||
}];
|
||||
|
||||
[self.nineView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.centerY.equalTo(self.sevenView);
|
||||
make.trailing.mas_equalTo(self.eightView.mas_leading).offset(-margin);
|
||||
}];
|
||||
|
||||
[self.tenView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.centerY.equalTo(self.sevenView);
|
||||
make.trailing.mas_equalTo(self.nineView.mas_leading).offset(-margin);
|
||||
}];
|
||||
|
||||
[self.elevenView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.centerX.equalTo(self.tenView);
|
||||
make.bottom.mas_equalTo(self.tenView.mas_top).offset(-topMargin);
|
||||
}];
|
||||
|
||||
[self.twelveView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.centerX.equalTo(self.tenView);
|
||||
make.bottom.mas_equalTo(self.elevenView.mas_top).offset(-topMargin);
|
||||
}];
|
||||
[self.currentValueBgView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(106, 28));
|
||||
make.centerX.mas_equalTo(self);
|
||||
make.top.mas_equalTo(self.firstView.mas_bottom).offset(10);
|
||||
}];
|
||||
[self.currentValueButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(kGetScaleWidth(28));
|
||||
make.centerX.mas_equalTo(self);
|
||||
make.top.mas_equalTo(self.firstView.mas_bottom).offset(10);
|
||||
}];
|
||||
[self.rebrushBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.height.mas_equalTo(20);
|
||||
make.centerY.equalTo(self.currentValueButton);
|
||||
make.leading.equalTo(self.currentValueButton.mas_trailing).mas_offset(4);
|
||||
}];
|
||||
[self.diamondBGView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(120, 125));
|
||||
make.centerX.mas_equalTo(self);
|
||||
make.top.mas_equalTo(self.currentValueButton.mas_bottom).offset(5);
|
||||
}];
|
||||
|
||||
[self.coverDiamondView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(120, 108));
|
||||
make.centerX.centerY.mas_equalTo(self.diamondBGView);
|
||||
}];
|
||||
|
||||
[self.diamondImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.bottom.mas_equalTo(self.coverDiamondView);
|
||||
make.top.mas_equalTo(self.coverDiamondView).offset(108);
|
||||
}];
|
||||
|
||||
[self.limitLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.mas_equalTo(self);
|
||||
make.top.mas_equalTo(self.diamondBGView.mas_bottom).offset(2);
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)createExtraGetFairyAtrribute:(NSInteger)value {
|
||||
NSString * valueStr = [NSString stringWithFormat:@"%ld", value];
|
||||
NSString * title = [NSString stringWithFormat:YMLocalizedString(@"XPTreasureFairyDrawView0"), valueStr];
|
||||
NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:10], NSForegroundColorAttributeName:[DJDKMIMOMColor colorWithHexString:@"#59FDFF"]}];
|
||||
[attribute addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor colorWithHexString:@"#FFE8AA"] range:[title rangeOfString:valueStr]];
|
||||
[attribute addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:12 weight:UIFontWeightMedium] range:[title rangeOfString:valueStr]];
|
||||
self.limitLabel.attributedText = attribute;
|
||||
self.limitLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
|
||||
- (void)createCurrentFairyValueAtrribute:(NSInteger)value {
|
||||
NSString * valueStr = [NSString stringWithFormat:@"%ld", value];
|
||||
NSString * title = [NSString stringWithFormat:YMLocalizedString(@"XPTreasureFairyDrawView1"), valueStr];
|
||||
NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:10], NSForegroundColorAttributeName:[UIColor whiteColor]}];
|
||||
[attribute addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor colorWithHexString:@"#FFE8AA"] range:[title rangeOfString:valueStr]];
|
||||
[attribute addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:12 weight:UIFontWeightMedium] range:[title rangeOfString:valueStr]];
|
||||
self.currentValueButton.attributedText = attribute;
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setKeyInfo:(TreasureFailyKeyInfoModel *)keyInfo {
|
||||
_keyInfo = keyInfo;
|
||||
if (_keyInfo) {
|
||||
[self createExtraGetFairyAtrribute:_keyInfo.needLuckyNum];
|
||||
[self createCurrentFairyValueAtrribute:_keyInfo.luckyNum];
|
||||
CGFloat kscale = 0;
|
||||
CGFloat total = (CGFloat)_keyInfo.needLuckyNum + (CGFloat)_keyInfo.luckyNum;
|
||||
if (_keyInfo.needLuckyNum > 0) {
|
||||
kscale = (CGFloat)_keyInfo.luckyNum / total;
|
||||
if (kscale > 1) {
|
||||
kscale = 1;
|
||||
}
|
||||
}
|
||||
[self.diamondImageView mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.coverDiamondView).offset(108 *(1 - kscale));
|
||||
}];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setFailyList:(NSArray *)failyList {
|
||||
_failyList = failyList;
|
||||
if (_failyList.count > 0) {
|
||||
for (int i = 0; i < _failyList.count; i++) {
|
||||
TreasureFairyInfoModel * info = [_failyList xpSafeObjectAtIndex:i];
|
||||
if (i < self.viewList.count) {
|
||||
XPTreasureFairyDrawSubView * view = [self.viewList xpSafeObjectAtIndex:i];
|
||||
view.info = info;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setRewardInfo:(TreasureFairyInfoModel *)rewardInfo {
|
||||
_rewardInfo = rewardInfo;
|
||||
if (_rewardInfo) {
|
||||
|
||||
for (int i = 0; i < self.failyList.count; i++) {
|
||||
TreasureFairyInfoModel * info = [_failyList xpSafeObjectAtIndex:i];
|
||||
if (info.itemIndex == _rewardInfo.itemIndex) {
|
||||
|
||||
self.rewardNumber = i;
|
||||
if (i > self.currentIndex) {
|
||||
self.rewardIndex = (i - self.currentIndex);
|
||||
} else {
|
||||
self.rewardIndex = (12 - self.currentIndex) + i +1;
|
||||
}
|
||||
if(self.rewardNumber > 11){
|
||||
self.rewardNumber = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-(void)rebrushAction{
|
||||
if(self.rebrushComletion){
|
||||
self.rebrushComletion();
|
||||
}
|
||||
CABasicAnimation *rotationAnimation;
|
||||
rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
|
||||
rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0 ];
|
||||
rotationAnimation.duration = 0.5;
|
||||
rotationAnimation.cumulative = YES;
|
||||
rotationAnimation.repeatCount = 1;
|
||||
[_rebrushBtn.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
|
||||
}
|
||||
- (XPTreasureFairyDrawSubView *)firstView {
|
||||
if (!_firstView) {
|
||||
_firstView = [[XPTreasureFairyDrawSubView alloc] init];
|
||||
_firstView.tag = 1001;
|
||||
}
|
||||
return _firstView;
|
||||
}
|
||||
|
||||
- (XPTreasureFairyDrawSubView *)secondView {
|
||||
if (!_secondView) {
|
||||
_secondView = [[XPTreasureFairyDrawSubView alloc] init];
|
||||
_secondView.tag = 1002;
|
||||
}
|
||||
return _secondView;
|
||||
}
|
||||
|
||||
|
||||
- (XPTreasureFairyDrawSubView *)thirdView {
|
||||
if (!_thirdView) {
|
||||
_thirdView = [[XPTreasureFairyDrawSubView alloc] init];
|
||||
_thirdView.tag = 1003;
|
||||
}
|
||||
return _thirdView;
|
||||
}
|
||||
|
||||
- (XPTreasureFairyDrawSubView *)fourthView {
|
||||
if (!_fourthView) {
|
||||
_fourthView = [[XPTreasureFairyDrawSubView alloc] init];
|
||||
_fourthView.tag = 1004;
|
||||
}
|
||||
return _fourthView;
|
||||
}
|
||||
|
||||
- (XPTreasureFairyDrawSubView *)fifView {
|
||||
if (!_fifView) {
|
||||
_fifView = [[XPTreasureFairyDrawSubView alloc] init];
|
||||
_fifView.tag = 1005;
|
||||
}
|
||||
return _fifView;
|
||||
}
|
||||
|
||||
- (XPTreasureFairyDrawSubView *)sixView {
|
||||
if (!_sixView) {
|
||||
_sixView = [[XPTreasureFairyDrawSubView alloc] init];
|
||||
_sixView.tag = 1006;
|
||||
}
|
||||
return _sixView;
|
||||
}
|
||||
|
||||
- (XPTreasureFairyDrawSubView *)sevenView {
|
||||
if (!_sevenView) {
|
||||
_sevenView = [[XPTreasureFairyDrawSubView alloc] init];
|
||||
_sevenView.tag = 1007;
|
||||
}
|
||||
return _sevenView;
|
||||
}
|
||||
|
||||
- (XPTreasureFairyDrawSubView *)eightView {
|
||||
if (!_eightView) {
|
||||
_eightView = [[XPTreasureFairyDrawSubView alloc] init];
|
||||
_eightView.tag = 1008;
|
||||
}
|
||||
return _eightView;
|
||||
}
|
||||
|
||||
- (XPTreasureFairyDrawSubView *)nineView {
|
||||
if (!_nineView) {
|
||||
_nineView = [[XPTreasureFairyDrawSubView alloc] init];
|
||||
_nineView.tag = 1009;
|
||||
}
|
||||
return _nineView;
|
||||
}
|
||||
|
||||
- (XPTreasureFairyDrawSubView *)tenView {
|
||||
if (!_tenView) {
|
||||
_tenView = [[XPTreasureFairyDrawSubView alloc] init];
|
||||
_tenView.tag = 1001;
|
||||
}
|
||||
return _tenView;
|
||||
}
|
||||
|
||||
|
||||
- (XPTreasureFairyDrawSubView *)elevenView {
|
||||
if (!_elevenView) {
|
||||
_elevenView = [[XPTreasureFairyDrawSubView alloc] init];
|
||||
_elevenView.tag = 1011;
|
||||
}
|
||||
return _elevenView;
|
||||
}
|
||||
|
||||
- (XPTreasureFairyDrawSubView *)twelveView {
|
||||
if (!_twelveView) {
|
||||
_twelveView = [[XPTreasureFairyDrawSubView alloc] init];
|
||||
_twelveView.tag = 1001;
|
||||
}
|
||||
return _twelveView;
|
||||
}
|
||||
|
||||
- (UIImageView *)coverImageView {
|
||||
if (!_coverImageView) {
|
||||
_coverImageView = [[UIImageView alloc] init];
|
||||
_coverImageView.userInteractionEnabled = YES;
|
||||
_coverImageView.image = [UIImage imageNamed:@"room_treasure_fairy_draw_cover"];
|
||||
}
|
||||
return _coverImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)currentValueButton {
|
||||
if (!_currentValueButton) {
|
||||
_currentValueButton = [UILabel new];
|
||||
|
||||
}
|
||||
return _currentValueButton;
|
||||
}
|
||||
- (UIImageView *)currentValueBgView{
|
||||
if(!_currentValueBgView){
|
||||
_currentValueBgView = [UIImageView new];
|
||||
_currentValueBgView.image = [UIImage imageNamed:@"room_treasure_fairy_draw_lucky_bg"];
|
||||
}
|
||||
return _currentValueBgView;
|
||||
}
|
||||
|
||||
- (UIImageView *)diamondImageView {
|
||||
if (!_diamondImageView) {
|
||||
_diamondImageView = [[UIImageView alloc] init];
|
||||
_diamondImageView.userInteractionEnabled = YES;
|
||||
_diamondImageView.image = [UIImage imageNamed:@"room_treasure_fairy_draw_diamond"];
|
||||
_diamondImageView.layer.masksToBounds = YES;
|
||||
_diamondBGView.layer.masksToBounds = YES;
|
||||
_diamondImageView.contentMode = UIViewContentModeBottom;
|
||||
}
|
||||
return _diamondImageView;
|
||||
}
|
||||
|
||||
- (UIImageView *)diamondBGView {
|
||||
if (!_diamondBGView) {
|
||||
_diamondBGView = [[UIImageView alloc] init];
|
||||
_diamondBGView.userInteractionEnabled = YES;
|
||||
_diamondBGView.image = [UIImage imageNamed:@"room_treasure_fairy_draw_diamond_bg"];
|
||||
_diamondBGView.layer.masksToBounds = YES;
|
||||
}
|
||||
return _diamondBGView;
|
||||
}
|
||||
|
||||
- (UIImageView *)coverDiamondView {
|
||||
if (!_coverDiamondView) {
|
||||
_coverDiamondView = [[UIImageView alloc] init];
|
||||
_coverDiamondView.userInteractionEnabled = YES;
|
||||
_coverDiamondView.image = [UIImage imageNamed:@"room_treasure_fairy_draw_diamond_cover"];
|
||||
}
|
||||
return _coverDiamondView;
|
||||
}
|
||||
|
||||
- (UILabel *)limitLabel {
|
||||
if (!_limitLabel) {
|
||||
_limitLabel = [[UILabel alloc] init];
|
||||
}
|
||||
return _limitLabel;
|
||||
}
|
||||
|
||||
- (UIButton *)rebrushBtn{
|
||||
if(!_rebrushBtn){
|
||||
_rebrushBtn = [UIButton new];
|
||||
[_rebrushBtn setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
|
||||
[_rebrushBtn setImage:kImage(@"room_treasure_fairy_draw_diamond_rebrush") forState:UIControlStateNormal];
|
||||
[_rebrushBtn addTarget:self action:@selector(rebrushAction) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _rebrushBtn;
|
||||
}
|
||||
|
||||
@end
|
@@ -1,19 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyExchangeView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/27.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class TreasureFairyUserInfoModel;
|
||||
@interface XPTreasureFairyExchangeView : UIView
|
||||
///房主的uid
|
||||
@property (nonatomic,strong) NSString *roomUid;
|
||||
///用户信息
|
||||
@property (nonatomic,strong) TreasureFairyUserInfoModel *userInfo;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,301 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyExchangeView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/27.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyExchangeView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
#import "NetImageView.h"
|
||||
|
||||
#import "Api+TreasureFairy.h"
|
||||
|
||||
#import "TTPopup.h"
|
||||
///View
|
||||
#import "XPTreasureFairyShopingExchangeCell.h"
|
||||
#import "XPTreasureFairyStoreResultSmallView.h"
|
||||
///Model
|
||||
#import "TreasureFairyFragmentModel.h"
|
||||
#import "TreasureFairyInfoModel.h"
|
||||
#import "TreasureFairyBallInfoModel.h"
|
||||
#import "TreasureFairyUserInfoModel.h"
|
||||
|
||||
|
||||
@interface XPTreasureFairyExchangeView ()<UICollectionViewDelegate, UICollectionViewDataSource, XPTreasureFairyShopingExchangeCellDelegate>
|
||||
|
||||
///列表
|
||||
@property (nonatomic,strong) UICollectionView *collectionView;
|
||||
///用户信息
|
||||
@property (nonatomic,strong) UIImageView *userImageView;
|
||||
///头像
|
||||
@property (nonatomic,strong) NetImageView *avatarImageView;
|
||||
///名字
|
||||
@property (nonatomic,strong) UILabel *nickLabel;
|
||||
///我的碎片
|
||||
@property (nonatomic,strong) UILabel *fragmentTextLabel;
|
||||
///碎片图片
|
||||
@property (nonatomic,strong) UIImageView *fragmentImageView;
|
||||
///碎片数量
|
||||
@property (nonatomic,strong) UILabel *fragmentNumLabel;
|
||||
|
||||
/// 碎片列表
|
||||
@property (nonatomic,strong) NSMutableArray <TreasureFairyFragmentModel *>*fragmentArray;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation XPTreasureFairyExchangeView
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
[self initHttpRequest];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
[self addSubview:self.collectionView];
|
||||
[self addSubview:self.userImageView];
|
||||
[self.userImageView addSubview:self.avatarImageView];
|
||||
[self.userImageView addSubview:self.nickLabel];
|
||||
[self.userImageView addSubview:self.fragmentTextLabel];
|
||||
[self.userImageView addSubview:self.fragmentImageView];
|
||||
[self.userImageView addSubview:self.fragmentNumLabel];
|
||||
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self);
|
||||
}];
|
||||
|
||||
CGFloat kuserScale = 78 / 375.0;
|
||||
[self.userImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(KScreenWidth, KScreenWidth * kuserScale));
|
||||
make.bottom.mas_equalTo(self);
|
||||
make.centerX.mas_equalTo(self);
|
||||
}];
|
||||
|
||||
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(44, 44));
|
||||
make.leading.mas_equalTo(self.userImageView).offset(15);
|
||||
make.top.mas_equalTo(self.userImageView).offset(11 * kScreenScale);
|
||||
}];
|
||||
|
||||
[self.nickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(self.avatarImageView.mas_trailing).offset(2);
|
||||
make.centerY.mas_equalTo(self.avatarImageView);
|
||||
}];
|
||||
|
||||
[self.fragmentNumLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.trailing.mas_equalTo(-15);
|
||||
make.centerY.mas_equalTo(self.avatarImageView);
|
||||
}];
|
||||
|
||||
[self.fragmentImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.trailing.mas_equalTo(self.fragmentNumLabel.mas_leading).offset(-4);
|
||||
make.centerY.mas_equalTo(self.avatarImageView);
|
||||
make.size.mas_equalTo(CGSizeMake(24, 24));
|
||||
}];
|
||||
|
||||
[self.fragmentTextLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.trailing.mas_equalTo(self.fragmentImageView.mas_leading).offset(-2);
|
||||
make.centerY.mas_equalTo(self.avatarImageView);
|
||||
}];
|
||||
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initHttpRequest {
|
||||
[self getFragmentExchangeList];
|
||||
[self getMyBallList];
|
||||
}
|
||||
|
||||
- (void)getFragmentExchangeList {
|
||||
// 兑换列表
|
||||
[Api treasureFailyFragmentExchangeList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
if (code == 200) {
|
||||
NSArray * fragmentList = [TreasureFairyFragmentModel modelsWithArray:data.data];
|
||||
[self.fragmentArray removeAllObjects];
|
||||
[self.fragmentArray addObjectsFromArray:fragmentList];
|
||||
[self.collectionView reloadData];
|
||||
} else {
|
||||
[XNDJTDDLoadingTool showErrorWithMessage:msg];
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)extracted {
|
||||
[Api treasureFairyMyBallList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
if (code == 200) {
|
||||
TreasureFairyBallInfoModel * info = [TreasureFairyBallInfoModel modelWithDictionary:data.data];
|
||||
self.fragmentNumLabel.text = [NSString stringWithFormat:@"%ld",info.chipNum];
|
||||
} else {
|
||||
[XNDJTDDLoadingTool showErrorWithMessage:msg];
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)getMyBallList {
|
||||
// 我的碎片
|
||||
[self extracted];
|
||||
}
|
||||
|
||||
#pragma mark - UICollectionViewDelegate, UICollectionViewDataSource
|
||||
|
||||
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
|
||||
return self.fragmentArray.count;
|
||||
}
|
||||
|
||||
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
|
||||
XPTreasureFairyShopingExchangeCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([XPTreasureFairyShopingExchangeCell class]) forIndexPath:indexPath];
|
||||
TreasureFairyFragmentModel *model = self.fragmentArray[indexPath.row];
|
||||
cell.fragmemtModel = model;
|
||||
cell.delegate = self;
|
||||
return cell;
|
||||
}
|
||||
|
||||
#pragma mark - XPTreasureFairyShopingExchangeCellDelegate
|
||||
|
||||
- (void)treasureFairyShopingExchangeAction:(TreasureFairyFragmentModel *)fragmentModel {
|
||||
if (fragmentModel.itemId > 0) {
|
||||
TTAlertConfig * config = [[TTAlertConfig alloc] init];
|
||||
config.title = @"";
|
||||
NSString * untils;
|
||||
if ([fragmentModel.rewardType isEqualToString:@"gift"]) {
|
||||
untils = [NSString stringWithFormat:@"%@%@", fragmentModel.rewardShowValue, YMLocalizedString(@"XPTreasureFairyExchangeView0")];
|
||||
|
||||
} else {
|
||||
untils = [NSString stringWithFormat:@"%ld%@", fragmentModel.rewardNum, fragmentModel.rewardUnit];
|
||||
}
|
||||
config.title = YMLocalizedString(@"XPTreasureFairyExchangeView1");
|
||||
config.confirmButtonConfig.title = YMLocalizedString(@"XPTreasureFairyExchangeView2");
|
||||
config.message = [NSString stringWithFormat:YMLocalizedString(@"XPTreasureFairyExchangeView3"), fragmentModel.rewardName, untils];
|
||||
[TTPopup alertWithConfig:config confirmHandler:^{
|
||||
[Api treasureFailyConvert:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
if (code == 200) {
|
||||
[XNDJTDDLoadingTool showSuccessWithMessage:YMLocalizedString(@"XPTreasureFairyExchangeView4")];
|
||||
///刷新我的碎片
|
||||
[self getMyBallList];
|
||||
[[NSNotificationCenter defaultCenter]postNotificationName:@"kRefreshRaidersTrialCoupon" object:nil];
|
||||
} else {
|
||||
[XNDJTDDLoadingTool showErrorWithMessage:msg];
|
||||
}
|
||||
} itemId:[NSString stringWithFormat:@"%ld", fragmentModel.itemId] roomUid:self.roomUid propIdStr:@"" propNumStr:@""];
|
||||
} cancelHandler:^{
|
||||
|
||||
}];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setUserInfo:(TreasureFairyUserInfoModel *)userInfo {
|
||||
_userInfo = userInfo;
|
||||
self.avatarImageView.imageUrl = userInfo.avatar;
|
||||
NSString * nick = userInfo.nick;
|
||||
if (nick.length > 6) {
|
||||
nick = [NSString stringWithFormat:@"%@…", [nick substringToIndex:6]];
|
||||
}
|
||||
self.nickLabel.text = nick;
|
||||
}
|
||||
|
||||
|
||||
- (UICollectionView *)collectionView {
|
||||
if (!_collectionView) {
|
||||
MSBaseRTLFlowLayout *layout = [[MSBaseRTLFlowLayout alloc] init];
|
||||
layout.scrollDirection = UICollectionViewScrollDirectionVertical;
|
||||
CGFloat scale = 234.0/165.0;
|
||||
CGFloat space = 15.0;
|
||||
CGFloat itemWidth = (KScreenWidth - space*3)/2;
|
||||
|
||||
|
||||
layout.itemSize = CGSizeMake(165.0, 234.0);
|
||||
layout.minimumInteritemSpacing = space;
|
||||
layout.minimumLineSpacing = space;
|
||||
|
||||
_collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
|
||||
_collectionView.backgroundColor = UIColor.clearColor;
|
||||
_collectionView.delegate = self;
|
||||
_collectionView.dataSource = self;
|
||||
CGFloat kuserScale = 91.0 / 375.0;
|
||||
CGFloat insetsBottom = KScreenWidth * kuserScale;
|
||||
_collectionView.contentInset = UIEdgeInsetsMake(0, space, insetsBottom, space);
|
||||
[_collectionView registerClass:[XPTreasureFairyShopingExchangeCell class] forCellWithReuseIdentifier:NSStringFromClass([XPTreasureFairyShopingExchangeCell class])];
|
||||
}
|
||||
return _collectionView;
|
||||
}
|
||||
|
||||
- (UIImageView *)userImageView {
|
||||
if (!_userImageView) {
|
||||
_userImageView = [[UIImageView alloc] init];
|
||||
_userImageView.userInteractionEnabled = YES;
|
||||
_userImageView.image = [UIImage imageNamed:@"room_treasure_fairy_new_userinfo_bg"];
|
||||
}
|
||||
return _userImageView;
|
||||
}
|
||||
- (NetImageView *)avatarImageView {
|
||||
if (!_avatarImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_avatarImageView.layer.masksToBounds = YES;
|
||||
_avatarImageView.layer.cornerRadius = 44/2;
|
||||
_avatarImageView.layer.borderColor = [DJDKMIMOMColor appMainColor].CGColor;
|
||||
}
|
||||
return _avatarImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)nickLabel {
|
||||
if (!_nickLabel) {
|
||||
_nickLabel = [[UILabel alloc] init];
|
||||
_nickLabel.font = [UIFont systemFontOfSize:13];
|
||||
_nickLabel.textColor = [UIColor whiteColor];
|
||||
_nickLabel.text = YMLocalizedString(@"XPTreasureFairyExchangeView5");
|
||||
}
|
||||
return _nickLabel;
|
||||
}
|
||||
|
||||
- (UILabel *)fragmentTextLabel {
|
||||
if (!_fragmentTextLabel) {
|
||||
_fragmentTextLabel = [[UILabel alloc] init];
|
||||
_fragmentTextLabel.font = [UIFont systemFontOfSize:12];
|
||||
_fragmentTextLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#1F5764"];
|
||||
_fragmentTextLabel.text = YMLocalizedString(@"XPTreasureFairyExchangeView6");
|
||||
}
|
||||
return _fragmentTextLabel;
|
||||
}
|
||||
|
||||
- (UIImageView *)fragmentImageView {
|
||||
if (!_fragmentImageView) {
|
||||
_fragmentImageView = [[UIImageView alloc] init];
|
||||
_fragmentImageView.image = [UIImage imageNamed:@"room_treasure_fairy_shop_fragment"];
|
||||
}
|
||||
return _fragmentImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)fragmentNumLabel {
|
||||
if (!_fragmentNumLabel) {
|
||||
_fragmentNumLabel = [[UILabel alloc] init];
|
||||
_fragmentNumLabel.font = [UIFont systemFontOfSize:12];
|
||||
_fragmentNumLabel.textColor = [UIColor whiteColor];
|
||||
_fragmentNumLabel.text = @"0";
|
||||
}
|
||||
return _fragmentNumLabel;
|
||||
}
|
||||
|
||||
- (NSMutableArray<TreasureFairyFragmentModel *> *)fragmentArray {
|
||||
if (!_fragmentArray) {
|
||||
_fragmentArray = [NSMutableArray array];
|
||||
}
|
||||
return _fragmentArray;
|
||||
}
|
||||
|
||||
@end
|
@@ -1,24 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyFriendView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/23.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class TreasureFairyBallModel, XPTreasureFairyFriendView;
|
||||
@protocol XPTreasureFairyFriendViewDelegate <NSObject>
|
||||
|
||||
- (void)treasureFairyFriendFinish:(XPTreasureFairyFriendView *)view;
|
||||
|
||||
@end
|
||||
@interface XPTreasureFairyFriendView : UIView
|
||||
@property (nonatomic,assign) BOOL isSend;
|
||||
@property (nonatomic,strong) TreasureFairyBallModel *ballInfo;
|
||||
///代理
|
||||
@property (nonatomic,weak) id<XPTreasureFairyFriendViewDelegate> delegate;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,315 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyFriendView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/23.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyFriendView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
|
||||
#import "Api+TreasureFairy.h"
|
||||
#import "NSArray+Safe.h"
|
||||
#import "TTPopup.h"
|
||||
|
||||
///Model
|
||||
#import "UserInfoModel.h"
|
||||
#import "TreasureFairyBallInfoModel.h"
|
||||
///View
|
||||
#import "XPTreasureFairyFriendCell.h"
|
||||
#import "XPTreasureFairySendView.h"
|
||||
|
||||
@interface XPTreasureFairyFriendView ()<UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate>
|
||||
///返回按钮
|
||||
@property (nonatomic,strong) UIButton *backButton;
|
||||
///消失
|
||||
@property (nonatomic,strong) UIView *dismissView;
|
||||
///背景
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///显示标题
|
||||
@property (nonatomic,strong) UIImageView *titleImageView;
|
||||
///标题
|
||||
@property (nonatomic,strong) UILabel *titleLabel;
|
||||
///搜索
|
||||
@property (nonatomic,strong) UIView *searchView;
|
||||
///输入框
|
||||
@property (nonatomic,strong) MSBaseTextField *searchTextField;
|
||||
///列表
|
||||
@property (nonatomic,strong) UITableView *tableView;
|
||||
///点击消失键盘
|
||||
@property (nonatomic,strong) UIButton *actionButton;
|
||||
///好友
|
||||
@property (nonatomic,strong) NSArray *friendList;
|
||||
///原始数据
|
||||
@property (nonatomic,strong) NSArray *originList;
|
||||
@end
|
||||
|
||||
|
||||
@implementation XPTreasureFairyFriendView
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self getMyFriendList];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)getMyFriendList {
|
||||
[Api treasureFairyFansFriendList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
if (code == 200) {
|
||||
NSArray * array = [UserInfoModel modelsWithArray:data.data];
|
||||
self.friendList = array;
|
||||
self.originList = array;
|
||||
[self.tableView reloadData];
|
||||
} else {
|
||||
[XNDJTDDLoadingTool showErrorWithMessage:msg];
|
||||
}
|
||||
} nick:@""];
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
[self addSubview:self.dismissView];
|
||||
[self addSubview:self.backImageView];
|
||||
[self addSubview:self.titleImageView];
|
||||
[self addSubview:self.actionButton];
|
||||
[self addSubview:self.backButton];
|
||||
[self.backImageView addSubview:self.searchView];
|
||||
[self.backImageView addSubview:self.tableView];
|
||||
|
||||
[self.searchView addSubview:self.searchTextField];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
CGFloat kscale = 580.0 / 375.0;
|
||||
[self.dismissView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.top.mas_equalTo(self);
|
||||
make.bottom.mas_equalTo(self.backImageView.mas_top);
|
||||
}];
|
||||
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.bottom.mas_equalTo(self);
|
||||
make.height.mas_equalTo(KScreenWidth * kscale);
|
||||
}];
|
||||
|
||||
[self.titleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(180, 18));
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
make.top.mas_equalTo(self.backImageView).offset(60* kScreenScale);
|
||||
}];
|
||||
|
||||
[self.backButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(28, 28));
|
||||
make.leading.mas_equalTo(self.backImageView).offset(15);
|
||||
make.top.mas_equalTo(self.backImageView).offset(40 * kScreenScale);
|
||||
}];
|
||||
|
||||
[self.searchView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.backImageView).inset(15);
|
||||
make.height.mas_equalTo(32);
|
||||
make.top.mas_equalTo(self.backImageView).offset(103 * kScreenScale);
|
||||
}];
|
||||
|
||||
[self.searchTextField mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(self.searchView).offset(15);
|
||||
make.trailing.mas_equalTo(self.searchView).offset(-15);
|
||||
make.top.bottom.mas_equalTo(self.searchView);
|
||||
}];
|
||||
|
||||
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.backImageView);
|
||||
make.top.mas_equalTo(self.searchView.mas_bottom).offset(13);
|
||||
make.bottom.mas_equalTo(self.backImageView).offset(-10);
|
||||
}];
|
||||
|
||||
[self.actionButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(self.backImageView).offset(40);
|
||||
make.top.trailing.mas_equalTo(self.backImageView);
|
||||
make.bottom.mas_equalTo(self.searchView.mas_top);
|
||||
}];
|
||||
}
|
||||
#pragma mark - UITableViewDelegate And UITableViewDataSource
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
||||
return self.friendList.count;
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
return 65;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
XPTreasureFairyFriendCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPTreasureFairyFriendCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPTreasureFairyFriendCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPTreasureFairyFriendCell class])];
|
||||
}
|
||||
UserInfoModel * info = [self.friendList xpSafeObjectAtIndex:indexPath.row];
|
||||
cell.userInfo = info;
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
||||
[self.searchTextField resignFirstResponder];
|
||||
if (self.friendList.count> 0) {
|
||||
UserInfoModel * info = [self.friendList xpSafeObjectAtIndex:indexPath.row];
|
||||
XPTreasureFairySendView * sendView = [[XPTreasureFairySendView alloc] init];
|
||||
self.ballInfo.nick = info.nick;
|
||||
self.ballInfo.uid = info.uid;
|
||||
sendView.isSend = self.isSend;
|
||||
sendView.ballInfo = self.ballInfo;
|
||||
[TTPopup popupView:sendView style:TTPopupStyleActionSheet];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Event Response
|
||||
- (void)dismissRecognizer {
|
||||
[self.searchTextField resignFirstResponder];
|
||||
[UIView animateWithDuration:0.3 animations:^{
|
||||
CGRect rect = self.frame;
|
||||
rect.origin.y = KScreenHeight;
|
||||
self.frame = rect;
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(treasureFairyFriendFinish:)]) {
|
||||
[self.delegate treasureFairyFriendFinish:self];
|
||||
}
|
||||
} completion:^(BOOL finished) {
|
||||
[self removeFromSuperview];
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)resignFirstResponse {
|
||||
self.friendList = self.originList;
|
||||
[self.tableView reloadData];
|
||||
[self.searchTextField resignFirstResponder];
|
||||
}
|
||||
|
||||
- (void)textFieldDidChange:(UITextField *)textField {
|
||||
if (textField.text.length == 0) {
|
||||
self.friendList = self.originList;
|
||||
[self.tableView reloadData];
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
|
||||
NSString *searchStr = textField.text;
|
||||
if (searchStr.length >= 0) {
|
||||
[Api treasureFairyFansFriendList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
if (code == 200) {
|
||||
NSArray * array = [UserInfoModel modelsWithArray:data.data];
|
||||
self.friendList = array;
|
||||
[self.tableView reloadData];
|
||||
} else {
|
||||
[XNDJTDDLoadingTool showErrorWithMessage:msg];
|
||||
}
|
||||
} nick:searchStr];
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
#pragma mark - Getters And Setters
|
||||
- (UIButton *)backButton {
|
||||
if (!_backButton) {
|
||||
_backButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_backButton setImage:[[UIImage imageNamed:@"room_treasure_fairy_back"]ms_SetImageForRTL] forState:UIControlStateNormal];
|
||||
[_backButton setImage:[[UIImage imageNamed:@"room_treasure_fairy_back"]ms_SetImageForRTL] forState:UIControlStateSelected];
|
||||
[_backButton addTarget:self action:@selector(dismissRecognizer) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _backButton;
|
||||
}
|
||||
|
||||
- (UIView *)dismissView {
|
||||
if (!_dismissView) {
|
||||
_dismissView = [[UIView alloc] init];
|
||||
_dismissView.backgroundColor = [UIColor clearColor];
|
||||
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissRecognizer)];
|
||||
[_dismissView addGestureRecognizer:tap];
|
||||
}
|
||||
return _dismissView;
|
||||
}
|
||||
|
||||
- (UIImageView *)titleImageView {
|
||||
if (!_titleImageView) {
|
||||
_titleImageView = [[UIImageView alloc] init];
|
||||
_titleImageView.userInteractionEnabled = YES;
|
||||
_titleImageView.image = [UIImage getLanguageImage:@"room_treasure_my_friend_title"];
|
||||
}
|
||||
return _titleImageView;
|
||||
}
|
||||
|
||||
- (UIImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.userInteractionEnabled = YES;
|
||||
_backImageView.image = [UIImage imageNamed:@"room_treasure_fairy_my_friend_bg"];
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)titleLabel {
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] init];
|
||||
_titleLabel.font = [UIFont systemFontOfSize:17];
|
||||
_titleLabel.textColor = [DJDKMIMOMColor mainTextColor];
|
||||
_titleLabel.text = YMLocalizedString(@"XPTreasureFairyFriendView0");
|
||||
_titleLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _titleLabel;
|
||||
}
|
||||
|
||||
- (UIView *)searchView {
|
||||
if (!_searchView) {
|
||||
_searchView = [[UIView alloc] init];
|
||||
_searchView.backgroundColor = [DJDKMIMOMColor colorWithHexString:@"#066A6E"];
|
||||
_searchView.layer.masksToBounds = YES;
|
||||
_searchView.layer.cornerRadius = 16;
|
||||
}
|
||||
return _searchView;
|
||||
}
|
||||
|
||||
- (MSBaseTextField *)searchTextField {
|
||||
if (!_searchTextField) {
|
||||
_searchTextField = [[MSBaseTextField alloc] init];
|
||||
_searchTextField.layer.cornerRadius = 12;
|
||||
_searchTextField.layer.masksToBounds = YES;
|
||||
_searchTextField.tintColor = [DJDKMIMOMColor colorWithHexString:@"#59FDFF"];
|
||||
_searchTextField.textColor = [DJDKMIMOMColor colorWithHexString:@"#59FDFF"];
|
||||
_searchTextField.backgroundColor = [UIColor clearColor];
|
||||
_searchTextField.font = [UIFont systemFontOfSize:13];
|
||||
_searchTextField.delegate = self;
|
||||
NSString *placeholder = YMLocalizedString(@"XPTreasureFairyFriendView1");
|
||||
_searchTextField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:placeholder attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:12], NSForegroundColorAttributeName : [DJDKMIMOMColor colorWithHexString:@"#59FDFF"]}];
|
||||
_searchTextField.clearButtonMode = UITextFieldViewModeWhileEditing;
|
||||
_searchTextField.returnKeyType = UIReturnKeySearch;
|
||||
_searchTextField.enablesReturnKeyAutomatically = YES;
|
||||
[_searchTextField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
|
||||
}
|
||||
return _searchTextField;
|
||||
}
|
||||
|
||||
- (UITableView *)tableView {
|
||||
if (!_tableView) {
|
||||
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
|
||||
_tableView.delegate = self;
|
||||
_tableView.dataSource = self;
|
||||
_tableView.tableFooterView = [UIView new];
|
||||
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
||||
_tableView.backgroundColor = [UIColor clearColor];
|
||||
if (@available(iOS 11.0, *)) {
|
||||
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
|
||||
}
|
||||
[_tableView registerClass:[XPTreasureFairyFriendCell class] forCellReuseIdentifier:NSStringFromClass([XPTreasureFairyFriendCell class])];
|
||||
}
|
||||
return _tableView;
|
||||
}
|
||||
- (UIButton *)actionButton {
|
||||
if (!_actionButton) {
|
||||
_actionButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_actionButton addTarget:self action:@selector(resignFirstResponse) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _actionButton;
|
||||
}
|
||||
@end
|
@@ -1,18 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyMessageSendView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/23.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class ContentTreasureFairyModel;
|
||||
typedef void(^SendCompletion)(BOOL success,ContentTreasureFairyModel *fairyInfo);
|
||||
@interface XPTreasureFairyMessageSendView : UIView
|
||||
@property (nonatomic,copy) SendCompletion finish;
|
||||
@property (nonatomic,strong) ContentTreasureFairyModel *fairyInfo;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,185 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyMessageSendView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/23.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyMessageSendView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
#import "NetImageView.h"
|
||||
#import "TTPopup.h"
|
||||
|
||||
#import "Api+TreasureFairy.h"
|
||||
|
||||
///Model
|
||||
#import "ContentTreasureFairyModel.h"
|
||||
|
||||
@interface XPTreasureFairyMessageSendView ()
|
||||
///背景
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///显示标题
|
||||
@property (nonatomic,strong) UILabel *titleLabel;
|
||||
///精灵球
|
||||
@property (nonatomic,strong) NetImageView *ballView;
|
||||
///取消
|
||||
@property (nonatomic,strong) UIButton *cancleButton;
|
||||
///确定
|
||||
@property (nonatomic,strong) UIButton *sureButton;
|
||||
|
||||
@end
|
||||
|
||||
@implementation XPTreasureFairyMessageSendView
|
||||
|
||||
- (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.backImageView];
|
||||
|
||||
[self.backImageView addSubview:self.titleLabel];
|
||||
[self.backImageView addSubview:self.ballView];
|
||||
[self.backImageView addSubview:self.sureButton];
|
||||
[self.backImageView addSubview:self.cancleButton];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
self.frame = CGRectMake(0, 0, 281, 285);
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(281, 285));
|
||||
make.centerX.mas_equalTo(self);
|
||||
make.top.mas_equalTo(self);
|
||||
}];
|
||||
|
||||
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.backImageView).inset(30);
|
||||
make.top.mas_equalTo(self.backImageView).offset(45);
|
||||
}];
|
||||
|
||||
[self.ballView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(90, 90));
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(19);
|
||||
}];
|
||||
|
||||
[self.cancleButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(104, 32));
|
||||
make.top.mas_equalTo(self.ballView.mas_bottom).offset(15);
|
||||
make.trailing.mas_equalTo(self.backImageView.mas_centerX).offset(-12);
|
||||
}];
|
||||
|
||||
[self.sureButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.centerY.mas_equalTo(self.cancleButton);
|
||||
make.leading.mas_equalTo(self.backImageView.mas_centerX).offset(12);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - Event Response
|
||||
- (void)cancleButtonAction:(UIButton *)sender {
|
||||
[TTPopup dismiss];
|
||||
}
|
||||
|
||||
- (void)sureButtonAction:(UIButton *)sender {
|
||||
[TTPopup dismiss];
|
||||
if (self.fairyInfo.elfId.integerValue > 0 && self.fairyInfo.uid.integerValue > 0) {
|
||||
NSString * elfId = self.fairyInfo.elfId;
|
||||
NSString * uid = self.fairyInfo.uid;
|
||||
[Api treasureFairySendFairyBall:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
if (code == 200) {
|
||||
if (self.finish) {
|
||||
self.finish(YES,self.fairyInfo);
|
||||
}
|
||||
[XNDJTDDLoadingTool showSuccessWithMessage:YMLocalizedString(@"XPTreasureFairyMessageSendView0")];
|
||||
} else {
|
||||
[XNDJTDDLoadingTool showErrorWithMessage:msg];
|
||||
}
|
||||
} elfId:elfId targetUid:uid];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)dismissRecognizer {
|
||||
[TTPopup dismiss];
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setFairyInfo:(ContentTreasureFairyModel *)fairyInfo {
|
||||
_fairyInfo = fairyInfo;
|
||||
if (_fairyInfo) {
|
||||
self.ballView.imageUrl = _fairyInfo.elfPicUrl;
|
||||
NSString * nick = _fairyInfo.nick;
|
||||
NSString * title = [NSString stringWithFormat:YMLocalizedString(@"XPTreasureFairyMessageSendView1"), nick, _fairyInfo.elfName];
|
||||
NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15], NSForegroundColorAttributeName:[UIColor whiteColor]}];
|
||||
[attribute addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor colorWithHexString:@"#FEF8AA"] range:[title rangeOfString:nick]];
|
||||
self.titleLabel.attributedText = attribute;
|
||||
self.titleLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
}
|
||||
|
||||
- (UIImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.userInteractionEnabled = YES;
|
||||
_backImageView.image = [UIImage imageNamed:@"room_treasure_fairy_my_send_record_bg"];
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
|
||||
- (NetImageView *)ballView {
|
||||
if (!_ballView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_ballView = [[NetImageView alloc] initWithConfig:config];
|
||||
_ballView.layer.masksToBounds = YES;
|
||||
_ballView.layer.cornerRadius = 45;
|
||||
_ballView.layer.borderColor = [DJDKMIMOMColor appMainColor].CGColor;
|
||||
_ballView.layer.borderWidth = 0.5;
|
||||
}
|
||||
return _ballView;
|
||||
}
|
||||
|
||||
- (UILabel *)titleLabel {
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] init];
|
||||
_titleLabel.numberOfLines = 0;
|
||||
}
|
||||
return _titleLabel;
|
||||
}
|
||||
|
||||
- (UIButton *)cancleButton {
|
||||
if (!_cancleButton) {
|
||||
_cancleButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_cancleButton setTitle:YMLocalizedString(@"XPTreasureFairyMessageSendView2") forState:UIControlStateNormal];
|
||||
[_cancleButton setTitleColor:[DJDKMIMOMColor colorWithHexString:@"#008573"] forState:UIControlStateNormal];
|
||||
_cancleButton.titleLabel.font = [UIFont systemFontOfSize:13];
|
||||
[_cancleButton setBackgroundImage:[UIImage imageNamed:@"room_treasure_fairy_store_result_close_bg"] forState:UIControlStateNormal];
|
||||
_cancleButton.layer.masksToBounds = YES;
|
||||
_cancleButton.layer.cornerRadius = 10;
|
||||
[_cancleButton addTarget:self action:@selector(cancleButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _cancleButton;
|
||||
}
|
||||
|
||||
- (UIButton *)sureButton {
|
||||
if (!_sureButton) {
|
||||
_sureButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_sureButton setTitleColor:[DJDKMIMOMColor colorWithHexString:@"#8A4801"] forState:UIControlStateNormal];
|
||||
_sureButton.titleLabel.font = [UIFont systemFontOfSize:13];
|
||||
[_sureButton setTitle:YMLocalizedString(@"XPTreasureFairyMessageSendView3") forState:UIControlStateNormal];
|
||||
[_sureButton setBackgroundImage:[UIImage imageNamed:@"room_treasure_fairy_sure_bg"] forState:UIControlStateNormal];
|
||||
_sureButton.layer.masksToBounds = YES;
|
||||
_sureButton.layer.cornerRadius = 10;
|
||||
[_sureButton addTarget:self action:@selector(sureButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _sureButton;
|
||||
}
|
||||
@end
|
@@ -1,31 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyMoreView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/21.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
typedef NS_ENUM(NSInteger, TreasureFairyMoreType) {
|
||||
TreasureFairyMoreType_Rule = 1,
|
||||
///记录
|
||||
TreasureFairyMoreType_Record,
|
||||
///达人
|
||||
TreasureFairyMoreType_Expet
|
||||
};
|
||||
@class XPTreasureFairyMoreView;
|
||||
@protocol XPTreasureFairyMoreViewDelegate <NSObject>
|
||||
|
||||
- (void)xPTreasureFairyMoreView:(XPTreasureFairyMoreView *)view didClickButton:(TreasureFairyMoreType)type;
|
||||
|
||||
@end
|
||||
|
||||
@interface XPTreasureFairyMoreView : UIView
|
||||
///代理
|
||||
@property (nonatomic,weak) id<XPTreasureFairyMoreViewDelegate> delegate;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,133 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyMoreView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/21.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyMoreView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
|
||||
@interface XPTreasureFairyMoreView ()
|
||||
|
||||
///背景
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///规则
|
||||
@property (nonatomic,strong) UIButton *ruleButton;
|
||||
///记录
|
||||
@property (nonatomic,strong) UIButton *recordButton;
|
||||
///达人
|
||||
@property (nonatomic,strong) UIButton *expetButton;
|
||||
|
||||
@end
|
||||
|
||||
@implementation XPTreasureFairyMoreView
|
||||
|
||||
|
||||
- (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.backImageView];
|
||||
[self.backImageView addSubview:self.ruleButton];
|
||||
[self.backImageView addSubview:self.recordButton];
|
||||
[self.backImageView addSubview:self.expetButton];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self);
|
||||
}];
|
||||
|
||||
[self.ruleButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.backImageView);
|
||||
make.height.mas_equalTo(30);
|
||||
make.top.mas_equalTo(self.backImageView).offset(25);
|
||||
}];
|
||||
|
||||
[self.recordButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.backImageView);
|
||||
make.height.mas_equalTo(self.recordButton);
|
||||
make.top.mas_equalTo(self.ruleButton.mas_bottom).offset(3);
|
||||
}];
|
||||
|
||||
[self.expetButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.backImageView);
|
||||
make.height.mas_equalTo(self.recordButton);
|
||||
make.top.mas_equalTo(self.recordButton.mas_bottom).offset(3);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - Event Response
|
||||
- (void)ruleButtonAction:(UIButton *)sender {
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPTreasureFairyMoreView:didClickButton:)]) {
|
||||
[self.delegate xPTreasureFairyMoreView:self didClickButton:TreasureFairyMoreType_Rule];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)expetButtonAction:(UIButton *)sender {
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPTreasureFairyMoreView:didClickButton:)]) {
|
||||
[self.delegate xPTreasureFairyMoreView:self didClickButton:TreasureFairyMoreType_Expet];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)recordButtonAction:(UIButton *)sender {
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPTreasureFairyMoreView:didClickButton:)]) {
|
||||
[self.delegate xPTreasureFairyMoreView:self didClickButton:TreasureFairyMoreType_Record];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (UIImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.userInteractionEnabled = YES;
|
||||
_backImageView.image = [UIImage imageNamed:@"room_treasure_fairy_more_title_bg"];
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
|
||||
- (UIButton *)ruleButton {
|
||||
if (!_ruleButton) {
|
||||
_ruleButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_ruleButton setTitle:YMLocalizedString(@"XPTreasureFairyMoreView0") forState:UIControlStateNormal];
|
||||
[_ruleButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||||
_ruleButton.titleLabel.font = [UIFont systemFontOfSize:13];
|
||||
[_ruleButton addTarget:self action:@selector(ruleButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _ruleButton;
|
||||
}
|
||||
|
||||
- (UIButton *)expetButton {
|
||||
if (!_expetButton) {
|
||||
_expetButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_expetButton setTitle:YMLocalizedString(@"XPTreasureFairyMoreView1") forState:UIControlStateNormal];
|
||||
[_expetButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||||
_expetButton.titleLabel.font = [UIFont systemFontOfSize:13];
|
||||
[_expetButton addTarget:self action:@selector(expetButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _expetButton;
|
||||
}
|
||||
|
||||
- (UIButton *)recordButton {
|
||||
if (!_recordButton) {
|
||||
_recordButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_recordButton setTitle:YMLocalizedString(@"XPTreasureFairyMoreView2") forState:UIControlStateNormal];
|
||||
[_recordButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||||
_recordButton.titleLabel.font = [UIFont systemFontOfSize:13];
|
||||
[_recordButton addTarget:self action:@selector(recordButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _recordButton;
|
||||
}
|
||||
|
||||
@end
|
@@ -1,20 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyMyView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/22.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "TreasureFailyKeyInfoModel.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
typedef void(^CloseViewAction)(void);
|
||||
|
||||
@interface XPTreasureFairyMyView : UIView
|
||||
///用户信息
|
||||
@property (nonatomic,strong) TreasureFailyKeyInfoModel *keyInfo;
|
||||
@property(nonatomic,copy) CloseViewAction closeViewAction;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,387 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyMyView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/22.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyMyView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
#import "XPTreasureFairyTrialsView.h"
|
||||
|
||||
#import "Api+TreasureFairy.h"
|
||||
|
||||
#import "TTPopup.h"
|
||||
///Model
|
||||
#import "TreasureFairyBallInfoModel.h"
|
||||
///View
|
||||
#import "XPTreasureFairyBallContentView.h"
|
||||
#import "XPTreasureFairySendRecordView.h"
|
||||
#import "XPTreasureFairyFriendView.h"
|
||||
@interface XPTreasureFairyMyView ()<XPTreasureFairyBallContentViewDelegate, XPTreasureFairyFriendViewDelegate>
|
||||
///返回按钮
|
||||
@property (nonatomic,strong) UIButton *backButton;
|
||||
///消失
|
||||
@property (nonatomic,strong) UIView *dismissView;
|
||||
///背景
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///显示标题
|
||||
@property (nonatomic,strong) UIImageView *titleImageView;
|
||||
///提示
|
||||
@property (nonatomic,strong) UIImageView *tipsImageView;
|
||||
///记录
|
||||
@property (nonatomic,strong) UIButton *recordButton;
|
||||
///分段控制器
|
||||
@property (nonatomic,strong) UIImageView *segmentView;
|
||||
///低级
|
||||
@property (nonatomic,strong) UIButton *lowButton;
|
||||
///高级
|
||||
@property (nonatomic,strong) UIButton *highButton;
|
||||
///低级的球
|
||||
@property (nonatomic,strong) XPTreasureFairyBallContentView *lowView;
|
||||
///高级的球
|
||||
@property (nonatomic,strong) XPTreasureFairyBallContentView *highView;
|
||||
///精灵信息
|
||||
@property (nonatomic,strong) TreasureFairyBallInfoModel *ballInfo;
|
||||
///精灵历练
|
||||
@property (nonatomic,strong) UIButton *fairyExPerButton;
|
||||
@end
|
||||
|
||||
|
||||
@implementation XPTreasureFairyMyView
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self initHttpRequest];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initHttpRequest {
|
||||
[Api treasureFairyMyBallList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
if (code == 200) {
|
||||
TreasureFairyBallInfoModel * info = [TreasureFairyBallInfoModel modelWithDictionary:data.data];
|
||||
self.ballInfo = info;
|
||||
self.lowView.datasource = info.lowElves;
|
||||
self.highView.datasource = info.highElves;
|
||||
} else {
|
||||
[XNDJTDDLoadingTool showErrorWithMessage:msg];
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)initSubViews {
|
||||
[self addSubview:self.dismissView];
|
||||
[self addSubview:self.backImageView];
|
||||
[self addSubview:self.backButton];
|
||||
[self addSubview:self.titleImageView];
|
||||
[self addSubview:self.tipsImageView];
|
||||
[self addSubview:self.fairyExPerButton];
|
||||
[self addSubview:self.recordButton];
|
||||
[self addSubview:self.segmentView];
|
||||
[self addSubview:self.lowView];
|
||||
[self addSubview:self.highView];
|
||||
|
||||
[self addSubview:self.lowButton];
|
||||
[self addSubview:self.highButton];
|
||||
|
||||
|
||||
}
|
||||
-(void)setKeyInfo:(TreasureFailyKeyInfoModel *)keyInfo{
|
||||
_keyInfo =keyInfo;
|
||||
if(_keyInfo.spriteLevel == 0){
|
||||
[self lowButtonAction:self.lowButton];
|
||||
}else{
|
||||
[self highButtonAction:self.highButton];
|
||||
}
|
||||
}
|
||||
- (void)initSubViewConstraints {
|
||||
CGFloat kscale = 580.0 / 375.0;
|
||||
|
||||
[self.dismissView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.top.mas_equalTo(self);
|
||||
make.bottom.mas_equalTo(self.backImageView.mas_top);
|
||||
}];
|
||||
CGFloat height = KScreenWidth * kscale ;
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.bottom.mas_equalTo(self);
|
||||
make.height.mas_equalTo(height);
|
||||
}];
|
||||
|
||||
[self.backButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(28, 28));
|
||||
make.leading.mas_equalTo(self.backImageView).offset(15);
|
||||
make.top.mas_equalTo(self.backImageView).offset(40 * kScreenScale);
|
||||
}];
|
||||
|
||||
[self.titleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(153, 78));
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
make.top.mas_equalTo(self.backImageView).mas_offset(10);
|
||||
}];
|
||||
|
||||
[self.tipsImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.equalTo(self.titleImageView.mas_bottom).mas_offset(25);
|
||||
make.size.mas_equalTo(CGSizeMake(235, 32));
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
}];
|
||||
|
||||
[self.recordButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(50, 42));
|
||||
make.centerY.mas_equalTo(self.tipsImageView);
|
||||
make.trailing.mas_equalTo(self.backImageView).offset(-15);
|
||||
}];
|
||||
[self.fairyExPerButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(15);
|
||||
make.size.mas_equalTo(CGSizeMake(50, 45));
|
||||
make.centerY.mas_equalTo(self.tipsImageView);
|
||||
|
||||
}];
|
||||
[self.segmentView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(345, 41));
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
make.top.mas_equalTo(self.tipsImageView.mas_bottom).offset(18 * kScreenScale);
|
||||
}];
|
||||
|
||||
[self.lowButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(163, 46));
|
||||
make.leading.mas_equalTo(self.segmentView.mas_leading).offset(5);
|
||||
make.centerY.mas_equalTo(self.segmentView).offset(1.5);
|
||||
}];
|
||||
|
||||
|
||||
|
||||
[self.highButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.centerY.mas_equalTo(self.lowButton);
|
||||
make.leading.mas_equalTo(self.lowButton.mas_trailing).offset(7);
|
||||
}];
|
||||
|
||||
[self.lowView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.backImageView);
|
||||
make.top.mas_equalTo(self.segmentView.mas_bottom).offset(16 * kScreenScale);
|
||||
}];
|
||||
|
||||
|
||||
[self.highView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self.lowView);
|
||||
}];
|
||||
}
|
||||
- (void)fairyExperButtonAction:(UIButton *)sender {
|
||||
XPTreasureFairyTrialsView * view = [[XPTreasureFairyTrialsView alloc] init];
|
||||
view.frame = CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight);
|
||||
[self addSubview:view];
|
||||
[UIView animateWithDuration:0.3 animations:^{
|
||||
CGRect rect = view.frame;
|
||||
rect.origin.y = 0;
|
||||
view.frame = rect;
|
||||
}];
|
||||
}
|
||||
#pragma mark - XPTreasureFairyFriendViewDelegate
|
||||
- (void)treasureFairyFriendFinish:(XPTreasureFairyFriendView *)view {
|
||||
[self initHttpRequest];
|
||||
}
|
||||
|
||||
#pragma mark - XPTreasureFairyBallContentViewDelegate
|
||||
- (void)xPTreasureFairyBallContentView:(XPTreasureFairyBallContentView *)view askInfo:(TreasureFairyBallModel *)askInfo {
|
||||
XPTreasureFairyFriendView * friendView = [[XPTreasureFairyFriendView alloc] init];
|
||||
friendView.isSend = NO;
|
||||
friendView.delegate = self;
|
||||
friendView.ballInfo = askInfo;
|
||||
friendView.frame = CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight);
|
||||
[self addSubview:friendView];
|
||||
[UIView animateWithDuration:0.3 animations:^{
|
||||
CGRect rect = friendView.frame;
|
||||
rect.origin.y = 0;
|
||||
friendView.frame = rect;
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)xPTreasureFairyBallContentView:(XPTreasureFairyBallContentView *)view sendInfo:(TreasureFairyBallModel *)sendInfo {
|
||||
XPTreasureFairyFriendView * friendView = [[XPTreasureFairyFriendView alloc] init];
|
||||
friendView.delegate = self;
|
||||
friendView.isSend = YES;
|
||||
friendView.ballInfo = sendInfo;
|
||||
friendView.frame = CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight);
|
||||
[self addSubview:friendView];
|
||||
[UIView animateWithDuration:0.3 animations:^{
|
||||
CGRect rect = friendView.frame;
|
||||
rect.origin.y = 0;
|
||||
friendView.frame = rect;
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - Event Response
|
||||
- (void)dismissRecognizer {
|
||||
if(self.closeViewAction){
|
||||
self.closeViewAction();
|
||||
}
|
||||
[UIView animateWithDuration:0.3 animations:^{
|
||||
CGRect rect = self.frame;
|
||||
rect.origin.y = KScreenHeight;
|
||||
self.frame = rect;
|
||||
} completion:^(BOOL finished) {
|
||||
[self removeFromSuperview];
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)lowButtonAction:(UIButton *)sender {
|
||||
sender.selected = YES;
|
||||
self.keyInfo.spriteLevel = 0;
|
||||
self.highButton.selected = NO;
|
||||
self.lowView.hidden = NO;
|
||||
self.highView.hidden = YES;
|
||||
NSMutableArray * array = [NSMutableArray array];
|
||||
for (TreasureFairyBallModel * info in self.ballInfo.lowElves) {
|
||||
info.isFlip = NO;
|
||||
[array addObject:info];
|
||||
}
|
||||
self.lowView.datasource = array;
|
||||
}
|
||||
|
||||
|
||||
|
||||
- (void)highButtonAction:(UIButton *)sender {
|
||||
sender.selected = YES;
|
||||
self.keyInfo.spriteLevel = 2;
|
||||
self.lowButton.selected = NO;
|
||||
self.lowView.hidden = YES;
|
||||
self.highView.hidden = NO;
|
||||
NSMutableArray * array = [NSMutableArray array];
|
||||
for (TreasureFairyBallModel * info in self.ballInfo.highElves) {
|
||||
info.isFlip = NO;
|
||||
[array addObject:info];
|
||||
}
|
||||
self.highView.datasource = array;
|
||||
}
|
||||
|
||||
- (void)recordButtonAction:(UIButton *)sender {
|
||||
XPTreasureFairySendRecordView * recordView = [[XPTreasureFairySendRecordView alloc] init];
|
||||
[TTPopup popupView:recordView style:TTPopupStyleActionSheet];
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (UIButton *)backButton {
|
||||
if (!_backButton) {
|
||||
_backButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_backButton setImage:[[UIImage imageNamed:@"room_treasure_fairy_back"]ms_SetImageForRTL] forState:UIControlStateNormal];
|
||||
[_backButton setImage:[[UIImage imageNamed:@"room_treasure_fairy_back"]ms_SetImageForRTL] forState:UIControlStateSelected];
|
||||
[_backButton addTarget:self action:@selector(dismissRecognizer) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _backButton;
|
||||
}
|
||||
|
||||
- (UIView *)dismissView {
|
||||
if (!_dismissView) {
|
||||
_dismissView = [[UIView alloc] init];
|
||||
_dismissView.backgroundColor = [UIColor clearColor];
|
||||
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissRecognizer)];
|
||||
[_dismissView addGestureRecognizer:tap];
|
||||
}
|
||||
return _dismissView;
|
||||
}
|
||||
|
||||
- (UIImageView *)titleImageView {
|
||||
if (!_titleImageView) {
|
||||
_titleImageView = [[UIImageView alloc] init];
|
||||
_titleImageView.userInteractionEnabled = YES;
|
||||
_titleImageView.image = [UIImage getLanguageImage:@"room_treasure_fairy_my_title"];
|
||||
}
|
||||
return _titleImageView;
|
||||
}
|
||||
|
||||
- (UIImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.userInteractionEnabled = YES;
|
||||
_backImageView.image = [UIImage imageNamed:@"room_treasure_fairy_bg"];
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
|
||||
- (UIImageView *)tipsImageView {
|
||||
if (!_tipsImageView) {
|
||||
_tipsImageView = [[UIImageView alloc] init];
|
||||
_tipsImageView.userInteractionEnabled = YES;
|
||||
_tipsImageView.image = [UIImage getLanguageImage:@"room_treasure_fairy_my_tips_bg"];
|
||||
}
|
||||
return _tipsImageView;
|
||||
}
|
||||
|
||||
- (UIButton *)recordButton {
|
||||
if (!_recordButton) {
|
||||
_recordButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_recordButton setImage:[UIImage getLanguageImage:@"room_treasure_fairy_my_record_bg"] forState:UIControlStateNormal];
|
||||
[_recordButton setImage:[UIImage getLanguageImage:@"room_treasure_fairy_my_record_bg"] forState:UIControlStateSelected];
|
||||
[_recordButton addTarget:self action:@selector(recordButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _recordButton;
|
||||
}
|
||||
|
||||
- (UIImageView *)segmentView {
|
||||
if (!_segmentView) {
|
||||
_segmentView = [[UIImageView alloc] init];
|
||||
_segmentView.image = [UIImage imageNamed:@"room_treasure_fairy_my_segment_bg"];
|
||||
_segmentView.userInteractionEnabled = YES;
|
||||
}
|
||||
return _segmentView;
|
||||
}
|
||||
|
||||
- (UIButton *)lowButton {
|
||||
if (!_lowButton) {
|
||||
_lowButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_lowButton setImage:[UIImage getLanguageImage:@"room_treasure_fairy_my_low_title_normal"] forState:UIControlStateNormal];
|
||||
[_lowButton setImage:[UIImage getLanguageImage:@"room_treasure_fairy_my_low_title_select"] forState:UIControlStateSelected];
|
||||
[_lowButton addTarget:self action:@selector(lowButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
_lowButton.selected = YES;
|
||||
}
|
||||
return _lowButton;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
- (UIButton *)highButton {
|
||||
if (!_highButton) {
|
||||
_highButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_highButton setImage:[UIImage getLanguageImage:@"room_treasure_fairy_my_high_title_normal"] forState:UIControlStateNormal];
|
||||
[_highButton setImage:[UIImage getLanguageImage:@"room_treasure_fairy_my_high_title_select"] forState:UIControlStateSelected];
|
||||
[_highButton addTarget:self action:@selector(highButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _highButton;
|
||||
}
|
||||
|
||||
- (XPTreasureFairyBallContentView *)lowView {
|
||||
if (!_lowView) {
|
||||
_lowView = [[XPTreasureFairyBallContentView alloc] init];
|
||||
_lowView.delegate = self;
|
||||
}
|
||||
return _lowView;
|
||||
}
|
||||
|
||||
|
||||
|
||||
- (XPTreasureFairyBallContentView *)highView {
|
||||
if (!_highView) {
|
||||
_highView = [[XPTreasureFairyBallContentView alloc] init];
|
||||
_highView.hidden = YES;
|
||||
_highView.delegate = self;
|
||||
}
|
||||
return _highView;
|
||||
}
|
||||
- (UIButton *)fairyExPerButton {
|
||||
if (!_fairyExPerButton) {
|
||||
_fairyExPerButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_fairyExPerButton setImage:[UIImage getLanguageImage:@"room_treasure_fairy_store_exper_bg"] forState:UIControlStateNormal];
|
||||
[_fairyExPerButton setImage:[UIImage getLanguageImage:@"room_treasure_fairy_store_exper_bg"] forState:UIControlStateSelected];
|
||||
[_fairyExPerButton addTarget:self action:@selector(fairyExperButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
_fairyExPerButton.yn_acceptEventInterval = 1;
|
||||
}
|
||||
return _fairyExPerButton;
|
||||
}
|
||||
@end
|
@@ -1,19 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyNewSummonView.h
|
||||
// YuMi
|
||||
//
|
||||
// Created by duoban on 2023/9/6.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "TreasureFairyUserInfoModel.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPTreasureFairyNewSummonView : UIView
|
||||
///房主的uid
|
||||
@property (nonatomic,strong) NSString *roomUid;
|
||||
///用户信息
|
||||
@property (nonatomic,strong) TreasureFairyUserInfoModel *userInfo;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,356 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyNewSummonView.m
|
||||
// YuMi
|
||||
//
|
||||
// Created by duoban on 2023/9/6.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyNewSummonView.h"
|
||||
#import "XPTreasureFairyNewSummonCell.h"
|
||||
#import "Api+TreasureFairy.h"
|
||||
#import "TreasureFairyBallInfoModel.h"
|
||||
#import "XPTreasureFairyStoreResultSmallView.h"
|
||||
@interface XPTreasureFairyNewSummonView()<UICollectionViewDelegate, UICollectionViewDataSource,XPTreasureFairyNewSummonCellDelegate>
|
||||
///列表
|
||||
@property (nonatomic,strong) UICollectionView *collectionView;
|
||||
/// 碎片列表
|
||||
@property (nonatomic,strong) NSMutableArray <TreasureFairyFragmentModel *>*fragmentArray;
|
||||
///用户信息
|
||||
@property (nonatomic,strong) UIImageView *userImageView;
|
||||
///头像
|
||||
@property (nonatomic,strong) NetImageView *avatarImageView;
|
||||
///名字
|
||||
@property (nonatomic,strong) UILabel *nickLabel;
|
||||
|
||||
@property(nonatomic,strong) UILabel *firstNumView;
|
||||
@property(nonatomic,strong) NetImageView *firstFairyView;
|
||||
|
||||
@property(nonatomic,strong) UILabel *secondNumView;
|
||||
@property(nonatomic,strong) NetImageView *secondFairyView;
|
||||
@property(nonatomic,strong) UILabel *thirdNumView;
|
||||
@property(nonatomic,strong) NetImageView *thirdFairyView;
|
||||
|
||||
|
||||
|
||||
@end
|
||||
@implementation XPTreasureFairyNewSummonView
|
||||
|
||||
-(instancetype)initWithFrame:(CGRect)frame{
|
||||
self = [super initWithFrame:frame];
|
||||
if(self){
|
||||
[self initHttpRequest];
|
||||
[self installUI];
|
||||
[self installConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
-(void)installUI{
|
||||
[self addSubview:self.collectionView];
|
||||
[self addSubview:self.userImageView];
|
||||
[self.userImageView addSubview:self.avatarImageView];
|
||||
[self.userImageView addSubview:self.nickLabel];
|
||||
[self.userImageView addSubview:self.firstNumView];
|
||||
[self.userImageView addSubview:self.firstFairyView];
|
||||
[self.userImageView addSubview:self.secondNumView];
|
||||
[self.userImageView addSubview:self.secondFairyView];
|
||||
[self.userImageView addSubview:self.thirdNumView];
|
||||
[self.userImageView addSubview:self.thirdFairyView];
|
||||
}
|
||||
-(void)installConstraints{
|
||||
[self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self);
|
||||
}];
|
||||
|
||||
CGFloat kuserScale = 78.0 / 375.0;
|
||||
[self.userImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(KScreenWidth, KScreenWidth * kuserScale));
|
||||
make.bottom.mas_equalTo(self);
|
||||
make.centerX.mas_equalTo(self);
|
||||
}];
|
||||
|
||||
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(44, 44));
|
||||
make.leading.mas_equalTo(self.userImageView).offset(15);
|
||||
make.top.mas_equalTo(self.userImageView).offset(11 * kScreenScale);
|
||||
}];
|
||||
|
||||
[self.nickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(self.avatarImageView.mas_trailing).offset(2);
|
||||
make.centerY.mas_equalTo(self.avatarImageView);
|
||||
}];
|
||||
|
||||
[self.firstNumView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.trailing.mas_equalTo(-16);
|
||||
make.centerY.mas_equalTo(self.avatarImageView);
|
||||
}];
|
||||
[self.firstFairyView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.trailing.equalTo(self.firstNumView.mas_leading).mas_offset(-5);
|
||||
make.centerY.mas_equalTo(self.avatarImageView);
|
||||
make.width.height.mas_equalTo(25);
|
||||
}];
|
||||
[self.secondNumView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.trailing.equalTo(self.firstFairyView.mas_leading).mas_offset(-12);
|
||||
make.centerY.mas_equalTo(self.avatarImageView);
|
||||
}];
|
||||
[self.secondFairyView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.trailing.equalTo(self.secondNumView.mas_leading).mas_offset(-5);
|
||||
make.centerY.mas_equalTo(self.avatarImageView);
|
||||
make.width.height.mas_equalTo(25);
|
||||
}];
|
||||
[self.thirdNumView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.trailing.equalTo(self.secondFairyView.mas_leading).mas_offset(-12);
|
||||
make.centerY.mas_equalTo(self.avatarImageView);
|
||||
}];
|
||||
[self.thirdFairyView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.trailing.equalTo(self.thirdNumView.mas_leading).mas_offset(-5);
|
||||
make.centerY.mas_equalTo(self.avatarImageView);
|
||||
make.width.height.mas_equalTo(25);
|
||||
}];
|
||||
_firstNumView.hidden = YES;
|
||||
_firstFairyView.hidden = YES;
|
||||
_secondNumView.hidden = YES;
|
||||
_secondFairyView.hidden = YES;
|
||||
_thirdNumView.hidden = YES;
|
||||
_thirdFairyView.hidden = YES;
|
||||
}
|
||||
#pragma mark - Private Method
|
||||
- (void)initHttpRequest {
|
||||
[self getFragmentExchangeList];
|
||||
[self getMyBallList];
|
||||
}
|
||||
|
||||
- (void)getFragmentExchangeList {
|
||||
// 兑换列表
|
||||
[Api treasureFailyConvertElfList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
if (code == 200) {
|
||||
NSArray * fragmentList = [TreasureFairyFragmentModel modelsWithArray:data.data];
|
||||
[self.fragmentArray removeAllObjects];
|
||||
[self.fragmentArray addObjectsFromArray:fragmentList];
|
||||
[self.collectionView reloadData];
|
||||
} else {
|
||||
[XNDJTDDLoadingTool showErrorWithMessage:msg];
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)extracted {
|
||||
[Api treasureFairyMyBallList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
if (code == 200) {
|
||||
TreasureFairyBallInfoModel * info = [TreasureFairyBallInfoModel modelWithDictionary:data.data];
|
||||
|
||||
TreasureFairyBallModel *firstModel = [info.highElves xpSafeObjectAtIndex:0];
|
||||
TreasureFairyBallModel *secondModel = [info.highElves xpSafeObjectAtIndex:1];
|
||||
TreasureFairyBallModel *thirdModel = [info.highElves xpSafeObjectAtIndex:2];
|
||||
|
||||
if(firstModel != nil){
|
||||
self.firstNumView.hidden = NO;
|
||||
self.firstFairyView.hidden = NO;
|
||||
self.firstNumView.text = @(firstModel.elfNum).stringValue;
|
||||
self.firstFairyView.imageUrl = firstModel.elfPicUrl;
|
||||
}
|
||||
if(secondModel != nil){
|
||||
self.secondNumView.hidden = NO;
|
||||
self.secondFairyView.hidden = NO;
|
||||
self.secondNumView.text = @(secondModel.elfNum).stringValue;
|
||||
self.secondFairyView.imageUrl = secondModel.elfPicUrl;
|
||||
}
|
||||
if(thirdModel != nil){
|
||||
self.thirdNumView.hidden = NO;
|
||||
self.thirdFairyView.hidden = NO;
|
||||
self.thirdNumView.text = @(thirdModel.elfNum).stringValue;
|
||||
self.thirdFairyView.imageUrl = thirdModel.elfPicUrl;
|
||||
}
|
||||
} else {
|
||||
[XNDJTDDLoadingTool showErrorWithMessage:msg];
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)getMyBallList {
|
||||
// 我的碎片
|
||||
[self extracted];
|
||||
}
|
||||
#pragma mark - UICollectionViewDelegate, UICollectionViewDataSource
|
||||
|
||||
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
|
||||
return self.fragmentArray.count;
|
||||
}
|
||||
|
||||
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
|
||||
XPTreasureFairyNewSummonCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([XPTreasureFairyNewSummonCell class]) forIndexPath:indexPath];
|
||||
TreasureFairyFragmentModel *model = self.fragmentArray[indexPath.row];
|
||||
cell.fragmemtModel = model;
|
||||
cell.delegate = self;
|
||||
return cell;
|
||||
}
|
||||
/// 兑换事件
|
||||
- (void)treasureFairyShopingExchangeAction:(TreasureFairyFragmentModel *)fragmentModel{
|
||||
if (fragmentModel.itemId > 0) {
|
||||
TTAlertConfig * config = [[TTAlertConfig alloc] init];
|
||||
config.title = @"";
|
||||
NSString * untils;
|
||||
if ([fragmentModel.rewardType isEqualToString:@"gift"]) {
|
||||
untils = [NSString stringWithFormat:@"%@%@", fragmentModel.rewardShowValue, YMLocalizedString(@"XPTreasureFairyExchangeView0")];
|
||||
|
||||
} else {
|
||||
untils = [NSString stringWithFormat:@"%ld%@", fragmentModel.rewardNum, fragmentModel.rewardUnit];
|
||||
}
|
||||
config.title = YMLocalizedString(@"XPTreasureFairyExchangeView1");
|
||||
config.confirmButtonConfig.title = YMLocalizedString(@"XPTreasureFairyExchangeView2");
|
||||
config.message = [NSString stringWithFormat:YMLocalizedString(@"XPTreasureFairyExchangeView3"), fragmentModel.rewardName, untils];
|
||||
[TTPopup alertWithConfig:config confirmHandler:^{
|
||||
|
||||
NSString *propIdStr = @"";
|
||||
NSString *propNumStr = @"";
|
||||
for (TreasureFairyFragmentItemModel *itemModel in fragmentModel.propItems) {
|
||||
if(propIdStr.length == 0){
|
||||
propIdStr = itemModel.propId;
|
||||
}else{
|
||||
propIdStr = [NSString stringWithFormat:@"%@,%@",propIdStr,itemModel.propId];
|
||||
}
|
||||
if(propNumStr.length == 0){
|
||||
propNumStr = itemModel.propNum;
|
||||
}else{
|
||||
propNumStr = [NSString stringWithFormat:@"%@,%@",propNumStr,itemModel.propNum];
|
||||
}
|
||||
}
|
||||
if(propIdStr.length == 0)return;
|
||||
[Api treasureFailyConvert:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
if (code == 200) {
|
||||
[XNDJTDDLoadingTool showSuccessWithMessage:YMLocalizedString(@"XPTreasureFairyExchangeView4")];
|
||||
///刷新我的碎片
|
||||
[self getMyBallList];
|
||||
TreasureFairyInfoModel * info = [TreasureFairyInfoModel modelWithDictionary:data.data];
|
||||
XPTreasureFairyStoreResultSmallView * smallView = [[XPTreasureFairyStoreResultSmallView alloc] init];
|
||||
smallView.datasource = @[info];
|
||||
smallView.titleLabel.text = YMLocalizedString(@"XPTreasureFairySummonView0");
|
||||
[TTPopup popupView:smallView style:TTPopupStyleActionSheet];
|
||||
|
||||
|
||||
|
||||
|
||||
} else {
|
||||
[XNDJTDDLoadingTool showErrorWithMessage:msg];
|
||||
}
|
||||
} itemId:[NSString stringWithFormat:@"%ld", fragmentModel.itemId] roomUid:self.roomUid propIdStr:propIdStr propNumStr:propNumStr];
|
||||
} cancelHandler:^{
|
||||
|
||||
}];
|
||||
}
|
||||
}
|
||||
#pragma mark - 懒加载
|
||||
- (void)setUserInfo:(TreasureFairyUserInfoModel *)userInfo {
|
||||
_userInfo = userInfo;
|
||||
self.avatarImageView.imageUrl = userInfo.avatar;
|
||||
NSString * nick = userInfo.nick;
|
||||
if (nick.length > 4) {
|
||||
nick = [NSString stringWithFormat:@"%@…", [nick substringToIndex:4]];
|
||||
}
|
||||
self.nickLabel.text = nick;
|
||||
}
|
||||
|
||||
- (UICollectionView *)collectionView {
|
||||
if (!_collectionView) {
|
||||
MSBaseRTLFlowLayout *layout = [[MSBaseRTLFlowLayout alloc] init];
|
||||
layout.scrollDirection = UICollectionViewScrollDirectionVertical;
|
||||
|
||||
CGFloat space = (KScreenWidth - 169.0 * 2)/3 - 1;
|
||||
|
||||
layout.itemSize = CGSizeMake(169.0, 242.0);
|
||||
layout.minimumInteritemSpacing = space;
|
||||
layout.minimumLineSpacing = space;
|
||||
|
||||
_collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
|
||||
_collectionView.backgroundColor = UIColor.clearColor;
|
||||
_collectionView.delegate = self;
|
||||
_collectionView.dataSource = self;
|
||||
CGFloat kuserScale = 91.0 / 375.0;
|
||||
CGFloat insetsBottom = KScreenWidth * kuserScale;
|
||||
_collectionView.contentInset = UIEdgeInsetsMake(0, space, insetsBottom, space);
|
||||
[_collectionView registerClass:[XPTreasureFairyNewSummonCell class] forCellWithReuseIdentifier:NSStringFromClass([XPTreasureFairyNewSummonCell class])];
|
||||
}
|
||||
return _collectionView;
|
||||
}
|
||||
- (UIImageView *)userImageView {
|
||||
if (!_userImageView) {
|
||||
_userImageView = [[UIImageView alloc] init];
|
||||
_userImageView.userInteractionEnabled = YES;
|
||||
_userImageView.image = [UIImage imageNamed:@"room_treasure_fairy_new_userinfo_bg"];
|
||||
}
|
||||
return _userImageView;
|
||||
}
|
||||
- (NetImageView *)avatarImageView {
|
||||
if (!_avatarImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_avatarImageView.layer.masksToBounds = YES;
|
||||
_avatarImageView.layer.cornerRadius = 44/2;
|
||||
_avatarImageView.layer.borderColor = [DJDKMIMOMColor appMainColor].CGColor;
|
||||
}
|
||||
return _avatarImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)nickLabel {
|
||||
if (!_nickLabel) {
|
||||
_nickLabel = [[UILabel alloc] init];
|
||||
_nickLabel.font = [UIFont systemFontOfSize:13];
|
||||
_nickLabel.textColor = [UIColor whiteColor];
|
||||
_nickLabel.text = YMLocalizedString(@"XPTreasureFairyExchangeView5");
|
||||
}
|
||||
return _nickLabel;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- (NSMutableArray<TreasureFairyFragmentModel *> *)fragmentArray {
|
||||
if (!_fragmentArray) {
|
||||
_fragmentArray = [NSMutableArray array];
|
||||
}
|
||||
return _fragmentArray;
|
||||
}
|
||||
- (UILabel *)firstNumView{
|
||||
if(!_firstNumView){
|
||||
_firstNumView = [UILabel labelInitWithText:@"0" font:[UIFont systemFontOfSize:12 weight:UIFontWeightRegular] textColor:[UIColor whiteColor]];
|
||||
}
|
||||
return _firstNumView;
|
||||
}
|
||||
- (NetImageView *)firstFairyView{
|
||||
if(!_firstFairyView){
|
||||
NetImageConfig *config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_firstFairyView = [[NetImageView alloc]initWithConfig:config];
|
||||
}
|
||||
return _firstFairyView;
|
||||
}
|
||||
- (UILabel *)secondNumView{
|
||||
if(!_secondNumView){
|
||||
_secondNumView = [UILabel labelInitWithText:@"0" font:[UIFont systemFontOfSize:12 weight:UIFontWeightRegular] textColor:[UIColor whiteColor]];
|
||||
}
|
||||
return _secondNumView;
|
||||
}
|
||||
- (NetImageView *)secondFairyView{
|
||||
if(!_secondFairyView){
|
||||
NetImageConfig *config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_secondFairyView = [[NetImageView alloc]initWithConfig:config];
|
||||
}
|
||||
return _secondFairyView;
|
||||
}
|
||||
- (UILabel *)thirdNumView{
|
||||
if(!_thirdNumView){
|
||||
_thirdNumView = [UILabel labelInitWithText:@"0" font:[UIFont systemFontOfSize:12 weight:UIFontWeightRegular] textColor:[UIColor whiteColor]];
|
||||
}
|
||||
return _thirdNumView;
|
||||
}
|
||||
- (NetImageView *)thirdFairyView{
|
||||
if(!_thirdFairyView){
|
||||
NetImageConfig *config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_thirdFairyView = [[NetImageView alloc]initWithConfig:config];
|
||||
}
|
||||
return _thirdFairyView;
|
||||
}
|
||||
@end
|
@@ -1,18 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyPoolRecordView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/21.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPTreasureFairyPoolRecordView : UIView
|
||||
@property (nonatomic,strong) NSArray *lowList;
|
||||
@property (nonatomic,strong) NSArray *middleList;
|
||||
@property (nonatomic,strong) NSArray *highList;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,179 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyPoolRecordView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/21.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyPoolRecordView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
#import "TTPopup.h"
|
||||
///View
|
||||
#import "XPTreasureFairyPrizePoolView.h"
|
||||
#import "XPTreasureFairyPrizeRecordView.h"
|
||||
|
||||
@interface XPTreasureFairyPoolRecordView ()
|
||||
|
||||
///背景
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///
|
||||
@property (nonatomic,strong) UIView *bottomView;
|
||||
///森林奖池
|
||||
@property (nonatomic,strong) UIButton *prizePoolButton;
|
||||
///获奖记录
|
||||
@property (nonatomic,strong) UIButton *recordButton;
|
||||
///记录
|
||||
@property (nonatomic,strong) XPTreasureFairyPrizeRecordView *recordView;
|
||||
///奖池
|
||||
@property (nonatomic,strong) XPTreasureFairyPrizePoolView *poolView;
|
||||
@end
|
||||
|
||||
@implementation XPTreasureFairyPoolRecordView
|
||||
|
||||
- (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.backImageView];
|
||||
[self addSubview:self.bottomView];
|
||||
[self.backImageView addSubview:self.prizePoolButton];
|
||||
[self.backImageView addSubview:self.recordButton];
|
||||
[self.backImageView addSubview:self.poolView];
|
||||
[self.backImageView addSubview:self.recordView];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.centerX.mas_equalTo(self);
|
||||
make.size.mas_equalTo(CGSizeMake(321, 386));
|
||||
}];
|
||||
|
||||
[self.bottomView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.bottom.mas_equalTo(self);
|
||||
make.top.mas_equalTo(self.backImageView.mas_bottom);
|
||||
}];
|
||||
|
||||
[self.prizePoolButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(120, 39));
|
||||
make.trailing.mas_equalTo(self.backImageView.mas_centerX).offset(-18);
|
||||
make.top.mas_equalTo(self.backImageView);
|
||||
}];
|
||||
|
||||
[self.recordButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(120, 39));
|
||||
make.leading.mas_equalTo(self.backImageView.mas_centerX).offset(18);
|
||||
make.top.mas_equalTo(self.backImageView);
|
||||
}];
|
||||
|
||||
[self.recordView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.backImageView).inset(5);
|
||||
make.bottom.mas_equalTo(self.backImageView).offset(-30);
|
||||
make.top.mas_equalTo(self.prizePoolButton.mas_bottom).offset(24);
|
||||
}];
|
||||
|
||||
[self.poolView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.backImageView).inset(5);
|
||||
make.bottom.mas_equalTo(self.backImageView).offset(-30);
|
||||
make.top.mas_equalTo(self.prizePoolButton.mas_bottom).offset(24);
|
||||
}];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Event Response
|
||||
- (void)prizePoolButtonAction:(UIButton *)sender {
|
||||
self.recordButton.selected = NO;
|
||||
self.prizePoolButton.selected = YES;
|
||||
self.recordView.hidden = YES;
|
||||
self.poolView.hidden = NO;
|
||||
}
|
||||
|
||||
- (void)recordButtonAction:(UIButton *)sender {
|
||||
self.recordButton.selected = YES;
|
||||
self.prizePoolButton.selected = NO;
|
||||
self.recordView.hidden = NO;
|
||||
self.poolView.hidden = YES;
|
||||
}
|
||||
|
||||
- (void)dismissView {
|
||||
[TTPopup dismiss];
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setLowList:(NSArray *)lowList {
|
||||
self.poolView.lowList = lowList;
|
||||
}
|
||||
|
||||
- (void)setMiddleList:(NSArray *)middleList {
|
||||
self.poolView.middleList = middleList;
|
||||
}
|
||||
|
||||
- (void)setHighList:(NSArray *)highList {
|
||||
self.poolView.highList = highList;
|
||||
}
|
||||
- (UIImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.userInteractionEnabled = YES;
|
||||
_backImageView.image = [UIImage imageNamed:@"room_treasure_fairy_pool_bg"];
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
|
||||
- (UIView *)bottomView {
|
||||
if (!_bottomView) {
|
||||
_bottomView = [[UIView alloc] init];
|
||||
_bottomView.backgroundColor = [UIColor clearColor];
|
||||
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissView)];
|
||||
[_bottomView addGestureRecognizer:tap];
|
||||
}
|
||||
return _bottomView;
|
||||
}
|
||||
|
||||
- (UIButton *)prizePoolButton {
|
||||
if (!_prizePoolButton) {
|
||||
_prizePoolButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_prizePoolButton setImage:[UIImage getLanguageImage:@"room_treasure_fairy_pool_normal"] forState:UIControlStateNormal];
|
||||
[_prizePoolButton setImage:[UIImage getLanguageImage:@"room_treasure_fairy_pool_select"] forState:UIControlStateSelected];
|
||||
[_prizePoolButton addTarget:self action:@selector(prizePoolButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
_prizePoolButton.selected = YES;
|
||||
}
|
||||
return _prizePoolButton;
|
||||
}
|
||||
|
||||
- (UIButton *)recordButton {
|
||||
if (!_recordButton) {
|
||||
_recordButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_recordButton setImage:[UIImage getLanguageImage:@"room_treasure_fairy_record_normal"] forState:UIControlStateNormal];
|
||||
[_recordButton setImage:[UIImage getLanguageImage:@"room_treasure_fairy_record_select"] forState:UIControlStateSelected];
|
||||
[_recordButton addTarget:self action:@selector(recordButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
_recordButton.selected = NO;
|
||||
}
|
||||
return _recordButton;
|
||||
}
|
||||
|
||||
- (XPTreasureFairyPrizePoolView *)poolView {
|
||||
if(!_poolView) {
|
||||
_poolView = [[XPTreasureFairyPrizePoolView alloc] init];
|
||||
}
|
||||
return _poolView;
|
||||
}
|
||||
|
||||
- (XPTreasureFairyPrizeRecordView *)recordView {
|
||||
if (!_recordView) {
|
||||
_recordView = [[XPTreasureFairyPrizeRecordView alloc] init];
|
||||
_recordView.hidden = YES;
|
||||
}
|
||||
return _recordView;
|
||||
}
|
||||
|
||||
@end
|
@@ -1,18 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyPrizePoolView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/21.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPTreasureFairyPrizePoolView : UIView
|
||||
@property (nonatomic,strong) NSArray *lowList;
|
||||
@property (nonatomic,strong) NSArray *middleList;
|
||||
@property (nonatomic,strong) NSArray *highList;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,171 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyPrizePoolView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/21.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyPrizePoolView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <JXCategoryView/JXCategoryView.h>
|
||||
#import <JXCategoryView/JXCategoryIndicatorBackgroundView.h>
|
||||
#import <JXCategoryView/JXCategoryListContainerView.h>
|
||||
///Tool
|
||||
|
||||
|
||||
#import "UIImage+Utils.h"
|
||||
#import "Api+TreasureFairy.h"
|
||||
|
||||
///Model
|
||||
#import "TreasureFairyInfoModel.h"
|
||||
///View
|
||||
#import "XPTreasureFairyPrizeSubView.h"
|
||||
#import "XPTreasureFairyStoreView.h"
|
||||
|
||||
@interface XPTreasureFairyPrizePoolView ()<JXCategoryViewDelegate, JXCategoryListContainerViewDelegate>
|
||||
///分页标题
|
||||
@property (nonatomic, strong) NSArray<NSString *> *titles;
|
||||
///分页控件
|
||||
@property (nonatomic, strong) JXCategoryTitleView *titleView;
|
||||
///分页lineView
|
||||
@property (nonatomic, strong) JXCategoryListContainerView *pi_containerView;
|
||||
///初级森林
|
||||
@property (nonatomic,strong) XPTreasureFairyPrizeSubView *normalView;
|
||||
///史诗森林
|
||||
@property (nonatomic,strong) XPTreasureFairyPrizeSubView *middleView;
|
||||
///高级森林
|
||||
@property (nonatomic,strong) XPTreasureFairyPrizeSubView *highView;
|
||||
@end
|
||||
|
||||
@implementation XPTreasureFairyPrizePoolView
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
[self addSubview:self.titleView];
|
||||
[self addSubview:self.pi_containerView];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.titleView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.mas_equalTo(self);
|
||||
make.width.mas_equalTo(60 * 3 + 24 * 2);
|
||||
make.height.mas_equalTo(30);
|
||||
make.top.mas_equalTo(self).offset(0);
|
||||
}];
|
||||
|
||||
[self.pi_containerView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.bottom.mas_equalTo(self);
|
||||
make.top.mas_equalTo(self.titleView.mas_bottom).offset(13);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - JXCategoryViewDelegate
|
||||
- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView {
|
||||
return self.titles.count;
|
||||
}
|
||||
|
||||
- (id<JXCategoryListContentViewDelegate>)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index {
|
||||
if (index == 0) {
|
||||
return self.normalView;
|
||||
} else if (index == 1) {
|
||||
return self.middleView;
|
||||
} else {
|
||||
return self.highView;
|
||||
}
|
||||
}
|
||||
#pragma mark - Event Response
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setLowList:(NSArray *)lowList {
|
||||
self.normalView.datasource = lowList;
|
||||
}
|
||||
|
||||
- (void)setMiddleList:(NSArray *)middleList {
|
||||
self.middleView.datasource = middleList;
|
||||
}
|
||||
|
||||
- (void)setHighList:(NSArray *)highList {
|
||||
self.highView.datasource = highList;
|
||||
}
|
||||
|
||||
- (JXCategoryTitleView *)titleView {
|
||||
if (!_titleView) {
|
||||
_titleView = [[JXCategoryTitleView alloc] init];
|
||||
_titleView.delegate = self;
|
||||
_titleView.titles = self.titles;
|
||||
_titleView.backgroundColor = [UIColor clearColor];
|
||||
_titleView.titleColor = [UIColor whiteColor];
|
||||
_titleView.titleSelectedColor = [UIColor whiteColor];
|
||||
_titleView.titleFont = [UIFont systemFontOfSize:15];
|
||||
_titleView.titleSelectedFont = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium];
|
||||
_titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter;
|
||||
_titleView.contentScrollViewClickTransitionAnimationEnabled = NO;
|
||||
_titleView.defaultSelectedIndex = 0;
|
||||
_titleView.cellSpacing = 24;
|
||||
_titleView.cellWidthIncrement = 0;
|
||||
_titleView.contentEdgeInsetLeft = 0;
|
||||
_titleView.contentEdgeInsetRight = 0;
|
||||
_titleView.cellWidth = 60;
|
||||
_titleView.listContainer = self.pi_containerView;
|
||||
|
||||
JXCategoryIndicatorImageView *lineView = [[JXCategoryIndicatorImageView alloc] init];
|
||||
lineView.indicatorImageViewSize = CGSizeMake(60, 4);
|
||||
lineView.verticalMargin = 2;
|
||||
lineView.indicatorCornerRadius = 2;
|
||||
lineView.indicatorImageView.image = [UIImage gradientColorImageFromColors:@[UIColorFromRGB(0x69FFEB), UIColorFromRGB(0xEAFF89)] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(60, 4)];
|
||||
lineView.indicatorImageView.layer.masksToBounds = YES;
|
||||
lineView.indicatorImageView.layer.cornerRadius = 2;
|
||||
_titleView.indicators = @[lineView];
|
||||
}
|
||||
return _titleView;
|
||||
}
|
||||
|
||||
- (JXCategoryListContainerView *)pi_containerView {
|
||||
if (!_pi_containerView) {
|
||||
_pi_containerView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self];
|
||||
_pi_containerView.defaultSelectedIndex = 0;
|
||||
_pi_containerView.scrollView.tag = 1009;
|
||||
}
|
||||
return _pi_containerView;
|
||||
}
|
||||
|
||||
- (NSArray<NSString *> *)titles {
|
||||
if (!_titles) {
|
||||
_titles = @[YMLocalizedString(@"XPTreasureFairyPrizePoolView0"), YMLocalizedString(@"XPTreasureFairyPrizePoolView1"), YMLocalizedString(@"XPTreasureFairyPrizePoolView2")];
|
||||
}
|
||||
return _titles;
|
||||
}
|
||||
|
||||
- (XPTreasureFairyPrizeSubView *)normalView {
|
||||
if (!_normalView) {
|
||||
_normalView = [[XPTreasureFairyPrizeSubView alloc] init];
|
||||
}
|
||||
return _normalView;
|
||||
}
|
||||
|
||||
- (XPTreasureFairyPrizeSubView *)middleView {
|
||||
if (!_middleView) {
|
||||
_middleView = [[XPTreasureFairyPrizeSubView alloc] init];
|
||||
}
|
||||
return _middleView;
|
||||
}
|
||||
|
||||
- (XPTreasureFairyPrizeSubView *)highView {
|
||||
if (!_highView) {
|
||||
_highView = [[XPTreasureFairyPrizeSubView alloc] init];
|
||||
}
|
||||
return _highView;
|
||||
}
|
||||
|
||||
@end
|
@@ -1,16 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyPrizeRecordView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/21.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPTreasureFairyPrizeRecordView : UIView
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,177 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyPrizeRecordView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/21.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyPrizeRecordView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <MJRefresh/MJRefresh.h>
|
||||
///Tool
|
||||
|
||||
#import "Api+TreasureFairy.h"
|
||||
|
||||
#import "NSArray+Safe.h"
|
||||
///Model
|
||||
#import "TreasureFairyInfoModel.h"
|
||||
///View
|
||||
#import "XPTreasureFairyPrizeRecordCell.h"
|
||||
|
||||
@interface XPTreasureFairyPrizeRecordView ()<UITableViewDelegate, UITableViewDataSource>
|
||||
///列表
|
||||
@property (nonatomic,strong) UITableView *tableView;
|
||||
///数据源
|
||||
@property (nonatomic,strong) NSMutableArray *datasource;
|
||||
///顶部的视图
|
||||
@property (nonatomic,strong) XPTreasureFairyPrizeRecordCell *headView;
|
||||
///
|
||||
@property (nonatomic,strong) UILabel *emptyView;
|
||||
///
|
||||
@property (nonatomic,strong) UILabel *XPTreasureFairyPrizePoolView;
|
||||
@property (nonatomic,assign) NSInteger page;
|
||||
@end
|
||||
@implementation XPTreasureFairyPrizeRecordView
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self initHeaderAndFooterRrfresh];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Refresh
|
||||
- (void)initHeaderAndFooterRrfresh {
|
||||
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
|
||||
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
header.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
self.tableView.mj_header = header;
|
||||
|
||||
MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)];
|
||||
footer.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
footer.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
self.tableView.mj_footer = footer;
|
||||
[self headerRefresh];
|
||||
}
|
||||
|
||||
- (void)headerRefresh {
|
||||
self.page = 1;
|
||||
[Api treasureFairyForestDrawRecord:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
[self.tableView.mj_header endRefreshing];
|
||||
if (code == 200) {
|
||||
[self.datasource removeAllObjects];
|
||||
NSArray * array = [TreasureFairyInfoModel modelsWithArray:data.data];
|
||||
[self.datasource addObjectsFromArray:array];
|
||||
self.emptyView.hidden = self.datasource.count > 0;
|
||||
[self.tableView reloadData];
|
||||
} else {
|
||||
[XNDJTDDLoadingTool showErrorWithMessage:msg];
|
||||
}
|
||||
} page:@"1" pageSize:@"20"];
|
||||
}
|
||||
|
||||
- (void)footerRefresh {
|
||||
self.page++;
|
||||
[Api treasureFairyForestDrawRecord:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
[self.tableView.mj_footer endRefreshing];
|
||||
if (code == 200) {
|
||||
NSArray * array = [TreasureFairyInfoModel modelsWithArray:data.data];
|
||||
if (array.count > 0) {
|
||||
[self.datasource addObjectsFromArray:array];
|
||||
}
|
||||
self.emptyView.hidden = self.datasource.count > 0;
|
||||
[self.tableView reloadData];
|
||||
} else {
|
||||
[XNDJTDDLoadingTool showErrorWithMessage:msg];
|
||||
}
|
||||
} page:[NSString stringWithFormat:@"%ld", self.page] pageSize:@"20"];
|
||||
}
|
||||
|
||||
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
[self addSubview:self.tableView];
|
||||
self.tableView.tableHeaderView = self.headView;
|
||||
[self.tableView addSubview:self.emptyView];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.top.mas_equalTo(self);
|
||||
make.bottom.mas_equalTo(self).offset(-20);
|
||||
}];
|
||||
[self.emptyView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.center.equalTo(self.tableView);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - UITableViewDelegate And UITableViewDataSource
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
return 44;
|
||||
}
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
||||
return self.datasource.count;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
XPTreasureFairyPrizeRecordCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPTreasureFairyPrizeRecordCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPTreasureFairyPrizeRecordCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPTreasureFairyPrizeRecordCell class])];
|
||||
}
|
||||
TreasureFairyInfoModel * info = [self.datasource xpSafeObjectAtIndex:indexPath.row];
|
||||
cell.recordInfo = info;
|
||||
return cell;
|
||||
}
|
||||
#pragma mark - Getters And Setters
|
||||
- (UITableView *)tableView {
|
||||
if (!_tableView) {
|
||||
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
|
||||
_tableView.delegate = self;
|
||||
_tableView.dataSource = self;
|
||||
_tableView.tableFooterView = [UIView new];
|
||||
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
||||
_tableView.backgroundColor = [UIColor clearColor];
|
||||
if (@available(iOS 11.0, *)) {
|
||||
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
|
||||
}
|
||||
[_tableView registerClass:[XPTreasureFairyPrizeRecordCell class] forCellReuseIdentifier:NSStringFromClass([XPTreasureFairyPrizeRecordCell class])];
|
||||
}
|
||||
return _tableView;
|
||||
}
|
||||
|
||||
- (XPTreasureFairyPrizeRecordCell *)headView {
|
||||
if(!_headView) {
|
||||
_headView = [[XPTreasureFairyPrizeRecordCell alloc] init];
|
||||
_headView.timeLabel.text = YMLocalizedString(@"XPTreasureFairyPrizeRecordView0");
|
||||
_headView.levelLabel.text = YMLocalizedString(@"XPTreasureFairyPrizeRecordView1");
|
||||
_headView.prizeLabel.text = YMLocalizedString(@"XPTreasureFairyPrizeRecordView2");
|
||||
_headView.timeLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightMedium];
|
||||
_headView.levelLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightMedium];
|
||||
_headView.prizeLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightMedium];
|
||||
_headView.frame = CGRectMake(0, 0, 360, 30);
|
||||
}
|
||||
return _headView;
|
||||
}
|
||||
|
||||
- (NSMutableArray *)datasource {
|
||||
if(!_datasource) {
|
||||
_datasource = [NSMutableArray array];
|
||||
}
|
||||
return _datasource;
|
||||
}
|
||||
-(UILabel *)emptyView{
|
||||
if (!_emptyView){
|
||||
_emptyView = [UILabel labelInitWithText:YMLocalizedString(@"XPTreasureFairyViewController7") font:[UIFont systemFontOfSize:15 weight:UIFontWeightMedium] textColor:[UIColor whiteColor]];
|
||||
_emptyView.hidden = YES;
|
||||
}
|
||||
return _emptyView;
|
||||
}
|
||||
@end
|
@@ -1,17 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyPrizeSubView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/21.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <JXCategoryView/JXCategoryListContainerView.h>
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPTreasureFairyPrizeSubView : UIView<JXCategoryListContentViewDelegate>
|
||||
///数据源
|
||||
@property (nonatomic,strong) NSArray *datasource;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,93 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairyPrizeSubView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/21.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairyPrizeSubView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
#import "NSArray+Safe.h"
|
||||
///View
|
||||
#import "XPTreasureFairyPrizePoolCell.h"
|
||||
|
||||
@interface XPTreasureFairyPrizeSubView ()<UICollectionViewDelegate, UICollectionViewDataSource>
|
||||
///列表
|
||||
@property (nonatomic,strong) UICollectionView *collectionView;
|
||||
///
|
||||
@property (nonatomic,strong) UILabel *emptyView;
|
||||
@end
|
||||
|
||||
@implementation XPTreasureFairyPrizeSubView
|
||||
|
||||
- (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.collectionView];
|
||||
[self.collectionView addSubview:self.emptyView];
|
||||
}
|
||||
-(void)setDatasource:(NSArray *)datasource{
|
||||
_datasource = datasource;
|
||||
_emptyView.hidden = _datasource.count > 0;
|
||||
}
|
||||
- (void)initSubViewConstraints {
|
||||
[self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self);
|
||||
}];
|
||||
[self.emptyView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.center.equalTo(self.collectionView);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - UICollectionViewDelegate, UICollectionViewDataSource>
|
||||
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
|
||||
return self.datasource.count;
|
||||
}
|
||||
|
||||
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
|
||||
XPTreasureFairyPrizePoolCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([XPTreasureFairyPrizePoolCell class]) forIndexPath:indexPath];
|
||||
TreasureFairyInfoModel * info = [self.datasource xpSafeObjectAtIndex:indexPath.row];
|
||||
cell.info = info;
|
||||
return cell;
|
||||
}
|
||||
|
||||
#pragma mark - JXCategoryListContentViewDelegate
|
||||
- (UIView *)listView {
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (UICollectionView *)collectionView{
|
||||
if (!_collectionView) {
|
||||
MSBaseRTLFlowLayout *layout = [[MSBaseRTLFlowLayout alloc] init];
|
||||
layout.itemSize = CGSizeMake(90, 110);
|
||||
layout.minimumLineSpacing = 10;
|
||||
layout.minimumInteritemSpacing = 10;
|
||||
layout.sectionInset = UIEdgeInsetsMake(0, 10, 0, 10);
|
||||
_collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
|
||||
_collectionView.dataSource = self;
|
||||
_collectionView.delegate = self;
|
||||
_collectionView.backgroundColor = [UIColor clearColor];
|
||||
[_collectionView registerClass:[XPTreasureFairyPrizePoolCell class] forCellWithReuseIdentifier:NSStringFromClass([XPTreasureFairyPrizePoolCell class])];
|
||||
}
|
||||
return _collectionView;
|
||||
}
|
||||
-(UILabel *)emptyView{
|
||||
if (!_emptyView){
|
||||
_emptyView = [UILabel labelInitWithText:YMLocalizedString(@"XPTreasureFairyViewController7") font:[UIFont systemFontOfSize:15 weight:UIFontWeightMedium] textColor:[UIColor whiteColor]];
|
||||
_emptyView.hidden = YES;
|
||||
}
|
||||
return _emptyView;
|
||||
}
|
||||
@end
|
@@ -1,16 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairySendRecordView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/23.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPTreasureFairySendRecordView : UIView
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,224 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairySendRecordView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/23.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairySendRecordView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <MJRefresh/MJRefresh.h>
|
||||
///Tool
|
||||
|
||||
#import "Api+TreasureFairy.h"
|
||||
|
||||
#import "NSArray+Safe.h"
|
||||
|
||||
#import "TTPopup.h"
|
||||
///Model
|
||||
#import "TreasureFairySendRecordModel.h"
|
||||
///View
|
||||
#import "XPTreasureFairySendRecordCell.h"
|
||||
@interface XPTreasureFairySendRecordView ()<UITableViewDelegate, UITableViewDataSource>
|
||||
///顶部的View
|
||||
@property (nonatomic,strong) UIView *bottomView;
|
||||
///显示标题
|
||||
@property (nonatomic,strong) UILabel *titleLabel;
|
||||
///背景
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///列表
|
||||
@property (nonatomic,strong) UITableView *tableView;
|
||||
@property (nonatomic,strong) NSMutableArray *datasource;
|
||||
@property (nonatomic,assign) NSInteger page;
|
||||
///
|
||||
@property (nonatomic,strong) UILabel *emptyView;
|
||||
@end
|
||||
|
||||
@implementation XPTreasureFairySendRecordView
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self initHeaderAndFooterRrfresh];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Refresh
|
||||
- (void)initHeaderAndFooterRrfresh {
|
||||
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
|
||||
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
header.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
self.tableView.mj_header = header;
|
||||
|
||||
MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)];
|
||||
footer.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
footer.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
self.tableView.mj_footer = footer;
|
||||
[self headerRefresh];
|
||||
}
|
||||
|
||||
- (void)headerRefresh {
|
||||
self.page = 1;
|
||||
[Api treasureFailySendAndAskRecordList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
[self.tableView.mj_header endRefreshing];
|
||||
if (code == 200) {
|
||||
[self.datasource removeAllObjects];
|
||||
NSArray * array = [TreasureFairySendRecordModel modelsWithArray:data.data];
|
||||
[self.datasource addObjectsFromArray:array];
|
||||
self.emptyView.hidden = self.datasource.count > 0;
|
||||
[self.tableView reloadData];
|
||||
} else {
|
||||
[XNDJTDDLoadingTool showErrorWithMessage:msg];
|
||||
}
|
||||
} page:@"1" pageSize:@"20"];
|
||||
}
|
||||
|
||||
- (void)footerRefresh {
|
||||
self.page++;
|
||||
[Api treasureFailySendAndAskRecordList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
[self.tableView.mj_footer endRefreshing];
|
||||
if (code == 200) {
|
||||
NSArray * array = [TreasureFairySendRecordModel modelsWithArray:data.data];
|
||||
if (array.count > 0) {
|
||||
[self.datasource addObjectsFromArray:array];
|
||||
}
|
||||
self.emptyView.hidden = self.datasource.count > 0;
|
||||
[self.tableView reloadData];
|
||||
} else {
|
||||
[XNDJTDDLoadingTool showErrorWithMessage:msg];
|
||||
}
|
||||
} page:[NSString stringWithFormat:@"%ld", self.page] pageSize:@"20"];
|
||||
}
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
[self addSubview:self.backImageView];
|
||||
[self addSubview:self.bottomView];
|
||||
[self.backImageView addSubview:self.titleLabel];
|
||||
[self.backImageView addSubview:self.tableView];
|
||||
[self.tableView addSubview:self.emptyView];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
CGFloat kscale = 388.0 / 318.0;
|
||||
self.frame = CGRectMake(0, 0, KScreenWidth, KScreenWidth * kscale + 134 * kScreenScale);
|
||||
[self.bottomView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.bottom.mas_equalTo(self);
|
||||
make.top.mas_equalTo(self.backImageView.mas_bottom);
|
||||
}];
|
||||
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.top.mas_equalTo(self);
|
||||
make.height.mas_equalTo(388);
|
||||
make.width.mas_equalTo(318);
|
||||
}];
|
||||
|
||||
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
make.top.mas_equalTo(self.backImageView).offset(52);
|
||||
}];
|
||||
|
||||
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.backImageView).inset(3);
|
||||
make.top.mas_equalTo(self.backImageView).offset(82);
|
||||
make.bottom.mas_equalTo(self.backImageView).offset(-42);
|
||||
}];
|
||||
[self.emptyView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.center.equalTo(self.tableView);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - UITableViewDelegate And UITableViewDataSource
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
return 86;
|
||||
}
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
||||
return self.datasource.count;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
XPTreasureFairySendRecordCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPTreasureFairySendRecordCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPTreasureFairySendRecordCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPTreasureFairySendRecordCell class])];
|
||||
}
|
||||
TreasureFairySendRecordModel * record = [self.datasource xpSafeObjectAtIndex:indexPath.row];
|
||||
cell.recordInfo = record;
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
||||
}
|
||||
|
||||
#pragma mark - Event Response
|
||||
- (void)dismissView {
|
||||
[TTPopup dismiss];
|
||||
}
|
||||
#pragma mark - Getters And Setters
|
||||
- (UITableView *)tableView {
|
||||
if (!_tableView) {
|
||||
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
|
||||
_tableView.delegate = self;
|
||||
_tableView.dataSource = self;
|
||||
_tableView.tableFooterView = [UIView new];
|
||||
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
||||
_tableView.backgroundColor = [UIColor clearColor];
|
||||
if (@available(iOS 11.0, *)) {
|
||||
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
|
||||
}
|
||||
[_tableView registerClass:[XPTreasureFairySendRecordCell class] forCellReuseIdentifier:NSStringFromClass([XPTreasureFairySendRecordCell class])];
|
||||
}
|
||||
return _tableView;
|
||||
}
|
||||
|
||||
- (UIView *)bottomView {
|
||||
if (!_bottomView) {
|
||||
_bottomView = [[UIView alloc] init];
|
||||
_bottomView.backgroundColor = [UIColor clearColor];
|
||||
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissView)];
|
||||
[_bottomView addGestureRecognizer:tap];
|
||||
}
|
||||
return _bottomView;
|
||||
}
|
||||
|
||||
- (UIImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.userInteractionEnabled = YES;
|
||||
_backImageView.image = [UIImage imageNamed:@"room_treasure_fairy_my_send_record_back"];
|
||||
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissView)];
|
||||
[_backImageView addGestureRecognizer:tap];
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)titleLabel {
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] init];
|
||||
_titleLabel.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium];
|
||||
_titleLabel.textColor = [UIColor whiteColor];
|
||||
_titleLabel.text = YMLocalizedString(@"XPTreasureFairySendRecordView0");
|
||||
_titleLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _titleLabel;
|
||||
}
|
||||
|
||||
- (NSMutableArray *)datasource {
|
||||
if(!_datasource) {
|
||||
_datasource = [NSMutableArray array];
|
||||
}
|
||||
return _datasource;
|
||||
}
|
||||
-(UILabel *)emptyView{
|
||||
if (!_emptyView){
|
||||
_emptyView = [UILabel labelInitWithText:YMLocalizedString(@"XPTreasureFairyViewController7") font:[UIFont systemFontOfSize:15 weight:UIFontWeightMedium] textColor:[UIColor whiteColor]];
|
||||
_emptyView.hidden = YES;
|
||||
}
|
||||
return _emptyView;
|
||||
}
|
||||
@end
|
@@ -1,19 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairySendView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/23.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class TreasureFairyBallModel;
|
||||
@interface XPTreasureFairySendView : UIView
|
||||
///是否是赠送
|
||||
@property (nonatomic,assign) BOOL isSend;
|
||||
///精灵球信息
|
||||
@property (nonatomic,strong) TreasureFairyBallModel *ballInfo;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,226 +0,0 @@
|
||||
//
|
||||
// XPTreasureFairySendView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2023/2/23.
|
||||
//
|
||||
|
||||
#import "XPTreasureFairySendView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
#import "NetImageView.h"
|
||||
#import "TTPopup.h"
|
||||
|
||||
#import "Api+TreasureFairy.h"
|
||||
|
||||
///Model
|
||||
#import "TreasureFairyBallInfoModel.h"
|
||||
|
||||
@interface XPTreasureFairySendView ()
|
||||
///消失
|
||||
@property (nonatomic,strong) UIView *dismissView;
|
||||
///背景
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///显示标题
|
||||
@property (nonatomic,strong) UILabel *titleLabel;
|
||||
///精灵球
|
||||
@property (nonatomic,strong) NetImageView *ballView;
|
||||
///取消
|
||||
@property (nonatomic,strong) UIButton *cancleButton;
|
||||
///确定
|
||||
@property (nonatomic,strong) UIButton *sureButton;
|
||||
|
||||
@end
|
||||
|
||||
@implementation XPTreasureFairySendView
|
||||
|
||||
- (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.backImageView];
|
||||
[self addSubview:self.dismissView];
|
||||
|
||||
[self.backImageView addSubview:self.titleLabel];
|
||||
[self.backImageView addSubview:self.ballView];
|
||||
[self.backImageView addSubview:self.sureButton];
|
||||
[self.backImageView addSubview:self.cancleButton];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
self.frame = CGRectMake(0, 0, KScreenWidth, 285 + 183);
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(281, 285));
|
||||
make.centerX.mas_equalTo(self);
|
||||
make.top.mas_equalTo(self);
|
||||
}];
|
||||
|
||||
[self.dismissView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.bottom.mas_equalTo(self);
|
||||
make.top.mas_equalTo(self.backImageView.mas_bottom);
|
||||
}];
|
||||
|
||||
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.backImageView).inset(30);
|
||||
make.top.mas_equalTo(self.backImageView).offset(45);
|
||||
}];
|
||||
|
||||
[self.ballView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(90, 90));
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(19);
|
||||
}];
|
||||
|
||||
[self.cancleButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(104, 32));
|
||||
make.top.mas_equalTo(self.ballView.mas_bottom).offset(15);
|
||||
make.trailing.mas_equalTo(self.backImageView.mas_centerX).offset(-12);
|
||||
}];
|
||||
|
||||
[self.sureButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.centerY.mas_equalTo(self.cancleButton);
|
||||
make.leading.mas_equalTo(self.backImageView.mas_centerX).offset(12);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - Event Response
|
||||
- (void)cancleButtonAction:(UIButton *)sender {
|
||||
[TTPopup dismiss];
|
||||
}
|
||||
|
||||
- (void)sureButtonAction:(UIButton *)sender {
|
||||
[TTPopup dismiss];
|
||||
if (self.ballInfo.elfId > 0 && self.ballInfo.uid > 0) {
|
||||
NSString * elfId = [NSString stringWithFormat:@"%ld", self.ballInfo.elfId];
|
||||
NSString * uid = [NSString stringWithFormat:@"%ld", self.ballInfo.uid];
|
||||
if (self.isSend) {
|
||||
[Api treasureFairySendFairyBall:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
if (code == 200) {
|
||||
[XNDJTDDLoadingTool showSuccessWithMessage:YMLocalizedString(@"XPTreasureFairySendView0")];
|
||||
} else {
|
||||
[XNDJTDDLoadingTool showErrorWithMessage:msg];
|
||||
}
|
||||
} elfId:elfId targetUid:uid];
|
||||
} else {
|
||||
[Api treasureFairyAskForFairyBall:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
if (code == 200) {
|
||||
[XNDJTDDLoadingTool showSuccessWithMessage:YMLocalizedString(@"XPTreasureFairySendView1")];
|
||||
} else {
|
||||
[XNDJTDDLoadingTool showErrorWithMessage:msg];
|
||||
}
|
||||
} elfId:elfId targetUid:uid];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)dismissRecognizer {
|
||||
[TTPopup dismiss];
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setBallInfo:(TreasureFairyBallModel *)ballInfo {
|
||||
_ballInfo = ballInfo;
|
||||
if (_ballInfo) {
|
||||
self.ballView.imageUrl = _ballInfo.elfPicUrl;
|
||||
NSString * nick = _ballInfo.nick;
|
||||
NSString * title;
|
||||
if (self.isSend) {
|
||||
title = [NSString stringWithFormat:YMLocalizedString(@"XPTreasureFairySendView2"), nick, _ballInfo.elfName];
|
||||
} else {
|
||||
title = [NSString stringWithFormat:YMLocalizedString(@"XPTreasureFairySendView3"), nick, _ballInfo.elfName];
|
||||
}
|
||||
NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15], NSForegroundColorAttributeName:[UIColor whiteColor]}];
|
||||
[attribute addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor colorWithHexString:@"#FEF8AA"] range:[title rangeOfString:nick]];
|
||||
self.titleLabel.attributedText = attribute;
|
||||
self.titleLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setIsSend:(BOOL)isSend {
|
||||
_isSend = isSend;
|
||||
if (_isSend) {
|
||||
[self.sureButton setTitle:YMLocalizedString(@"XPTreasureFairySendView4") forState:UIControlStateNormal];
|
||||
} else {
|
||||
[self.sureButton setTitle:YMLocalizedString(@"XPTreasureFairySendView5") forState:UIControlStateNormal];
|
||||
}
|
||||
}
|
||||
|
||||
- (UIView *)dismissView {
|
||||
if (!_dismissView) {
|
||||
_dismissView = [[UIView alloc] init];
|
||||
_dismissView.backgroundColor = [UIColor clearColor];
|
||||
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissRecognizer)];
|
||||
[_dismissView addGestureRecognizer:tap];
|
||||
}
|
||||
return _dismissView;
|
||||
}
|
||||
|
||||
- (UIImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.userInteractionEnabled = YES;
|
||||
_backImageView.image = [UIImage imageNamed:@"room_treasure_fairy_my_send_record_bg"];
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
|
||||
- (NetImageView *)ballView {
|
||||
if (!_ballView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_ballView = [[NetImageView alloc] initWithConfig:config];
|
||||
_ballView.layer.masksToBounds = YES;
|
||||
_ballView.layer.cornerRadius = 45;
|
||||
_ballView.layer.borderColor = [DJDKMIMOMColor appMainColor].CGColor;
|
||||
_ballView.layer.borderWidth = 0.5;
|
||||
}
|
||||
return _ballView;
|
||||
}
|
||||
|
||||
- (UILabel *)titleLabel {
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] init];
|
||||
_titleLabel.numberOfLines = 0;
|
||||
}
|
||||
return _titleLabel;
|
||||
}
|
||||
|
||||
- (UIButton *)cancleButton {
|
||||
if (!_cancleButton) {
|
||||
_cancleButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_cancleButton setTitle:YMLocalizedString(@"XPTreasureFairySendView6") forState:UIControlStateNormal];
|
||||
[_cancleButton setTitleColor:[DJDKMIMOMColor colorWithHexString:@"#008573"] forState:UIControlStateNormal];
|
||||
_cancleButton.titleLabel.font = [UIFont systemFontOfSize:13];
|
||||
[_cancleButton setBackgroundImage:[UIImage imageNamed:@"room_treasure_fairy_store_result_close_bg"] forState:UIControlStateNormal];
|
||||
_cancleButton.layer.masksToBounds = YES;
|
||||
_cancleButton.layer.cornerRadius = 10;
|
||||
[_cancleButton addTarget:self action:@selector(cancleButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _cancleButton;
|
||||
}
|
||||
|
||||
- (UIButton *)sureButton {
|
||||
if (!_sureButton) {
|
||||
_sureButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_sureButton setTitleColor:[DJDKMIMOMColor colorWithHexString:@"#8A4801"] forState:UIControlStateNormal];
|
||||
_sureButton.titleLabel.font = [UIFont systemFontOfSize:13];
|
||||
[_sureButton setBackgroundImage:[UIImage imageNamed:@"room_treasure_fairy_sure_bg"] forState:UIControlStateNormal];
|
||||
_sureButton.layer.masksToBounds = YES;
|
||||
_sureButton.layer.cornerRadius = 10;
|
||||
_sureButton.yn_acceptEventInterval = 1;
|
||||
[_sureButton addTarget:self action:@selector(sureButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _sureButton;
|
||||
}
|
||||
|
||||
|
||||
@end
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user