夺宝精灵改动
2
Podfile
@@ -41,7 +41,7 @@ target 'YuMi' do
|
||||
#上传音乐
|
||||
pod 'CocoaAsyncSocket',:modular_headers => true
|
||||
#声网
|
||||
pod 'AgoraRtcEngine_iOS', '~> 3.2.2'
|
||||
pod 'AgoraRtcEngine_iOS', '~> 4.2.2'
|
||||
#上传图片
|
||||
pod 'Qiniu'
|
||||
#内购
|
||||
|
||||
@@ -312,6 +312,12 @@
|
||||
23FF42732AA6CC480055733C /* PIHomeItemModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF42722AA6CC480055733C /* PIHomeItemModel.m */; };
|
||||
23FF42762AA6E1480055733C /* XPHomeRecommendOtherRoomView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF42752AA6E1480055733C /* XPHomeRecommendOtherRoomView.m */; };
|
||||
23FF42792AA6E19C0055733C /* HomeMenuSourceModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF42782AA6E19C0055733C /* HomeMenuSourceModel.m */; };
|
||||
23FF427C2AA71CFA0055733C /* XPTreasureFairyBottomView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF427B2AA71CFA0055733C /* XPTreasureFairyBottomView.m */; };
|
||||
23FF427F2AA86E360055733C /* XPTreasureFairyNewSummonView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF427E2AA86E360055733C /* XPTreasureFairyNewSummonView.m */; };
|
||||
23FF42822AA86E830055733C /* XPTreasureFairyNewSummonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF42812AA86E830055733C /* XPTreasureFairyNewSummonCell.m */; };
|
||||
23FF42852AA9AC600055733C /* PITreasureFairyBuyElfShardSuccessView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF42842AA9AC600055733C /* PITreasureFairyBuyElfShardSuccessView.m */; };
|
||||
23FF42882AA9BEF40055733C /* PITreasureFairyBuyElfShardView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF42872AA9BEF40055733C /* PITreasureFairyBuyElfShardView.m */; };
|
||||
23FF428B2AA9C0DC0055733C /* PITreasureFairyBuyElfShardInputNumView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF428A2AA9C0DC0055733C /* PITreasureFairyBuyElfShardInputNumView.m */; };
|
||||
73FFADDC93E195344047A2EC /* Pods_YuMi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CACF623970097D653132D69A /* Pods_YuMi.framework */; };
|
||||
9B0086C627BA392B0032BD2B /* AnchorStageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0086C527BA392B0032BD2B /* AnchorStageView.m */; };
|
||||
9B0086CA27BA4F570032BD2B /* AnchorMicroView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0086C927BA4F570032BD2B /* AnchorMicroView.m */; };
|
||||
@@ -1977,6 +1983,18 @@
|
||||
23FF42752AA6E1480055733C /* XPHomeRecommendOtherRoomView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPHomeRecommendOtherRoomView.m; sourceTree = "<group>"; };
|
||||
23FF42772AA6E19C0055733C /* HomeMenuSourceModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeMenuSourceModel.h; sourceTree = "<group>"; };
|
||||
23FF42782AA6E19C0055733C /* HomeMenuSourceModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeMenuSourceModel.m; sourceTree = "<group>"; };
|
||||
23FF427A2AA71CFA0055733C /* XPTreasureFairyBottomView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyBottomView.h; sourceTree = "<group>"; };
|
||||
23FF427B2AA71CFA0055733C /* XPTreasureFairyBottomView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyBottomView.m; sourceTree = "<group>"; };
|
||||
23FF427D2AA86E360055733C /* XPTreasureFairyNewSummonView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyNewSummonView.h; sourceTree = "<group>"; };
|
||||
23FF427E2AA86E360055733C /* XPTreasureFairyNewSummonView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyNewSummonView.m; sourceTree = "<group>"; };
|
||||
23FF42802AA86E830055733C /* XPTreasureFairyNewSummonCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyNewSummonCell.h; sourceTree = "<group>"; };
|
||||
23FF42812AA86E830055733C /* XPTreasureFairyNewSummonCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyNewSummonCell.m; sourceTree = "<group>"; };
|
||||
23FF42832AA9AC600055733C /* PITreasureFairyBuyElfShardSuccessView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PITreasureFairyBuyElfShardSuccessView.h; sourceTree = "<group>"; };
|
||||
23FF42842AA9AC600055733C /* PITreasureFairyBuyElfShardSuccessView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PITreasureFairyBuyElfShardSuccessView.m; sourceTree = "<group>"; };
|
||||
23FF42862AA9BEF40055733C /* PITreasureFairyBuyElfShardView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PITreasureFairyBuyElfShardView.h; sourceTree = "<group>"; };
|
||||
23FF42872AA9BEF40055733C /* PITreasureFairyBuyElfShardView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PITreasureFairyBuyElfShardView.m; sourceTree = "<group>"; };
|
||||
23FF42892AA9C0DC0055733C /* PITreasureFairyBuyElfShardInputNumView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PITreasureFairyBuyElfShardInputNumView.h; sourceTree = "<group>"; };
|
||||
23FF428A2AA9C0DC0055733C /* PITreasureFairyBuyElfShardInputNumView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PITreasureFairyBuyElfShardInputNumView.m; sourceTree = "<group>"; };
|
||||
7DB00EC07F1D0ADFF900B38D /* Pods-YuMi.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-YuMi.debug.xcconfig"; path = "Target Support Files/Pods-YuMi/Pods-YuMi.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
9B0086C427BA392B0032BD2B /* AnchorStageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnchorStageView.h; sourceTree = "<group>"; };
|
||||
9B0086C527BA392B0032BD2B /* AnchorStageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AnchorStageView.m; sourceTree = "<group>"; };
|
||||
@@ -5206,23 +5224,25 @@
|
||||
23E9E9DD2A837BE300B792F2 /* Cell */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
23E9E9DE2A837BE300B792F2 /* XPTreasureFairyStoreResultCell.m */,
|
||||
23E9E9DF2A837BE300B792F2 /* XPTreasureFairyShopingRecordCell.h */,
|
||||
23E9E9E02A837BE300B792F2 /* XPTreasureFailyResultGiftCell.h */,
|
||||
23E9E9E12A837BE300B792F2 /* XPTreasureFairySendRecordCell.h */,
|
||||
23E9E9E22A837BE300B792F2 /* XPTreasureFairyFriendCell.m */,
|
||||
23E9E9E32A837BE300B792F2 /* XPTreasureFairyPrizePoolCell.m */,
|
||||
23E9E9E42A837BE300B792F2 /* XPTreasureFairyPrizeRecordCell.m */,
|
||||
23E9E9E52A837BE300B792F2 /* XPTreasureFairyTrialsRecordCell.h */,
|
||||
23E9E9E62A837BE300B792F2 /* XPTreasureFairyShopingExchangeCell.h */,
|
||||
23E9E9E72A837BE300B792F2 /* XPTreasureFairyStoreResultCell.h */,
|
||||
23E9E9E82A837BE300B792F2 /* XPTreasureFailyResultGiftCell.m */,
|
||||
23E9E9E92A837BE300B792F2 /* XPTreasureFairyShopingRecordCell.m */,
|
||||
23E9E9EA2A837BE300B792F2 /* XPTreasureFairyFriendCell.h */,
|
||||
23E9E9EB2A837BE300B792F2 /* XPTreasureFairySendRecordCell.m */,
|
||||
23E9E9EC2A837BE300B792F2 /* XPTreasureFairyPrizeRecordCell.h */,
|
||||
23E9E9E22A837BE300B792F2 /* XPTreasureFairyFriendCell.m */,
|
||||
23FF42802AA86E830055733C /* XPTreasureFairyNewSummonCell.h */,
|
||||
23FF42812AA86E830055733C /* XPTreasureFairyNewSummonCell.m */,
|
||||
23E9E9ED2A837BE300B792F2 /* XPTreasureFairyPrizePoolCell.h */,
|
||||
23E9E9E32A837BE300B792F2 /* XPTreasureFairyPrizePoolCell.m */,
|
||||
23E9E9EC2A837BE300B792F2 /* XPTreasureFairyPrizeRecordCell.h */,
|
||||
23E9E9E42A837BE300B792F2 /* XPTreasureFairyPrizeRecordCell.m */,
|
||||
23E9E9E12A837BE300B792F2 /* XPTreasureFairySendRecordCell.h */,
|
||||
23E9E9EB2A837BE300B792F2 /* XPTreasureFairySendRecordCell.m */,
|
||||
23E9E9E62A837BE300B792F2 /* XPTreasureFairyShopingExchangeCell.h */,
|
||||
23E9E9EE2A837BE300B792F2 /* XPTreasureFairyShopingExchangeCell.m */,
|
||||
23E9E9DF2A837BE300B792F2 /* XPTreasureFairyShopingRecordCell.h */,
|
||||
23E9E9E92A837BE300B792F2 /* XPTreasureFairyShopingRecordCell.m */,
|
||||
23E9E9E72A837BE300B792F2 /* XPTreasureFairyStoreResultCell.h */,
|
||||
23E9E9DE2A837BE300B792F2 /* XPTreasureFairyStoreResultCell.m */,
|
||||
23E9E9E52A837BE300B792F2 /* XPTreasureFairyTrialsRecordCell.h */,
|
||||
23E9E9EF2A837BE300B792F2 /* XPTreasureFairyTrialsRecordCell.m */,
|
||||
);
|
||||
path = Cell;
|
||||
@@ -5283,6 +5303,8 @@
|
||||
23E9EA122A837BE400B792F2 /* XPTreasureFairySummonGiftView.m */,
|
||||
23E9EA142A837BE400B792F2 /* XPTreasureFairySummonView.h */,
|
||||
23E9E9F32A837BE300B792F2 /* XPTreasureFairySummonView.m */,
|
||||
23FF427D2AA86E360055733C /* XPTreasureFairyNewSummonView.h */,
|
||||
23FF427E2AA86E360055733C /* XPTreasureFairyNewSummonView.m */,
|
||||
23E9E9FA2A837BE300B792F2 /* XPTreasureFairyTrialsBallView.h */,
|
||||
23E9EA1D2A837BE400B792F2 /* XPTreasureFairyTrialsBallView.m */,
|
||||
23E9EA1F2A837BE400B792F2 /* XPTreasureFairyTrialsContentView.h */,
|
||||
@@ -5293,6 +5315,14 @@
|
||||
23E9EA1C2A837BE400B792F2 /* XPTreasureFairyTrialsView.m */,
|
||||
23E9EA282A837BE400B792F2 /* XPTreasureFairyWebView.h */,
|
||||
23E9EA0D2A837BE300B792F2 /* XPTreasureFairyWebView.m */,
|
||||
23FF427A2AA71CFA0055733C /* XPTreasureFairyBottomView.h */,
|
||||
23FF427B2AA71CFA0055733C /* XPTreasureFairyBottomView.m */,
|
||||
23FF42832AA9AC600055733C /* PITreasureFairyBuyElfShardSuccessView.h */,
|
||||
23FF42842AA9AC600055733C /* PITreasureFairyBuyElfShardSuccessView.m */,
|
||||
23FF42862AA9BEF40055733C /* PITreasureFairyBuyElfShardView.h */,
|
||||
23FF42872AA9BEF40055733C /* PITreasureFairyBuyElfShardView.m */,
|
||||
23FF42892AA9C0DC0055733C /* PITreasureFairyBuyElfShardInputNumView.h */,
|
||||
23FF428A2AA9C0DC0055733C /* PITreasureFairyBuyElfShardInputNumView.m */,
|
||||
);
|
||||
path = View;
|
||||
sourceTree = "<group>";
|
||||
@@ -10225,6 +10255,7 @@
|
||||
9B7D904D287BC5E20033A45E /* AnchorRoomScrollView.m in Sources */,
|
||||
E80DE4072775665000BE5BCB /* XPFirstRechargeCollectionViewCell.m in Sources */,
|
||||
E8899C822785A694007944BE /* DatingInfoModel.m in Sources */,
|
||||
23FF428B2AA9C0DC0055733C /* PITreasureFairyBuyElfShardInputNumView.m in Sources */,
|
||||
9BB89DC327FE7F3A00586A83 /* XPAnchorFansRelationModel.m in Sources */,
|
||||
E8AC723226F49710007D6E91 /* XPMineNotificationTableViewCell.m in Sources */,
|
||||
E87E62592A3F560B002F68C9 /* XPHomePartyViewController.m in Sources */,
|
||||
@@ -10539,6 +10570,7 @@
|
||||
E8AC722426F47E5E007D6E91 /* XPMineFeedbackViewController.m in Sources */,
|
||||
E8664ED627E434D5000171BA /* XPRoomPKRecordViewController.m in Sources */,
|
||||
E87E914E2796678D00A7B3F2 /* XPMineDressEmptyTableViewCell.m in Sources */,
|
||||
23FF42822AA86E830055733C /* XPTreasureFairyNewSummonCell.m in Sources */,
|
||||
9B7D804D27537950003DAC0C /* MessageCell.m in Sources */,
|
||||
23E9EAA62A84C97C00B792F2 /* XPMineUserInfoTagVC.m in Sources */,
|
||||
9B044D9D282D2A6400DE4859 /* XPRoomAnchorRankEnterView.m in Sources */,
|
||||
@@ -10690,6 +10722,7 @@
|
||||
18A61BE8274F9CF000A09A54 /* SessionListViewController.m in Sources */,
|
||||
E8C1CD6A27D8937800376F83 /* XPRoomFaceCollectionViewCell.m in Sources */,
|
||||
9B2EA7C02804037700ED17BF /* AnchorPKStageView.m in Sources */,
|
||||
23FF427C2AA71CFA0055733C /* XPTreasureFairyBottomView.m in Sources */,
|
||||
E811FFF72742367B00918544 /* XPGiftEmptyCollectionViewCell.m in Sources */,
|
||||
189DD67E26E1FD8900AB55B1 /* UIImage+Utils.m in Sources */,
|
||||
E82D5C73276AE94800858D6D /* CarModel.m in Sources */,
|
||||
@@ -10705,6 +10738,7 @@
|
||||
E8DD25DA295583920043C7D5 /* XPAnchorRandomPKRuleView.m in Sources */,
|
||||
E8664EDC27E43632000171BA /* XPRoomPKEmptyTableViewCell.m in Sources */,
|
||||
E8778AE42988B57B00CF139B /* MessageContentRevokeView.m in Sources */,
|
||||
23FF427F2AA86E360055733C /* XPTreasureFairyNewSummonView.m in Sources */,
|
||||
E880B3A9278BD82300A83B0D /* AcrossRoomPKInfoModel.m in Sources */,
|
||||
23E9EA542A837BE400B792F2 /* XPTreasureFairyPrizeRecordView.m in Sources */,
|
||||
9B88E20F28C6305400D26FBA /* XPRoomSearchRecordViewController.m in Sources */,
|
||||
@@ -10963,6 +10997,7 @@
|
||||
14DCAD0E299B6AD900A7DD31 /* XPForgetPwdViewController.m in Sources */,
|
||||
9BE9F0FF27FED76500667200 /* XPAnchorFansTaskModel.m in Sources */,
|
||||
E85E7BAA2A4EC99300B6D00A /* XPMineGiveDiamondPwdView.m in Sources */,
|
||||
23FF42852AA9AC600055733C /* PITreasureFairyBuyElfShardSuccessView.m in Sources */,
|
||||
E88C72922828EA4E0047FB2B /* Music+CoreDataClass.m in Sources */,
|
||||
E84A2EA52A5288CB00D6AF8A /* XPGoldDetailsChooseRoomView.m in Sources */,
|
||||
E8E7DAE82744F5EF00C631CC /* XPGiftStorage.m in Sources */,
|
||||
@@ -10977,6 +11012,7 @@
|
||||
E8AB630D28ADD8C60023B0D2 /* XPMonentTopicContainerViewController.m in Sources */,
|
||||
23E9EA7C2A83977400B792F2 /* MessageContentTreasureFairyView.m in Sources */,
|
||||
E8D4DE472940473500EC788D /* GiftTwelveStarFirstModel.m in Sources */,
|
||||
23FF42882AA9BEF40055733C /* PITreasureFairyBuyElfShardView.m in Sources */,
|
||||
E87DF4FB2A42CCDE009C1185 /* XPHomeRedommendCollectionViewCell.m in Sources */,
|
||||
187EEEF026E89FE8002833B2 /* AccountInfoStorage.m in Sources */,
|
||||
2331C1B82A60F32D00E1D940 /* XPRoomHalfWebView.m in Sources */,
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_treasure_bg@2x.png",
|
||||
"filename" : "room_treasure_fairy_bottom_bg@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_treasure_bg@3x.png",
|
||||
"filename" : "room_treasure_fairy_bottom_bg@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 75 KiB |
@@ -5,12 +5,12 @@
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_my_middle_title_normal@2x.png",
|
||||
"filename" : "room_treasure_fairy_bottom_buy@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_my_middle_title_normal@3x.png",
|
||||
"filename" : "room_treasure_fairy_bottom_buy@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
@@ -5,12 +5,12 @@
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_my_middle_title_select@2x.png",
|
||||
"filename" : "room_treasure_fairy_bottom_icon@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_my_middle_title_select@3x.png",
|
||||
"filename" : "room_treasure_fairy_bottom_icon@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
22
YuMi/Assets.xcassets/jm/Fairy/room_treasure_fairy_buy_elf_bg.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_buy_elf_bg@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_buy_elf_bg@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 190 KiB |
22
YuMi/Assets.xcassets/jm/Fairy/room_treasure_fairy_buy_elf_but_btn.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_buy_elf_but_btn@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_buy_elf_but_btn@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 10 KiB |
22
YuMi/Assets.xcassets/jm/Fairy/room_treasure_fairy_buy_elf_choose.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_buy_elf_choose@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_buy_elf_choose@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 309 B |
|
After Width: | Height: | Size: 458 B |
22
YuMi/Assets.xcassets/jm/Fairy/room_treasure_fairy_buy_elf_icon.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_buy_elf_icon@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_buy_elf_icon@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 14 KiB |
22
YuMi/Assets.xcassets/jm/Fairy/room_treasure_fairy_buy_elf_no_choose.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_buy_elf_no_choose@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_buy_elf_no_choose@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 251 B |
|
After Width: | Height: | Size: 368 B |
22
YuMi/Assets.xcassets/jm/Fairy/room_treasure_fairy_buy_elf_price.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_buy_elf_price@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_buy_elf_price@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
22
YuMi/Assets.xcassets/jm/Fairy/room_treasure_fairy_buy_elf_title.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_buy_elf_title@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_buy_elf_title@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 9.4 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 8.8 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 31 KiB |
22
YuMi/Assets.xcassets/jm/Fairy/room_treasure_fairy_new_buy_elf_add.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_new_buy_elf_add@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_new_buy_elf_add@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
22
YuMi/Assets.xcassets/jm/Fairy/room_treasure_fairy_new_buy_elf_bg.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_new_buy_elf_bg@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_new_buy_elf_bg@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 153 KiB |
22
YuMi/Assets.xcassets/jm/Fairy/room_treasure_fairy_new_buy_elf_subtract.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_new_buy_elf_subtract@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_new_buy_elf_subtract@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
22
YuMi/Assets.xcassets/jm/Fairy/room_treasure_fairy_new_buy_elf_title.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_new_buy_elf_title@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_new_buy_elf_title@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 9.0 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 18 KiB |
22
YuMi/Assets.xcassets/jm/Fairy/room_treasure_fairy_shop_new_exchange_bg.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_shop_new_exchange_bg@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_shop_new_exchange_bg@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 9.9 KiB |
@@ -5,7 +5,7 @@
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_trials_high_ball_bg.png",
|
||||
"filename" : "room_treasure_fairy_trials_high_ball_bg@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
|
||||
|
Before Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 131 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 9.7 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 18 KiB |
@@ -5,7 +5,7 @@
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_treasure_fairy_trials_middle_ball_bg.png",
|
||||
"filename" : "room_treasure_fairy_trials_middle_ball_bg@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
|
||||
|
Before Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 17 KiB |
@@ -99,7 +99,7 @@ UIKIT_EXTERN NSString * kUpdateSoundInfo;
|
||||
|
||||
-(void)viewDidAppear:(BOOL)animated{
|
||||
[super viewDidAppear:animated];
|
||||
self.countDownHelper .delegate = self;
|
||||
self.countDownHelper.delegate = self;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "YUMINNNN.h"
|
||||
#import "HomeBannerInfoModel.h"
|
||||
#import "UserInfoModel.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class HomePlayMicUserModel;
|
||||
@interface HomePlayRoomModel : NSObject
|
||||
@@ -57,11 +58,13 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
@property(nonatomic,copy) NSString *voiceDura;
|
||||
///标签
|
||||
@property(nonatomic,copy) NSArray *labels;
|
||||
///标签宽度
|
||||
@property(nonatomic,copy) NSArray *labelsWidthList;
|
||||
///生日
|
||||
@property(nonatomic,assign) long birth;
|
||||
///昵称
|
||||
@property(nonatomic,copy) NSString *nick;
|
||||
|
||||
@property(nonatomic,strong) UserLevelVo *userLevelVo;
|
||||
@end
|
||||
|
||||
@interface HomePlayMicUserModel : NSObject
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@protocol XPNewHomeRecommendProtocol <NSObject>
|
||||
@optional
|
||||
///获取首页轮播图列表成功
|
||||
- (void)getHomeTopBannerListSuccess:(NSArray*)list menuList:(NSArray *)memuList withGroup:(dispatch_group_t)group;
|
||||
///获取首页推荐列表成功
|
||||
|
||||
@@ -8,18 +8,22 @@
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class XPNewHomePartyAudioView;
|
||||
@protocol XPNewHomePartyAudioViewDelegate <NSObject>
|
||||
|
||||
-(void)playVoiceWithStop:(BOOL)isStop;
|
||||
-(void)xPNewHomePartyAudioView:(XPNewHomePartyAudioView *)view didClickPlaySound:(BOOL)isPlay;
|
||||
|
||||
@end
|
||||
@interface XPNewHomePartyAudioView : UIView
|
||||
|
||||
///签名
|
||||
@property(nonatomic,copy) NSString *userDesc;
|
||||
///语音
|
||||
@property(nonatomic,copy) NSString *userVoice;
|
||||
///语音时长
|
||||
@property(nonatomic,copy) NSString *voiceDura;
|
||||
@property(nonatomic,assign) BOOL isPlay;
|
||||
@property(nonatomic,assign) BOOL isHiddenVew;
|
||||
@property(nonatomic,weak) id<XPNewHomePartyAudioViewDelegate>delegate;
|
||||
@end
|
||||
|
||||
|
||||
@@ -19,8 +19,7 @@
|
||||
@property(nonatomic,strong) UIImageView *audioBgView;
|
||||
///时间
|
||||
@property(nonatomic,strong) UILabel *timeView;
|
||||
///播放完成
|
||||
@property (nonatomic,assign) BOOL isPlaying;
|
||||
|
||||
@end
|
||||
@implementation XPNewHomePartyAudioView
|
||||
|
||||
@@ -33,11 +32,17 @@
|
||||
return self;
|
||||
}
|
||||
-(void)installUI{
|
||||
UIView *subView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 20, kGetScaleWidth(13))];
|
||||
[self addSubview:subView];
|
||||
subView.tag = 100001;
|
||||
subView.backgroundColor = UIColorFromRGB(0xF5F6FA);
|
||||
[subView setCornerWithLeftTopCorner:kGetScaleWidth(2) rightTopCorner:0 bottomLeftCorner:0 bottomRightCorner:0 size:CGSizeMake(20, kGetScaleWidth(13))];
|
||||
[self addSubview:self.bgView];
|
||||
[self.bgView addSubview:self.signatureView];
|
||||
[self.bgView addSubview:self.playBnt];
|
||||
[self.bgView addSubview:self.audioBgView];
|
||||
[self.bgView addSubview:self.timeView];
|
||||
|
||||
}
|
||||
-(void)installConstraints{
|
||||
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
@@ -66,70 +71,10 @@
|
||||
}
|
||||
-(void)playAudioAction:(UIButton *)sender{
|
||||
_playBnt.selected = !_playBnt.selected;
|
||||
if (!self.isPlaying) {
|
||||
if(_userVoice.length > 0) {
|
||||
// NSString *fileName = [[self.voiceInfo.name componentsSeparatedByString:@"/"] lastObject];
|
||||
NSString * url = _userVoice;
|
||||
NSArray * nameArray = [url componentsSeparatedByString:@"/"];
|
||||
NSString * fileName = @"daeplay";
|
||||
if (nameArray.count > 0) {
|
||||
fileName = nameArray.lastObject;
|
||||
}
|
||||
|
||||
NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"mineSkillCardVoice"];
|
||||
NSString *fullPath = [filePath stringByAppendingPathComponent:fileName];
|
||||
NSLog(@"下载的路径:%@", fullPath);
|
||||
if ([[NSFileManager defaultManager] fileExistsAtPath:fullPath]) {
|
||||
self.isPlaying = YES;
|
||||
sender.selected = YES;
|
||||
|
||||
[[XPSkillCardPlayerManager shareInstance] playerVoiceWithPath:fullPath completionBlock:^{
|
||||
self.isPlaying = NO;
|
||||
sender.selected = NO;
|
||||
[[XPSkillCardPlayerManager shareInstance] stopMusic];
|
||||
}];
|
||||
} else {
|
||||
if (![[NSFileManager defaultManager] fileExistsAtPath:fullPath]) {
|
||||
NSFileManager *fileMgr = [[NSFileManager alloc] init];
|
||||
NSError * error;
|
||||
[fileMgr createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:&error];
|
||||
NSLog(@"%@", error.description);
|
||||
}
|
||||
[self downloadAudioWithFileName:fileName musicUrl:url completion:^(BOOL isSuccess, NSString *editAudioPath) {
|
||||
self.isPlaying = YES;
|
||||
sender.selected = YES;
|
||||
|
||||
[[XPSkillCardPlayerManager shareInstance] playerVoiceWithPath:editAudioPath completionBlock:^{
|
||||
self.isPlaying = NO;
|
||||
sender.selected = NO;
|
||||
|
||||
[[XPSkillCardPlayerManager shareInstance] stopMusic];
|
||||
}];
|
||||
}];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
self.isPlaying = NO;
|
||||
sender.selected = NO;
|
||||
[[XPSkillCardPlayerManager shareInstance] stopMusic];
|
||||
if(self.delegate && [self.delegate respondsToSelector:@selector(xPNewHomePartyAudioView:didClickPlaySound:)]){
|
||||
[self.delegate xPNewHomePartyAudioView:self didClickPlaySound:_playBnt.selected];
|
||||
}
|
||||
}
|
||||
- (void)downloadAudioWithFileName:(NSString *)fileName musicUrl:(NSString *)musicUrl completion:(void (^) (BOOL isSuccess, NSString *editAudioPath))completion {
|
||||
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
|
||||
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:musicUrl]];
|
||||
NSURLSessionDownloadTask *download = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) {
|
||||
} destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {
|
||||
NSString *filePath = [[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"mineSkillCardVoice"] stringByAppendingPathComponent:fileName];
|
||||
return [NSURL fileURLWithPath:filePath];
|
||||
} completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {
|
||||
if (!error) {
|
||||
completion(YES, filePath.path);
|
||||
} else {
|
||||
completion(NO, nil);
|
||||
}
|
||||
}];
|
||||
[download resume];
|
||||
}
|
||||
-(void)setUserVoice:(NSString *)userVoice{
|
||||
_userVoice = userVoice;
|
||||
_playBnt.hidden = NO;
|
||||
@@ -137,7 +82,11 @@
|
||||
_timeView.hidden = NO;
|
||||
_signatureView.hidden = YES;
|
||||
_signatureView.text = @"";
|
||||
_timeView.text = [NSString stringWithFormat:@"%@\"",_voiceDura];
|
||||
|
||||
[self.bgView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.top.bottom.equalTo(self);
|
||||
make.width.mas_equalTo(kGetScaleWidth(85));
|
||||
}];
|
||||
}
|
||||
-(void)setUserDesc:(NSString *)userDesc{
|
||||
_userDesc = userDesc;
|
||||
@@ -146,6 +95,24 @@
|
||||
_timeView.hidden = YES;
|
||||
_signatureView.hidden = NO;
|
||||
_signatureView.text = _userDesc;
|
||||
[self.bgView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.top.bottom.equalTo(self);
|
||||
make.width.mas_lessThanOrEqualTo(kGetScaleWidth(192));
|
||||
}];
|
||||
}
|
||||
-(void)setVoiceDura:(NSString *)voiceDura{
|
||||
_voiceDura = voiceDura;
|
||||
_timeView.text = [NSString stringWithFormat:@"%@\"",_voiceDura];
|
||||
}
|
||||
- (void)setIsHiddenVew:(BOOL)isHiddenVew{
|
||||
_isHiddenVew = isHiddenVew;
|
||||
UIView *view = [self viewWithTag:100001];
|
||||
view.hidden = _isHiddenVew;
|
||||
_bgView.hidden = _isHiddenVew;
|
||||
}
|
||||
- (void)setIsPlay:(BOOL)isPlay{
|
||||
_isPlay = isPlay;
|
||||
_playBnt.selected = _isPlay;
|
||||
}
|
||||
#pragma mark - 懒加载
|
||||
- (UIView *)bgView{
|
||||
@@ -154,9 +121,7 @@
|
||||
_bgView.backgroundColor = UIColorFromRGB(0xF5F6FA);
|
||||
_bgView.layer.cornerRadius = kGetScaleWidth(26)/2;
|
||||
_bgView.layer.masksToBounds = YES;
|
||||
UIView *subView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 20, kGetScaleWidth(13))];
|
||||
[_bgView addSubview:subView];
|
||||
[subView setCornerWithLeftTopCorner:kGetScaleWidth(2) rightTopCorner:0 bottomLeftCorner:0 bottomRightCorner:0 size:CGSizeMake(20, kGetScaleWidth(12))];
|
||||
|
||||
}
|
||||
return _bgView;
|
||||
}
|
||||
@@ -171,7 +136,7 @@
|
||||
_playBnt = [UIButton new];
|
||||
[_playBnt setImage:kImage(@"home_audio_play_play") forState:UIControlStateNormal];
|
||||
[_playBnt setImage:kImage(@"home_audio_stop") forState:UIControlStateSelected];
|
||||
[_playBnt addTarget:self action:@selector(playAudioAction) forControlEvents:UIControlEventTouchUpInside];
|
||||
[_playBnt addTarget:self action:@selector(playAudioAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _playBnt;
|
||||
}
|
||||
|
||||
@@ -15,16 +15,21 @@
|
||||
///点击聊天
|
||||
-(void)xPNewHomePartyTableViewCell:(XPNewHomePartyTableViewCell *_Nullable)cell didSelectChat:(HomePlayRoomModel *_Nonnull)roomModel;
|
||||
///播放音乐
|
||||
-(void)xPNewHomePartyTableViewCell:(XPNewHomePartyTableViewCell *_Nullable)cell didPlayVoice:(HomePlayRoomModel *_Nonnull)roomModel isStop:(BOOL)isStop;
|
||||
-(void)xPNewHomePartyTableViewCell:(XPNewHomePartyTableViewCell *_Nullable)cell didPlayVoice:(HomePlayRoomModel *_Nonnull)roomModel didClickPlaySound:(BOOL)isPlay;
|
||||
@end
|
||||
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class HomePlayRoomModel, HomeRecommendRoomModel;
|
||||
@interface XPNewHomePartyTableViewCell : UITableViewCell
|
||||
|
||||
@property (nonatomic,strong) HomePlayRoomModel *roomInfo;
|
||||
@property (nonatomic,strong) HomeRecommendRoomModel *roomInfo1;
|
||||
@property(nonatomic,weak) id<XPNewHomePartyTableViewCellDelegate>delegate;
|
||||
///声音卡时,svga是否播放动画
|
||||
-(void)setPlaySoundStatus:(BOOL)isPlay;
|
||||
///声音卡倒计时
|
||||
-(void)setPlaySoundTime:(NSInteger)time;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
@@ -19,15 +19,15 @@
|
||||
#import "XPNewHomePartyAudioView.h"
|
||||
|
||||
|
||||
@interface XPNewHomePartyTableViewCell ()
|
||||
///容器
|
||||
@property(nonatomic,strong) UIStackView *stackView;
|
||||
@interface XPNewHomePartyTableViewCell ()<XPNewHomePartyAudioViewDelegate>
|
||||
///头像
|
||||
@property (nonatomic,strong) NetImageView *avatarImageView;
|
||||
///背景
|
||||
@property (nonatomic,strong) UIView *bgView;
|
||||
///房间标题
|
||||
@property (nonatomic,strong) UILabel *titleLabel;
|
||||
///点击房间标题
|
||||
@property(nonatomic,strong) UIButton *nameTapBtn;
|
||||
///标签
|
||||
@property(nonatomic,strong) XPNewHomePartyTagView *tagView;
|
||||
///小绿点
|
||||
@@ -71,7 +71,7 @@
|
||||
[self.bgView addSubview:self.gameBgView];
|
||||
[self.bgView addSubview:self.gameIconView];
|
||||
[self.bgView addSubview:self.greenView];
|
||||
[self.bgView addSubview:self.stackView];
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -82,12 +82,12 @@
|
||||
|
||||
|
||||
|
||||
[self.stackView addArrangedSubview:self.titleLabel];
|
||||
[self.stackView addArrangedSubview:self.birthdayView];
|
||||
[self.stackView addArrangedSubview:self.wealthView];
|
||||
[self.stackView addArrangedSubview:self.charmView];
|
||||
|
||||
[self.bgView addSubview:self.titleLabel];
|
||||
[self.bgView addSubview:self.birthdayView];
|
||||
[self.bgView addSubview:self.wealthView];
|
||||
[self.bgView addSubview:self.charmView];
|
||||
|
||||
[self.bgView addSubview:self.nameTapBtn];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
@@ -113,7 +113,7 @@
|
||||
make.leading.mas_equalTo(kGetScaleWidth(60));
|
||||
make.top.mas_equalTo(kGetScaleWidth(64));
|
||||
}];
|
||||
[self.greenView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
[self.gameBgView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(kGetScaleWidth(48));
|
||||
make.leading.mas_equalTo(kGetScaleWidth(14));
|
||||
make.width.mas_equalTo(kGetScaleWidth(60));
|
||||
@@ -126,22 +126,29 @@
|
||||
make.height.mas_equalTo(kGetScaleWidth(17));
|
||||
}];
|
||||
|
||||
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(kGetScaleWidth(84));
|
||||
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(kGetScaleWidth(10));
|
||||
make.trailing.mas_equalTo(-kGetScaleWidth(10));
|
||||
make.leading.mas_equalTo(kGetScaleWidth(84));
|
||||
make.height.mas_equalTo(kGetScaleWidth(20));
|
||||
}];
|
||||
|
||||
[self.birthdayView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(kGetScaleWidth(28));
|
||||
make.height.mas_equalTo(kGetScaleWidth(14));
|
||||
make.leading.equalTo(self.titleLabel.mas_trailing).mas_offset(kGetScaleWidth(4));
|
||||
make.centerY.equalTo(self.titleLabel);
|
||||
}];
|
||||
[self.wealthView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.height.mas_equalTo(kGetScaleWidth(36));
|
||||
make.height.mas_equalTo(kGetScaleWidth(18));
|
||||
make.leading.equalTo(self.birthdayView.mas_trailing).mas_offset(kGetScaleWidth(4));
|
||||
make.centerY.equalTo(self.titleLabel);
|
||||
}];
|
||||
[self.charmView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.height.mas_equalTo(kGetScaleWidth(36));
|
||||
make.height.mas_equalTo(kGetScaleWidth(18));
|
||||
make.leading.equalTo(self.wealthView.mas_trailing).mas_offset(kGetScaleWidth(4));
|
||||
make.centerY.equalTo(self.titleLabel);
|
||||
}];
|
||||
[self.chatBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(kGetScaleWidth(34));
|
||||
@@ -161,6 +168,11 @@
|
||||
make.top.equalTo(self.tagView.mas_bottom).mas_offset(kGetScaleWidth(6));
|
||||
make.trailing.equalTo(self.tagView);
|
||||
}];
|
||||
[self.nameTapBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.bottom.leading.equalTo(self.titleLabel);
|
||||
make.trailing.equalTo(self.charmView);
|
||||
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
@@ -168,10 +180,16 @@
|
||||
_roomInfo = roomInfo;
|
||||
if (_roomInfo) {
|
||||
self.avatarImageView.imageUrl = _roomInfo.avatar;
|
||||
self.titleLabel.text = _roomInfo.nick;
|
||||
NSString *nick = _roomInfo.nick;
|
||||
if(nick.length > 7){
|
||||
nick = [NSString stringWithFormat:@"%@...",[_roomInfo.nick substringToIndex:7]];
|
||||
}
|
||||
self.titleLabel.text = nick;
|
||||
_tagView.itemWidthist = _roomInfo.labelsWidthList;
|
||||
_tagView.itemList = [NSMutableArray arrayWithArray:_roomInfo.labels];
|
||||
NSString *dateStr = [self.dateFormatter stringFromDate:[NSDate dateWithTimeIntervalSince1970:_roomInfo.birth/1000]];
|
||||
[_birthdayView setTitle:dateStr forState:UIControlStateNormal];
|
||||
|
||||
[_birthdayView setTitle:[self getAge] forState:UIControlStateNormal];
|
||||
_birthdayView.backgroundColor = _roomInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
|
||||
_gameBgView.hidden = YES;
|
||||
_gameIconView.hidden = YES;
|
||||
_borderImageView.hidden = YES;
|
||||
@@ -186,18 +204,50 @@
|
||||
if(_roomInfo.inOnline == YES){
|
||||
_greenView.hidden = NO;
|
||||
}
|
||||
|
||||
_wealthView.imageUrl = _roomInfo.userLevelVo.experUrl;
|
||||
_charmView.imageUrl = _roomInfo.userLevelVo.charmUrl;
|
||||
if(_roomInfo.userVoice.length > 0){
|
||||
_audioView.voiceDura = _roomInfo.voiceDura;
|
||||
_audioView.userVoice = _roomInfo.userVoice;
|
||||
|
||||
_audioView.isHiddenVew = NO;
|
||||
}else{
|
||||
_audioView.userDesc = _roomInfo.userDesc;
|
||||
if(_roomInfo.userDesc.length > 0){
|
||||
_audioView.isHiddenVew = NO;
|
||||
_audioView.userDesc = _roomInfo.userDesc;
|
||||
}else{
|
||||
_audioView.isHiddenVew = YES;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
-(NSString *)getAge{
|
||||
NSDateComponents *components1 = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear fromDate:[NSDate dateWithTimeIntervalSince1970:_roomInfo.birth/1000]];
|
||||
NSInteger brithDateYear = [components1 year];
|
||||
NSInteger brithDateDay = [components1 day];
|
||||
NSInteger brithDateMonth = [components1 month];
|
||||
// 获取系统当前 年月日
|
||||
NSDateComponents *components2 = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear fromDate:[NSDate date]]; NSInteger currentDateYear = [components2 year];
|
||||
NSInteger currentDateDay = [components2 day]; NSInteger currentDateMonth = [components2 month]; // 计算年龄
|
||||
NSInteger iAge = currentDateYear - brithDateYear - 1;
|
||||
if ((currentDateMonth > brithDateMonth) || (currentDateMonth == brithDateMonth && currentDateDay >= brithDateDay)) {
|
||||
iAge++;
|
||||
|
||||
}
|
||||
return @(iAge).stringValue;
|
||||
}
|
||||
///声音卡时,svga是否播放动画
|
||||
-(void)setPlaySoundStatus:(BOOL)isPlay{
|
||||
_audioView.isPlay = isPlay;
|
||||
if(isPlay == NO){
|
||||
_audioView.voiceDura = _roomInfo.voiceDura;
|
||||
}
|
||||
}
|
||||
///声音卡倒计时
|
||||
-(void)setPlaySoundTime:(NSInteger)time{
|
||||
_audioView.voiceDura = @(time).stringValue;
|
||||
}
|
||||
- (void)setRoomInfo1:(HomeRecommendRoomModel *)roomInfo1 {
|
||||
_roomInfo1 = roomInfo1;
|
||||
if (_roomInfo1) {
|
||||
@@ -218,7 +268,12 @@
|
||||
[self.delegate xPNewHomePartyTableViewCell:self didSelectChat:self.roomInfo];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - XPNewHomePartyAudioViewDelegate
|
||||
- (void)xPNewHomePartyAudioView:(XPNewHomePartyAudioView *)view didClickPlaySound:(BOOL)isPlay{
|
||||
if(self.delegate && [self.delegate respondsToSelector:@selector(xPNewHomePartyTableViewCell:didPlayVoice:didClickPlaySound:)]){
|
||||
[self.delegate xPNewHomePartyTableViewCell:self didPlayVoice:self.roomInfo didClickPlaySound:isPlay];
|
||||
}
|
||||
}
|
||||
- (NetImageView *)avatarImageView {
|
||||
if (!_avatarImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
@@ -247,7 +302,7 @@
|
||||
- (UILabel *)titleLabel {
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] init];
|
||||
_titleLabel.font = [UIFont systemFontOfSize:15];
|
||||
_titleLabel.font = kFontMedium(14);
|
||||
_titleLabel.textColor = [DJDKMIMOMColor mainTextColor];
|
||||
}
|
||||
return _titleLabel;
|
||||
@@ -302,16 +357,7 @@
|
||||
}
|
||||
return _chatBtn;
|
||||
}
|
||||
- (UIStackView *)stackView {
|
||||
if (!_stackView) {
|
||||
_stackView = [[UIStackView alloc] init];
|
||||
_stackView.axis = UILayoutConstraintAxisHorizontal;
|
||||
_stackView.distribution = UIStackViewDistributionFill;
|
||||
_stackView.alignment = UIStackViewAlignmentFill;
|
||||
_stackView.spacing = kGetScaleWidth(4);
|
||||
}
|
||||
return _stackView;
|
||||
}
|
||||
|
||||
- (UIButton *)birthdayView{
|
||||
if(!_birthdayView){
|
||||
_birthdayView = [UIButton new];
|
||||
@@ -319,7 +365,9 @@
|
||||
[_birthdayView setImage:kImage(@"home_age_girl_icon") forState:UIControlStateSelected];
|
||||
_birthdayView.titleLabel.font = kFontMedium(10);
|
||||
[_birthdayView setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||||
_birthdayView.imageEdgeInsets = UIEdgeInsetsMake(0, kGetScaleWidth(10), 0, 0);
|
||||
_birthdayView.imageEdgeInsets = UIEdgeInsetsMake(0, -kGetScaleWidth(2), 0, 0);
|
||||
_birthdayView.layer.cornerRadius = kGetScaleWidth(14)/2;
|
||||
_birthdayView.layer.masksToBounds = YES;
|
||||
}
|
||||
return _birthdayView;
|
||||
}
|
||||
@@ -343,5 +391,24 @@
|
||||
}
|
||||
return _dateFormatter;
|
||||
}
|
||||
|
||||
- (XPNewHomePartyTagView *)tagView{
|
||||
if(!_tagView){
|
||||
_tagView = [[XPNewHomePartyTagView alloc]initWithFrame:CGRectZero];
|
||||
}
|
||||
return _tagView;
|
||||
}
|
||||
- (XPNewHomePartyAudioView *)audioView{
|
||||
if(!_audioView){
|
||||
_audioView = [[XPNewHomePartyAudioView alloc]initWithFrame:CGRectZero];
|
||||
_audioView.delegate = self;
|
||||
}
|
||||
return _audioView;
|
||||
}
|
||||
- (UIButton *)nameTapBtn{
|
||||
if(!_nameTapBtn){
|
||||
_nameTapBtn = [UIButton new];
|
||||
[_nameTapBtn addTarget:self action:@selector(didSelectItemAction) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _nameTapBtn;
|
||||
}
|
||||
@end
|
||||
|
||||
@@ -11,8 +11,10 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPNewHomePartyTagView : UIView
|
||||
@property (nonatomic,strong) NSMutableArray *itemList;
|
||||
@property (nonatomic,copy) NSArray *itemWidthist;
|
||||
@end
|
||||
@interface XPNewHomePartyTagItemView : UICollectionViewCell
|
||||
|
||||
@property(nonatomic,copy) NSString *title;
|
||||
@property(nonatomic,strong) NSIndexPath *path;
|
||||
@end
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
@@ -29,7 +29,9 @@
|
||||
}];
|
||||
}
|
||||
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
|
||||
return CGSizeMake(100, 18);
|
||||
NSNumber *width = [self.itemWidthist safeObjectAtIndex1:indexPath.row];
|
||||
if(width != nil)return CGSizeMake([width floatValue], kGetScaleWidth(18));;
|
||||
return CGSizeMake(kGetScaleWidth(46), kGetScaleWidth(18));
|
||||
}
|
||||
|
||||
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
|
||||
@@ -40,11 +42,13 @@
|
||||
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
|
||||
|
||||
XPNewHomePartyTagItemView *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([XPNewHomePartyTagItemView class]) forIndexPath:indexPath];
|
||||
cell.path = indexPath;
|
||||
cell.title = [self.itemList safeObjectAtIndex1:indexPath.row];
|
||||
return cell;
|
||||
}
|
||||
-(void)setItemList:(NSMutableArray *)itemList{
|
||||
_itemList = itemList;
|
||||
|
||||
[_collectionView reloadData];
|
||||
}
|
||||
#pragma mark - 懒加载
|
||||
- (UICollectionView *)collectionView{
|
||||
@@ -52,9 +56,9 @@
|
||||
XPMineUserInfoTagFlowLayout *layout = [[XPMineUserInfoTagFlowLayout alloc] init];
|
||||
layout.delegate = self;
|
||||
layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0);
|
||||
layout.itemSize = CGSizeMake(kGetScaleWidth(46), kGetScaleWidth(18));
|
||||
layout.minimumLineSpacing = 0;
|
||||
layout.minimumInteritemSpacing = 5;
|
||||
layout.estimatedItemSize = UICollectionViewFlowLayoutAutomaticSize;// 自适应
|
||||
layout.minimumInteritemSpacing = kGetScaleWidth(4);
|
||||
_collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
|
||||
_collectionView.dataSource = self;
|
||||
_collectionView.delegate = self;
|
||||
@@ -83,14 +87,23 @@
|
||||
return self;
|
||||
}
|
||||
-(void)installUI{
|
||||
self.contentView.layer.cornerRadius = kGetScaleWidth(16)/2;
|
||||
self.contentView.layer.cornerRadius = kGetScaleWidth(18)/2;
|
||||
self.contentView.layer.masksToBounds = YES;
|
||||
[self.contentView addSubview:self.titleView];
|
||||
}
|
||||
- (void)setPath:(NSIndexPath *)path{
|
||||
_path = path;
|
||||
self.contentView.backgroundColor = _path.row == 0 ? UIColorRGBAlpha(0x9168FA, 0.2) :UIColorFromRGB(0xF5F6FA);
|
||||
_titleView.textColor = _path.row == 0 ? UIColorFromRGB(0x9168FA) :UIColorFromRGB(0x8A8CAB);
|
||||
}
|
||||
-(void)setTitle:(NSString *)title{
|
||||
_title = title;
|
||||
_titleView.text = _title;
|
||||
}
|
||||
-(void)installConstraints{
|
||||
[self.titleView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.bottom.equalTo(self.contentView);
|
||||
make.leading.trailing.equalTo(self.contentView).inset(kGetScaleWidth(16));
|
||||
make.leading.trailing.equalTo(self.contentView).inset(kGetScaleWidth(8));
|
||||
}];
|
||||
}
|
||||
#pragma mark - 懒加载
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
- (void)initSubViews {
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
self.contentView.backgroundColor =[UIColor clearColor];
|
||||
self.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
[self.contentView addSubview:self.emptyImageView];
|
||||
[self.contentView addSubview:self.titleLabel];
|
||||
}
|
||||
|
||||
@@ -100,6 +100,9 @@
|
||||
if (_roomInfo != nil) {
|
||||
self.avatarImageView.imageUrl = _roomInfo.avatar;
|
||||
self.nameView.text = _roomInfo.title;
|
||||
self.gameBgView.hidden = _roomInfo.mgId.length == 0 ;
|
||||
self.gameIconView.hidden = _roomInfo.mgId.length == 0 ;
|
||||
self.borderImageView.hidden = _roomInfo.mgId.length == 0 ;
|
||||
}
|
||||
}
|
||||
- (UIView *)bgView{
|
||||
|
||||
@@ -111,6 +111,7 @@
|
||||
_fristBnt.selected = YES;
|
||||
_fristBnt.titleLabel.font = kFontSemibold(16);
|
||||
[_fristBnt addTarget:self action:@selector(chooseItem:) forControlEvents:UIControlEventTouchUpInside];
|
||||
[_fristBnt setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
|
||||
}
|
||||
return _fristBnt;
|
||||
}
|
||||
@@ -123,6 +124,7 @@
|
||||
[_secondBnt setTitleColor:UIColorFromRGB(0x767585) forState:UIControlStateNormal];
|
||||
_secondBnt.titleLabel.font = kFontRegular(14);
|
||||
[_secondBnt addTarget:self action:@selector(chooseItem:) forControlEvents:UIControlEventTouchUpInside];
|
||||
[_secondBnt setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
|
||||
|
||||
}
|
||||
return _secondBnt;
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
@property (nonatomic,assign) int page;
|
||||
///没有新的数据了
|
||||
@property (nonatomic,assign) BOOL hasNoMoreData;
|
||||
@property(nonatomic,strong) NSTimer *timer;
|
||||
|
||||
@end
|
||||
|
||||
@implementation XPHomePartyViewController
|
||||
@@ -46,25 +46,12 @@
|
||||
- (XPHomePresenter *)createPresenter {
|
||||
return [[XPHomePresenter alloc] init];
|
||||
}
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
[super viewWillAppear:animated];
|
||||
if (self.timer) {
|
||||
[self.timer setFireDate:[NSDate distantPast]]; //很远的过去
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewWillDisappear:(BOOL)animated {
|
||||
[super viewWillDisappear:animated];
|
||||
if (self.timer) {
|
||||
//关闭定时器
|
||||
[self.timer setFireDate:[NSDate distantFuture]]; //很远的将来
|
||||
}
|
||||
}
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
[self initHeaderAndFooterRrfresh];
|
||||
|
||||
|
||||
}
|
||||
#pragma mark - Private Method
|
||||
@@ -80,12 +67,7 @@
|
||||
}
|
||||
|
||||
|
||||
- (void)initHeaderAndFooterRrfresh {
|
||||
self.timer = [XPWeakTimer scheduledTimerWithTimeInterval:15 block:^(id userInfo) {
|
||||
[self headerRefresh];
|
||||
} userInfo:nil repeats:YES];
|
||||
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - 刷新的fangfa
|
||||
- (void)headerRefresh {
|
||||
|
||||
@@ -22,6 +22,9 @@
|
||||
#import "AccountInfoStorage.h"
|
||||
#import "TTPopup.h"
|
||||
#import "NSArray+Safe.h"
|
||||
#import "CountDownHelper.h"
|
||||
#import "XPSkillCardPlayerManager.h"
|
||||
#import "UploadFile.h"
|
||||
///View
|
||||
#import "XPNewHomePlayTableViewCell.h"
|
||||
#import "XPNewHomeRecommendTableViewCell.h"
|
||||
@@ -30,7 +33,8 @@
|
||||
#import "XPNewHomePartyTableViewCell.h"
|
||||
#import "XPRoomViewController.h"
|
||||
#import "XPWebViewController.h"
|
||||
|
||||
#import "XPMineUserInfoViewController.h"
|
||||
#import "SessionViewController.h"
|
||||
///Model
|
||||
#import "HomePlayRoomModel.h"
|
||||
#import "HomeBannerInfoModel.h"
|
||||
@@ -40,24 +44,25 @@
|
||||
#import "XPNewHomeRecommendPresenter.h"
|
||||
#import "XPNewHomeRecommendProtocol.h"
|
||||
UIKIT_EXTERN NSString * const kShieldingNotification;
|
||||
@interface XPHomeRecommendViewController ()<UITableViewDelegate, UITableViewDataSource, XPNewHomePlayTableViewCellDelegate, XPHomeBannerTableViewCellDelegate,XPNewHomeRecommendTableViewCellDelegate,XPNewHomeRecommendProtocol>
|
||||
{
|
||||
NSTimer * timer;
|
||||
}
|
||||
@interface XPHomeRecommendViewController ()<UITableViewDelegate, UITableViewDataSource, XPNewHomePlayTableViewCellDelegate, XPHomeBannerTableViewCellDelegate,XPNewHomeRecommendTableViewCellDelegate,XPNewHomeRecommendProtocol,XPNewHomePartyTableViewCellDelegate,CountDownHelperDelegate>
|
||||
///列表
|
||||
@property (nonatomic,strong) UITableView *tableView;
|
||||
|
||||
|
||||
///组队开黑
|
||||
@property (nonatomic,strong) NSArray<HomePlayRoomModel *> *playTeamList;
|
||||
@property (nonatomic,copy) NSArray<HomePlayRoomModel *> *playTeamList;
|
||||
///个人房列表数据
|
||||
@property (nonatomic,strong) NSArray<HomePlayRoomModel *> *personalRoomList;
|
||||
@property (nonatomic,strong) NSMutableArray<HomePlayRoomModel *> *personalRoomList;
|
||||
///房间信息
|
||||
@property (nonatomic,strong) RoomInfoModel * roomInfo;
|
||||
///是否正在请示数据,防止过多请求
|
||||
@property (nonatomic,assign) BOOL isRequestData;
|
||||
|
||||
|
||||
///倒计时
|
||||
@property (nonatomic,strong) CountDownHelper *countDownHelper;
|
||||
///正在播放声音的cell
|
||||
@property(nonatomic,strong)XPNewHomePartyTableViewCell *cell;
|
||||
///正在播放声音的cell在UITableView的Y坐标
|
||||
@property(nonatomic,assign) CGFloat cellY;
|
||||
@end
|
||||
|
||||
@implementation XPHomeRecommendViewController
|
||||
@@ -71,70 +76,79 @@ UIKIT_EXTERN NSString * const kShieldingNotification;
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
[self initSubViews];
|
||||
|
||||
[self addTimer];
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
[super viewWillAppear:animated];
|
||||
if (timer) {
|
||||
[timer setFireDate:[NSDate distantPast]]; //很远的过去
|
||||
}
|
||||
-(void)viewDidAppear:(BOOL)animated{
|
||||
[super viewDidAppear:animated];
|
||||
self.countDownHelper.delegate = self;
|
||||
}
|
||||
|
||||
- (void)viewWillDisappear:(BOOL)animated {
|
||||
[super viewWillDisappear:animated];
|
||||
if (timer) {
|
||||
//关闭定时器
|
||||
[timer setFireDate:[NSDate distantFuture]]; //很远的将来
|
||||
|
||||
|
||||
-(void)viewDidDisappear:(BOOL)animated{
|
||||
[super viewDidAppear:animated];
|
||||
[self.countDownHelper stopCountDown];
|
||||
self.countDownHelper.delegate = nil;
|
||||
[[XPSkillCardPlayerManager shareInstance] stopMusic];
|
||||
if(self.cell != nil){
|
||||
[self.cell setPlaySoundStatus:NO];
|
||||
self.cell = nil;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
-(void)dealloc{
|
||||
[[NSNotificationCenter defaultCenter]removeObserver:self];
|
||||
}
|
||||
#pragma mark - InitHttp
|
||||
- (void)addTimer {
|
||||
timer = [XPWeakTimer scheduledTimerWithTimeInterval:15 block:^(id userInfo) {
|
||||
[self requestData];
|
||||
} userInfo:nil repeats:YES];
|
||||
}
|
||||
|
||||
-(void)requestData{
|
||||
///加锁,防止测试发现偶尔会出现闪退bug
|
||||
@synchronized (self.presenter) {
|
||||
if(self.isRequestData == YES)return;
|
||||
self.isRequestData = YES;
|
||||
|
||||
///网络请求异步加载
|
||||
dispatch_group_t group =dispatch_group_create();
|
||||
// 并行队列
|
||||
dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
|
||||
|
||||
|
||||
dispatch_group_enter(group);
|
||||
dispatch_group_async(group, queue, ^{
|
||||
|
||||
[self.presenter getPlayGameWithTeam:1 withGroup:group];
|
||||
|
||||
});
|
||||
dispatch_group_enter(group);
|
||||
dispatch_group_async(group, queue, ^{
|
||||
|
||||
[self.presenter getFriendListWithGroup:group];
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
dispatch_group_notify(group,dispatch_get_main_queue(), ^{
|
||||
self.isRequestData = NO;
|
||||
[self.tableView reloadData];
|
||||
if(self.cell != nil){
|
||||
if(self.refreshComplete){
|
||||
self.refreshComplete();
|
||||
}
|
||||
});
|
||||
|
||||
return;
|
||||
}///正在播放声音,不能刷新数据
|
||||
///加锁,防止测试发现偶尔会出现闪退bug
|
||||
@synchronized (self.presenter) {
|
||||
if(self.isRequestData == YES){
|
||||
if(self.refreshComplete){
|
||||
self.refreshComplete();
|
||||
}
|
||||
return;
|
||||
}
|
||||
self.isRequestData = YES;
|
||||
///网络请求异步加载
|
||||
dispatch_group_t group =dispatch_group_create();
|
||||
// 并行队列
|
||||
dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
|
||||
|
||||
|
||||
dispatch_group_enter(group);
|
||||
dispatch_group_async(group, queue, ^{
|
||||
|
||||
[self.presenter getPlayGameWithTeam:1 withGroup:group];
|
||||
|
||||
});
|
||||
dispatch_group_enter(group);
|
||||
dispatch_group_async(group, queue, ^{
|
||||
|
||||
[self.presenter getFriendListWithGroup:group];
|
||||
|
||||
});
|
||||
|
||||
|
||||
dispatch_group_notify(group,dispatch_get_main_queue(), ^{
|
||||
self.isRequestData = NO;
|
||||
if(self.refreshComplete){
|
||||
self.refreshComplete();
|
||||
}
|
||||
[self.tableView reloadData];
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
- (void)headerRefresh {
|
||||
@@ -176,20 +190,20 @@ UIKIT_EXTERN NSString * const kShieldingNotification;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
if(indexPath.section == 0) {
|
||||
XPNewHomePlayTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPNewHomePlayTableViewCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPNewHomePlayTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPNewHomePlayTableViewCell class])];
|
||||
}
|
||||
|
||||
|
||||
cell.playRoomList = self.playTeamList;
|
||||
|
||||
cell.delegate = self;
|
||||
return cell;
|
||||
|
||||
}
|
||||
if(indexPath.section == 0) {
|
||||
XPNewHomePlayTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPNewHomePlayTableViewCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPNewHomePlayTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPNewHomePlayTableViewCell class])];
|
||||
}
|
||||
|
||||
|
||||
cell.playRoomList = self.playTeamList;
|
||||
|
||||
cell.delegate = self;
|
||||
return cell;
|
||||
|
||||
}
|
||||
|
||||
if(self.personalRoomList.count == 0){
|
||||
XPNewHomePlayEmptyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPNewHomePlayEmptyTableViewCell class])];
|
||||
if (cell == nil) {
|
||||
@@ -200,26 +214,29 @@ UIKIT_EXTERN NSString * const kShieldingNotification;
|
||||
[cell setTitle:YMLocalizedString(@"XPGuildEmptyCollectionViewCell0")];
|
||||
return cell;
|
||||
}
|
||||
|
||||
XPNewHomePartyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPNewHomePartyTableViewCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPNewHomePartyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPNewHomePartyTableViewCell class])];
|
||||
}
|
||||
cell.roomInfo = [self.personalRoomList safeObjectAtIndex1:indexPath.row];
|
||||
return cell;
|
||||
|
||||
XPNewHomePartyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPNewHomePartyTableViewCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPNewHomePartyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPNewHomePartyTableViewCell class])];
|
||||
}
|
||||
|
||||
cell.roomInfo = [self.personalRoomList safeObjectAtIndex1:indexPath.row];
|
||||
cell.delegate = self;
|
||||
return cell;
|
||||
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
|
||||
|
||||
return 0.01;
|
||||
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
|
||||
|
||||
return 0.01;
|
||||
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
|
||||
return 0.01;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -237,6 +254,21 @@ UIKIT_EXTERN NSString * const kShieldingNotification;
|
||||
}
|
||||
}
|
||||
|
||||
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
|
||||
if(self.cell != nil){
|
||||
if(scrollView.contentOffset.y > self.cellY){
|
||||
[self.countDownHelper stopCountDown];
|
||||
self.countDownHelper .delegate = nil;
|
||||
[[XPSkillCardPlayerManager shareInstance] stopMusic];
|
||||
[self.cell setPlaySoundStatus:NO];
|
||||
self.cell = nil;
|
||||
}
|
||||
}
|
||||
if(self.scrollCallback){
|
||||
self.scrollCallback(scrollView);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - XPNewHomeRecommendTableViewCellDelegate
|
||||
- (void)xPNewHomeRecommendTableViewCell:(XPNewHomeRecommendTableViewCell *)view didSelectItem:(HomeRecommendRoomModel *)info {
|
||||
if (info.roomUid.length > 0) {
|
||||
@@ -251,19 +283,19 @@ UIKIT_EXTERN NSString * const kShieldingNotification;
|
||||
}
|
||||
}
|
||||
- (void)chooseGameAction{
|
||||
// XPHomeGameView *gameView = [XPHomeGameView new];
|
||||
// gameView.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
|
||||
// gameView.playGameList = self.littleGameArray;
|
||||
// gameView.delegate = self;
|
||||
// [kWindow addSubview:gameView];
|
||||
// XPHomeGameView *gameView = [XPHomeGameView new];
|
||||
// gameView.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
|
||||
// gameView.playGameList = self.littleGameArray;
|
||||
// gameView.delegate = self;
|
||||
// [kWindow addSubview:gameView];
|
||||
}
|
||||
#pragma mark - XPNewHomePlayEmptyTableViewCellDelegate
|
||||
- (void)emptyCellChooseGameAction{
|
||||
// XPHomeGameView *gameView = [XPHomeGameView new];
|
||||
// gameView.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
|
||||
// gameView.playGameList = self.littleGameArray;
|
||||
// gameView.delegate = self;
|
||||
// [kWindow addSubview:gameView];
|
||||
// XPHomeGameView *gameView = [XPHomeGameView new];
|
||||
// gameView.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
|
||||
// gameView.playGameList = self.littleGameArray;
|
||||
// gameView.delegate = self;
|
||||
// [kWindow addSubview:gameView];
|
||||
}
|
||||
#pragma mark - XPHomeBannerTableViewCell
|
||||
- (void)xPHomeBannerTableViewCell:(XPHomeBannerTableViewCell *)view didClickBanner:(HomeBannerInfoModel *)info {
|
||||
@@ -301,6 +333,21 @@ UIKIT_EXTERN NSString * const kShieldingNotification;
|
||||
dispatch_group_leave(group);
|
||||
}
|
||||
- (void)getFriendListSuccess:(NSArray *)list withGroup:(dispatch_group_t)group{
|
||||
|
||||
for (int i = 0;i < list.count;i++) {
|
||||
HomePlayRoomModel *model = list[i];
|
||||
NSMutableArray *labels = [NSMutableArray array];
|
||||
[labels addObject:[NSString calculateConstellationWithMonth:model.birth] ?: @""];
|
||||
[labels addObjectsFromArray:model.labels];
|
||||
model.labels = labels;
|
||||
|
||||
NSMutableArray *widthList = [NSMutableArray array];
|
||||
for (NSString *text in model.labels) {
|
||||
CGFloat width = [UILabel getWidthWithText:text height:kGetScaleWidth(18) font:kFontRegular(10)] + kGetScaleWidth(16) + 1;
|
||||
[widthList addObject:@(width)];
|
||||
}
|
||||
model.labelsWidthList = widthList;
|
||||
}
|
||||
self.personalRoomList = [NSMutableArray arrayWithArray:list];
|
||||
dispatch_group_leave(group);
|
||||
}
|
||||
@@ -320,14 +367,106 @@ UIKIT_EXTERN NSString * const kShieldingNotification;
|
||||
return self.view;
|
||||
}
|
||||
|
||||
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
|
||||
if(self.scrollCallback){
|
||||
self.scrollCallback(scrollView);
|
||||
|
||||
#pragma mark- XPNewHomePartyTableViewCellDelegate
|
||||
///点击头像
|
||||
|
||||
-(void)xPNewHomePartyTableViewCell:(XPNewHomePartyTableViewCell *_Nullable)cell didSelectItem:(HomePlayRoomModel *_Nullable)roomModel{
|
||||
XPMineUserInfoViewController *infoVC = [[XPMineUserInfoViewController alloc]init];
|
||||
infoVC.uid = [roomModel.uid integerValue];
|
||||
[self.navigationController pushViewController:infoVC animated:YES];
|
||||
}
|
||||
///点击聊天
|
||||
-(void)xPNewHomePartyTableViewCell:(XPNewHomePartyTableViewCell *_Nullable)cell didSelectChat:(HomePlayRoomModel *_Nonnull)roomModel{
|
||||
if(roomModel.inMic == YES){
|
||||
[XPRoomViewController openRoom:roomModel.uid fromNick:nil fromType:UserEnterRoomFromType_Home_Recommend fromUid:nil viewController:self];
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
NIMSession * session = [NIMSession session:roomModel.uid type:NIMSessionTypeP2P];
|
||||
SessionViewController * sessionVC = [[SessionViewController alloc] initWithSession:session];
|
||||
[self.navigationController pushViewController:sessionVC animated:YES];
|
||||
|
||||
}
|
||||
|
||||
|
||||
///播放音乐
|
||||
-(void)xPNewHomePartyTableViewCell:(XPNewHomePartyTableViewCell *_Nullable)cell didPlayVoice:(HomePlayRoomModel *_Nonnull)roomModel didClickPlaySound:(BOOL)isPlay{
|
||||
if(isPlay == YES){
|
||||
self.cell = cell;
|
||||
CGRect cellRect = [self.tableView rectForRowAtIndexPath:[self.tableView indexPathForCell:self.cell]];
|
||||
self.cellY = cellRect.origin.y;
|
||||
NSString *fileName = [[roomModel.userVoice componentsSeparatedByString:@"/"] lastObject];
|
||||
NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) safeObjectAtIndex1:0] stringByAppendingPathComponent:@"kMineSoundCard"];
|
||||
NSString *fullPath = [filePath stringByAppendingPathComponent:fileName];
|
||||
if ([[NSFileManager defaultManager] fileExistsAtPath:fullPath]) {
|
||||
[self playAudioWithUrl:fullPath isDelay:[XPSkillCardPlayerManager shareInstance].isMineInMic];
|
||||
}else{
|
||||
if (![[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
|
||||
NSFileManager *fileMgr = [[NSFileManager alloc] init];
|
||||
[fileMgr createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:nil];
|
||||
}
|
||||
[UploadFile downloadAudioWithFileName:fileName musicUrl:roomModel.userVoice mainFileName:@"kMineSoundCard" completion:^(BOOL isSuccess, NSString *editAudioPath) {
|
||||
if(isSuccess){
|
||||
[self playAudioWithUrl:editAudioPath isDelay:[XPSkillCardPlayerManager shareInstance].isMineInMic];
|
||||
|
||||
}else{
|
||||
[self.cell setPlaySoundStatus:NO];
|
||||
[[XPSkillCardPlayerManager shareInstance] stopMusic];
|
||||
self.cell = nil;
|
||||
}
|
||||
}];
|
||||
}
|
||||
}else{
|
||||
[self.countDownHelper stopCountDown];
|
||||
[self.cell setPlaySoundStatus:NO];
|
||||
[[XPSkillCardPlayerManager shareInstance] stopMusic];
|
||||
self.cell = nil;
|
||||
}
|
||||
|
||||
}
|
||||
/// 播放录音
|
||||
/// - Parameters:
|
||||
/// - url: 录音链接
|
||||
/// - isDelay: 是否延时0.5秒播放录音,因为如果在麦上的话,需要先关麦再播放,所以要延时0.5秒来关麦后再播放,不然会没声音
|
||||
-(void)playAudioWithUrl:(NSString*)url isDelay:(BOOL)isDelay{
|
||||
|
||||
if(isDelay == YES){
|
||||
[[XPSkillCardPlayerManager shareInstance] playerNewVoiceWithPath:url completionBlock:^{
|
||||
[[XPSkillCardPlayerManager shareInstance] stopMusic];
|
||||
|
||||
}];
|
||||
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC));
|
||||
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
|
||||
NSInteger getCurrentTime = ceil([self.cell.roomInfo.voiceDura integerValue]);
|
||||
[self.countDownHelper openCountdownWithTime:(int)getCurrentTime];
|
||||
});
|
||||
return;
|
||||
}
|
||||
NSInteger getCurrentTime = ceil([self.cell.roomInfo.voiceDura integerValue]);
|
||||
[self.countDownHelper openCountdownWithTime:(int)getCurrentTime];
|
||||
[[XPSkillCardPlayerManager shareInstance] playerVoiceWithPath:url completionBlock:^{
|
||||
|
||||
[[XPSkillCardPlayerManager shareInstance] stopMusic];
|
||||
}];
|
||||
}
|
||||
///倒计时结束
|
||||
- (void)onCountdownFinish{
|
||||
if(self.cell != nil){
|
||||
[self.cell setPlaySoundTime:0];
|
||||
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC));
|
||||
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
|
||||
[self.cell setPlaySoundStatus:NO];
|
||||
self.cell = nil;
|
||||
});
|
||||
}
|
||||
}
|
||||
///倒计时进行
|
||||
- (void)onCountdownOpen:(int)time{
|
||||
if(self.cell != nil){
|
||||
[self.cell setPlaySoundTime:(int)time + 1];
|
||||
}
|
||||
|
||||
}
|
||||
- (UITableView *)tableView {
|
||||
if (!_tableView) {
|
||||
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
|
||||
@@ -345,4 +484,10 @@ UIKIT_EXTERN NSString * const kShieldingNotification;
|
||||
}
|
||||
return _tableView;
|
||||
}
|
||||
- (CountDownHelper *)countDownHelper{
|
||||
if (!_countDownHelper){
|
||||
_countDownHelper = [[CountDownHelper alloc]init];
|
||||
}
|
||||
return _countDownHelper;
|
||||
}
|
||||
@end
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#import "Api+Room.h"
|
||||
#import "TTPopup.h"
|
||||
#import "NSArray+Safe.h"
|
||||
#import "XPWeakTimer.h"
|
||||
///Model
|
||||
#import "HomeTagModel.h"
|
||||
|
||||
@@ -47,10 +48,14 @@
|
||||
#import "ClientConfig.h"
|
||||
#import "SessionViewController.h"
|
||||
|
||||
|
||||
UIKIT_EXTERN NSString * kHomeMoreScrollPageKey;
|
||||
UIKIT_EXTERN NSString * const kOpenRoomNotification;
|
||||
|
||||
@interface XPNewHomeViewController ()<JXPagerViewDelegate,JXPagerMainTableViewGestureDelegate,JXCategoryViewDelegate, XPHomeContainerProtocol, XPNewHomeNavViewDelegate,XPNewHomeHeadViewDelegate,XPHomeRecommendOtherRoomViewDelegate>
|
||||
{
|
||||
NSTimer * timer;
|
||||
}
|
||||
///背景
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///导航
|
||||
@@ -83,6 +88,8 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification;
|
||||
}
|
||||
-(void)dealloc{
|
||||
[[NSNotificationCenter defaultCenter]removeObserver:self];
|
||||
[timer fire];
|
||||
timer = nil;
|
||||
}
|
||||
- (BOOL)isHiddenNavBar {
|
||||
return YES;
|
||||
@@ -97,12 +104,32 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification;
|
||||
[self initHttp];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
[self addTimer];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
[super viewWillAppear:animated];
|
||||
if (timer) {
|
||||
[timer setFireDate:[NSDate distantPast]]; //很远的过去
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewWillDisappear:(BOOL)animated {
|
||||
[super viewWillDisappear:animated];
|
||||
if (timer) {
|
||||
//关闭定时器
|
||||
[timer setFireDate:[NSDate distantFuture]]; //很远的将来
|
||||
}
|
||||
}
|
||||
#pragma mark - Private Method
|
||||
- (void)addTimer {
|
||||
timer = [XPWeakTimer scheduledTimerWithTimeInterval:15 block:^(id userInfo) {
|
||||
[self.homeVC headerRefresh];
|
||||
[self.recommendVC headerRefresh];
|
||||
} userInfo:nil repeats:YES];
|
||||
}
|
||||
- (void)initSubViews {
|
||||
self.type = 0;
|
||||
self.view.backgroundColor = [DJDKMIMOMColor colorWithHexString:@"#F3F5FA"];
|
||||
|
||||