修复bug
@@ -173,6 +173,8 @@
|
||||
2331C1B82A60F32D00E1D940 /* XPRoomHalfWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2331C1A62A60F32D00E1D940 /* XPRoomHalfWebView.m */; };
|
||||
2331C1B92A60F32D00E1D940 /* Api+CandyTree.m in Sources */ = {isa = PBXBuildFile; fileRef = 2331C1A82A60F32D00E1D940 /* Api+CandyTree.m */; };
|
||||
2331C1BD2A60F69E00E1D940 /* UILabel+Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 2331C1BC2A60F69E00E1D940 /* UILabel+Utils.m */; };
|
||||
23B2AEC12A64E9C200543D17 /* LoginForgetEditView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2AEC02A64E9C200543D17 /* LoginForgetEditView.m */; };
|
||||
23B2AEC42A6516C200543D17 /* LoginForgetPasswordViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2AEC22A6516C200543D17 /* LoginForgetPasswordViewController.m */; };
|
||||
23BA165B2A5D2ACF0030C5A3 /* PIBaseAnimationViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23BA165A2A5D2ACF0030C5A3 /* PIBaseAnimationViewModel.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 */; };
|
||||
@@ -220,7 +222,6 @@
|
||||
9B42869C28C1FD3D009034D2 /* XPOpenRedPacketCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B42869B28C1FD3D009034D2 /* XPOpenRedPacketCell.m */; };
|
||||
9B4C5B86292F81FA00CEA41B /* XPSessionListFansPartyModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B4C5B85292F81FA00CEA41B /* XPSessionListFansPartyModel.m */; };
|
||||
9B4D449328F15765002572D5 /* XPGiftLuckyGiftBroadcastView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B4D449228F15765002572D5 /* XPGiftLuckyGiftBroadcastView.m */; };
|
||||
9B4D449628F15EE7002572D5 /* XPGiftWeekStarBroadcastView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B4D449528F15EE7002572D5 /* XPGiftWeekStarBroadcastView.m */; };
|
||||
9B4E920028E57A620033419E /* XPGiftHeadTypeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B4E91FF28E57A620033419E /* XPGiftHeadTypeView.m */; };
|
||||
9B6B3AAB278C2EA7005551EC /* XPRoomNobleLevelUpView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B6B3AAA278C2EA7005551EC /* XPRoomNobleLevelUpView.m */; };
|
||||
9B6E856A281A982A0041A321 /* XPRoomRecommendView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B6E8569281A982A0041A321 /* XPRoomRecommendView.m */; };
|
||||
@@ -1574,6 +1575,11 @@
|
||||
2331C1A92A60F32D00E1D940 /* Api+CandyTree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Api+CandyTree.h"; sourceTree = "<group>"; };
|
||||
2331C1BB2A60F69E00E1D940 /* UILabel+Utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UILabel+Utils.h"; sourceTree = "<group>"; };
|
||||
2331C1BC2A60F69E00E1D940 /* UILabel+Utils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UILabel+Utils.m"; sourceTree = "<group>"; };
|
||||
23352A0D2A669D57001DB9B5 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = "<group>"; };
|
||||
23B2AEBF2A64E9C200543D17 /* LoginForgetEditView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginForgetEditView.h; sourceTree = "<group>"; };
|
||||
23B2AEC02A64E9C200543D17 /* LoginForgetEditView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginForgetEditView.m; sourceTree = "<group>"; };
|
||||
23B2AEC22A6516C200543D17 /* LoginForgetPasswordViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginForgetPasswordViewController.m; sourceTree = "<group>"; };
|
||||
23B2AEC32A6516C200543D17 /* LoginForgetPasswordViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginForgetPasswordViewController.h; sourceTree = "<group>"; };
|
||||
23BA16592A5D2ACF0030C5A3 /* PIBaseAnimationViewModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PIBaseAnimationViewModel.h; sourceTree = "<group>"; };
|
||||
23BA165A2A5D2ACF0030C5A3 /* PIBaseAnimationViewModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PIBaseAnimationViewModel.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>"; };
|
||||
@@ -1667,8 +1673,6 @@
|
||||
9B4C5B85292F81FA00CEA41B /* XPSessionListFansPartyModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPSessionListFansPartyModel.m; sourceTree = "<group>"; };
|
||||
9B4D449128F15765002572D5 /* XPGiftLuckyGiftBroadcastView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGiftLuckyGiftBroadcastView.h; sourceTree = "<group>"; };
|
||||
9B4D449228F15765002572D5 /* XPGiftLuckyGiftBroadcastView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPGiftLuckyGiftBroadcastView.m; sourceTree = "<group>"; };
|
||||
9B4D449428F15EE7002572D5 /* XPGiftWeekStarBroadcastView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGiftWeekStarBroadcastView.h; sourceTree = "<group>"; };
|
||||
9B4D449528F15EE7002572D5 /* XPGiftWeekStarBroadcastView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPGiftWeekStarBroadcastView.m; sourceTree = "<group>"; };
|
||||
9B4E91FE28E57A620033419E /* XPGiftHeadTypeView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGiftHeadTypeView.h; sourceTree = "<group>"; };
|
||||
9B4E91FF28E57A620033419E /* XPGiftHeadTypeView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPGiftHeadTypeView.m; sourceTree = "<group>"; };
|
||||
9B6B3AA9278C2EA7005551EC /* XPRoomNobleLevelUpView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomNobleLevelUpView.h; sourceTree = "<group>"; };
|
||||
@@ -4096,6 +4100,8 @@
|
||||
E81366F226F0B7C80076364C /* LoginFullInfoViewController.m */,
|
||||
E824543326F57D6E00BE8163 /* XPLoginVerifBindPhoneViewController.h */,
|
||||
E824543426F57D6E00BE8163 /* XPLoginVerifBindPhoneViewController.m */,
|
||||
23B2AEC32A6516C200543D17 /* LoginForgetPasswordViewController.h */,
|
||||
23B2AEC22A6516C200543D17 /* LoginForgetPasswordViewController.m */,
|
||||
);
|
||||
path = View;
|
||||
sourceTree = "<group>";
|
||||
@@ -4519,20 +4525,20 @@
|
||||
2331C1912A60F32D00E1D940 /* View */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2331C1922A60F32D00E1D940 /* XPCandyTreeRankView.m */,
|
||||
2331C1932A60F32D00E1D940 /* XPCandyTreeMoreView.m */,
|
||||
2331C1942A60F32D00E1D940 /* XPCandyTreeViewController.h */,
|
||||
2331C1952A60F32D00E1D940 /* XPCandyTreeInsufficientBalanceView.h */,
|
||||
2331C1962A60F32D00E1D940 /* XPCandyTreeGiftView.m */,
|
||||
2331C1972A60F32D00E1D940 /* XPRoomHalfWebView.h */,
|
||||
2331C1982A60F32D00E1D940 /* XPCandyRankContainerView.h */,
|
||||
2331C1992A60F32D00E1D940 /* Cell */,
|
||||
2331C1A02A60F32D00E1D940 /* XPCandyTreeRankView.h */,
|
||||
2331C1A12A60F32D00E1D940 /* XPCandyTreeViewController.m */,
|
||||
2331C1A22A60F32D00E1D940 /* XPCandyTreeMoreView.h */,
|
||||
2331C1A32A60F32D00E1D940 /* XPCandyTreeGiftView.h */,
|
||||
2331C1A42A60F32D00E1D940 /* XPCandyTreeInsufficientBalanceView.m */,
|
||||
2331C1982A60F32D00E1D940 /* XPCandyRankContainerView.h */,
|
||||
2331C1A52A60F32D00E1D940 /* XPCandyRankContainerView.m */,
|
||||
2331C1A32A60F32D00E1D940 /* XPCandyTreeGiftView.h */,
|
||||
2331C1962A60F32D00E1D940 /* XPCandyTreeGiftView.m */,
|
||||
2331C1952A60F32D00E1D940 /* XPCandyTreeInsufficientBalanceView.h */,
|
||||
2331C1A42A60F32D00E1D940 /* XPCandyTreeInsufficientBalanceView.m */,
|
||||
2331C1A22A60F32D00E1D940 /* XPCandyTreeMoreView.h */,
|
||||
2331C1932A60F32D00E1D940 /* XPCandyTreeMoreView.m */,
|
||||
2331C1A02A60F32D00E1D940 /* XPCandyTreeRankView.h */,
|
||||
2331C1922A60F32D00E1D940 /* XPCandyTreeRankView.m */,
|
||||
2331C1942A60F32D00E1D940 /* XPCandyTreeViewController.h */,
|
||||
2331C1A12A60F32D00E1D940 /* XPCandyTreeViewController.m */,
|
||||
2331C1972A60F32D00E1D940 /* XPRoomHalfWebView.h */,
|
||||
2331C1A62A60F32D00E1D940 /* XPRoomHalfWebView.m */,
|
||||
);
|
||||
path = View;
|
||||
@@ -7046,6 +7052,8 @@
|
||||
E872308A26E89D5100B90D4F /* CustomView */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
23B2AEBF2A64E9C200543D17 /* LoginForgetEditView.h */,
|
||||
23B2AEC02A64E9C200543D17 /* LoginForgetEditView.m */,
|
||||
E872309126E8D31500B90D4F /* LoginVerifCodeView.h */,
|
||||
E872309226E8D31500B90D4F /* LoginVerifCodeView.m */,
|
||||
E824543B26F58C3A00BE8163 /* XPLoginBindSuccessView.h */,
|
||||
@@ -7317,8 +7325,6 @@
|
||||
E8901CF528B38D89001E9A92 /* XPGraffitiGiftView.m */,
|
||||
9B4D449128F15765002572D5 /* XPGiftLuckyGiftBroadcastView.h */,
|
||||
9B4D449228F15765002572D5 /* XPGiftLuckyGiftBroadcastView.m */,
|
||||
9B4D449428F15EE7002572D5 /* XPGiftWeekStarBroadcastView.h */,
|
||||
9B4D449528F15EE7002572D5 /* XPGiftWeekStarBroadcastView.m */,
|
||||
E8D4DE422940462C00EC788D /* XPGiftTwelveStarBroadcastView.h */,
|
||||
E8D4DE432940462C00EC788D /* XPGiftTwelveStarBroadcastView.m */,
|
||||
);
|
||||
@@ -9003,6 +9009,7 @@
|
||||
en,
|
||||
Base,
|
||||
"zh-Hant",
|
||||
"zh-Hans",
|
||||
);
|
||||
mainGroup = 189DD52026DE255300AB55B1;
|
||||
productRefGroup = 189DD52A26DE255300AB55B1 /* Products */;
|
||||
@@ -9303,6 +9310,7 @@
|
||||
E801275827E347FD00BAC3F2 /* RoomPKRecordModel.m in Sources */,
|
||||
E8E0DAE0285C20E500566A2F /* MessageContentFindNewGreetView.m in Sources */,
|
||||
E8A3540128FEAC5E0014A784 /* XPWishGiftTableViewCell.m in Sources */,
|
||||
23B2AEC12A64E9C200543D17 /* LoginForgetEditView.m in Sources */,
|
||||
E8EEB90326FC31DC007C6EBA /* XPMineUserInfoProtocol.h in Sources */,
|
||||
E8232603274E4AA0003A3332 /* ThemeColor+UserCard.m in Sources */,
|
||||
E87A24F1272935920086A794 /* XPMessageRemoteExtModel.m in Sources */,
|
||||
@@ -9925,7 +9933,6 @@
|
||||
9BD798B4292632FE003E03E6 /* XPSessionListHeadItemView.m in Sources */,
|
||||
E8E20BE828169BDC0033B688 /* XPMineLoginPasswordPresenter.m in Sources */,
|
||||
E85E7B3F2A4EB0D300B6D00A /* XPGuildSingleRoomIncomeTableViewCell.m in Sources */,
|
||||
9B4D449628F15EE7002572D5 /* XPGiftWeekStarBroadcastView.m in Sources */,
|
||||
E84150C227747BF700A7F548 /* FirstRechargeModel.m in Sources */,
|
||||
9B1EF3D227E81C0600554295 /* XPMineDressUpBubbleViewController.m in Sources */,
|
||||
2331C1AB2A60F32D00E1D940 /* CandyTreeResultModel.m in Sources */,
|
||||
@@ -10010,6 +10017,7 @@
|
||||
E8AB632C28AE19600023B0D2 /* XPMonentsMineViewController.m in Sources */,
|
||||
E87AE8C1284E184300CAFBB3 /* RoomNewUserGreetModel.m in Sources */,
|
||||
9BC5C91C277C8A7B007C8719 /* XPReleaseRadioViewController.m in Sources */,
|
||||
23B2AEC42A6516C200543D17 /* LoginForgetPasswordViewController.m in Sources */,
|
||||
186A534C26FC6ED900D67B2C /* TTAlertView.m in Sources */,
|
||||
E8A3540428FEB7100014A784 /* XPWishGiftHistoryViewController.m in Sources */,
|
||||
E85E7B332A4EB0D300B6D00A /* XPGuildIncomeSectionView.m in Sources */,
|
||||
@@ -10295,6 +10303,7 @@
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
E80E09AA2A40B70100CD2BE7 /* zh-Hant */,
|
||||
23352A0D2A669D57001DB9B5 /* zh-Hans */,
|
||||
);
|
||||
name = Localizable.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@@ -5,12 +5,12 @@
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "gift_constellationBanner_bg@2x.png",
|
||||
"filename" : "login_arrow@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "gift_constellationBanner_bg@3x.png",
|
||||
"filename" : "login_arrow@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
BIN
YuMi/Assets.xcassets/Login/login_arrow.imageset/login_arrow@2x.png
vendored
Normal file
After Width: | Height: | Size: 172 B |
BIN
YuMi/Assets.xcassets/Login/login_arrow.imageset/login_arrow@3x.png
vendored
Normal file
After Width: | Height: | Size: 255 B |
22
YuMi/Assets.xcassets/Login/login_forget_password_hidden.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "login_forget_password_hidden@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "login_forget_password_hidden@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
BIN
YuMi/Assets.xcassets/Login/login_forget_password_hidden.imageset/login_forget_password_hidden@2x.png
vendored
Normal file
After Width: | Height: | Size: 730 B |
BIN
YuMi/Assets.xcassets/Login/login_forget_password_hidden.imageset/login_forget_password_hidden@3x.png
vendored
Normal file
After Width: | Height: | Size: 1.2 KiB |
22
YuMi/Assets.xcassets/Login/login_forget_password_show.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "login_forget_password_show@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "login_forget_password_show@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
BIN
YuMi/Assets.xcassets/Login/login_forget_password_show.imageset/login_forget_password_show@2x.png
vendored
Normal file
After Width: | Height: | Size: 416 B |
BIN
YuMi/Assets.xcassets/Login/login_forget_password_show.imageset/login_forget_password_show@3x.png
vendored
Normal file
After Width: | Height: | Size: 607 B |
25
YuMi/Assets.xcassets/jm/Noble/room_gift_noble_entrance.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_gift_noble_entrance@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "room_gift_noble_entrance@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"localizable" : true
|
||||
}
|
||||
}
|
BIN
YuMi/Assets.xcassets/jm/Noble/room_gift_noble_entrance.imageset/room_gift_noble_entrance@2x.png
vendored
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
YuMi/Assets.xcassets/jm/Noble/room_gift_noble_entrance.imageset/room_gift_noble_entrance@3x.png
vendored
Normal file
After Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 440 B After Width: | Height: | Size: 776 B |
Before Width: | Height: | Size: 751 B After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 323 B After Width: | Height: | Size: 412 B |
Before Width: | Height: | Size: 572 B After Width: | Height: | Size: 676 B |
22
YuMi/Assets.xcassets/middle/GiftWeekStarTab/gift_twelve_star_Banner_arrow.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "gift_twelve_star_Banner_arrow@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "gift_twelve_star_Banner_arrow@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 181 B |
After Width: | Height: | Size: 238 B |
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "gift_twelve_star_Banner_naming_bg@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "gift_twelve_star_Banner_naming_bg@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 23 KiB |
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "gift_twelve_star_Banner_rich_bg@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "gift_twelve_star_Banner_rich_bg@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 35 KiB |
@@ -5,12 +5,11 @@
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "common_empty_avatar@2x.png",
|
||||
"filename" : "common_avatar@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "common_empty_avatar@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
|
BIN
YuMi/Assets.xcassets/utils/common_empty_avatar.imageset/common_avatar@2x.png
vendored
Normal file
After Width: | Height: | Size: 9.8 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 3.7 KiB |
@@ -95,7 +95,7 @@
|
||||
}
|
||||
/// 按钮不可点击文字颜色 0xF9F9F9
|
||||
+ (UIColor *)disableButtonTextColor {
|
||||
return UIColorFromRGB(0x5FCCE4);
|
||||
return UIColorFromRGB(0xB3B3C3);
|
||||
}
|
||||
/* ------Button 相关颜色 END------ */
|
||||
|
||||
|
@@ -90,6 +90,8 @@ typedef NS_ENUM(NSUInteger, URLType) {
|
||||
kXinZuoStarURL,
|
||||
///收益记录
|
||||
kMineEarningsRecord,
|
||||
///金币收益记录
|
||||
kGoldEarningsRecord
|
||||
};
|
||||
|
||||
NSString * const URLWithType(URLType type);
|
||||
|
@@ -18,11 +18,18 @@ NSString * const URLWithType(URLType type) {
|
||||
prefix = [NSString stringWithFormat:@"%@o",prefix];
|
||||
|
||||
if(type == kNobleRankURL){
|
||||
NSDictionary *dic = @{@(kNobleRankURL):@"modules/noble/index.html"};///排行榜}
|
||||
NSDictionary *dic = @{@(kNobleRankURL):@"modules/noble/index.html"};///排行榜
|
||||
NSString * url = [dic objectForKey:@(type)];
|
||||
return [NSString stringWithFormat:@"%@/%@",prefix, url];
|
||||
|
||||
}else if(type == kGoldEarningsRecord){
|
||||
NSDictionary *dic = @{@(kGoldEarningsRecord):@"modules/myincome/index.html#/GoldLog"};///金币收益记录;
|
||||
NSString * url = [dic objectForKey:@(type)];
|
||||
return [NSString stringWithFormat:@"%@/%@",prefix, url];
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
NSDictionary * dic = @{
|
||||
@(kPrivacyURL) : @"sPa8x4YF1hFEeCeH5v+RMOulemxgjjZLbxkN8ZrBSM8=",//隐私政策 modules/rule/privacy-wap.html
|
||||
@@ -70,6 +77,8 @@ NSString * const URLWithType(URLType type) {
|
||||
@(kRedPacketRuleURL) : @"nRMNKGz9zmwOEcoRr/bGneWzsrl+qHbvUGgXJhFAfVGcldkazbiNrc/v2rR0HFw+",///红包规则 modules/rule/red-packet-rule.html
|
||||
@(kXinZuoStarURL) : @"3l3NxeDKO2bNAESpzjZ76mvJa2D26Bgqy+nNusiuH1UHYM+bYk+MM/TNM4VRqk1K",///星座礼物 activity/act-constellation/index.html
|
||||
@(kMineEarningsRecord) : @"0HJ5o+40NtYGeHo1KRoQE3VdLhFQnvGyqgph9CCLjyU53rS29T2nD7UEh3CpX2BG",///收益记录
|
||||
|
||||
|
||||
};
|
||||
NSString * url = [dic objectForKey:@(type)];
|
||||
NSString * webUrl = [AESUtils aesDecrypt:url];
|
||||
|
@@ -46,7 +46,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
+ (void)resetPasswordWithPhone:(HttpRequestHelperCompletion)complction
|
||||
phone:(NSString *)phone
|
||||
newPwd:(NSString *)newPwd
|
||||
smsCode:(NSString *)smsCode;
|
||||
smsCode:(NSString *)smsCode phoneAreaCode:(NSString *)phoneAreaCode;
|
||||
|
||||
/// 第三方登录
|
||||
/// @param complction 完成
|
||||
@@ -72,7 +72,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
+ (void)bindMoblieCode:(HttpRequestHelperCompletion)complection
|
||||
phone:(NSString *)phone
|
||||
code:(NSString *)code
|
||||
ticket:(NSString *)ticket;
|
||||
ticket:(NSString *)ticket phoneAreaCode:(NSString *)phoneAreaCode;
|
||||
|
||||
+(void)getPhoneAreaCodeList:(HttpRequestHelperCompletion)complection;
|
||||
@end
|
||||
|
@@ -37,9 +37,9 @@
|
||||
/// @param phone 手机号
|
||||
/// @param newPwd 新的密码
|
||||
/// @param smsCode 验证码
|
||||
+ (void)resetPasswordWithPhone:(HttpRequestHelperCompletion)completion phone:(NSString *)phone newPwd:(NSString *)newPwd smsCode:(NSString *)smsCode {
|
||||
+ (void)resetPasswordWithPhone:(HttpRequestHelperCompletion)completion phone:(NSString *)phone newPwd:(NSString *)newPwd smsCode:(NSString *)smsCode phoneAreaCode:(NSString *)phoneAreaCode{
|
||||
NSString * fang = [NSString stringFromBase64String:@"YWNjL3B3ZC9yZXNldA=="];/// acc/pwd/reset
|
||||
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, phone, newPwd, smsCode, nil];
|
||||
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, phone, newPwd, smsCode,phoneAreaCode, nil];
|
||||
}
|
||||
|
||||
|
||||
@@ -69,9 +69,9 @@
|
||||
+ (void)bindMoblieCode:(HttpRequestHelperCompletion)complection
|
||||
phone:(NSString *)phone
|
||||
code:(NSString *)code
|
||||
ticket:(NSString *)ticket {
|
||||
ticket:(NSString *)ticket phoneAreaCode:(NSString *)phoneAreaCode{
|
||||
NSString * fang = [NSString stringFromBase64String:@"d2l0aERyYXcvcGhvbmU="];///withDraw/phone
|
||||
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, phone, code, ticket, nil];
|
||||
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, phone, code, ticket,phoneAreaCode, nil];
|
||||
}
|
||||
|
||||
+(void)getPhoneAreaCodeList:(HttpRequestHelperCompletion)complection{
|
||||
|
@@ -19,7 +19,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
/// @param phone 手机号
|
||||
/// @param newPwd 新的密码
|
||||
/// @param smsCode 验证码
|
||||
- (void)resetPassword:(NSString *)phone newPwd:(NSString *)newPwd smsCode:(NSString *)smsCode;
|
||||
- (void)resetPassword:(NSString *)phone newPwd:(NSString *)newPwd smsCode:(NSString *)smsCode phoneAreaCode:(NSString *)phoneAreaCode;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@@ -38,12 +38,12 @@
|
||||
/// @param phone 手机号
|
||||
/// @param newPwd 新的密码
|
||||
/// @param smsCode 验证码
|
||||
- (void)resetPassword:(NSString *)phone newPwd:(NSString *)newPwd smsCode:(NSString *)smsCode {
|
||||
- (void)resetPassword:(NSString *)phone newPwd:(NSString *)newPwd smsCode:(NSString *)smsCode phoneAreaCode:(NSString *)phoneAreaCode{
|
||||
NSString * desPassword = [DESEncrypt encryptUseDES:newPwd key:KeyWithType(KeyType_PasswordEncode)];
|
||||
NSString * desPhone = [DESEncrypt encryptUseDES:phone key:KeyWithType(KeyType_PasswordEncode)];
|
||||
[Api resetPasswordWithPhone:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||
[[self getView] resetPasswrodSuccess];
|
||||
} showLoading:YES] phone:desPhone newPwd:desPassword smsCode:smsCode];
|
||||
} showLoading:YES] phone:desPhone newPwd:desPassword smsCode:smsCode phoneAreaCode:phoneAreaCode];
|
||||
}
|
||||
|
||||
@end
|
||||
|
@@ -23,7 +23,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
/// 绑定手机号
|
||||
/// @param phone 手机号
|
||||
/// @param code 验证码
|
||||
- (void)bindWithPhone:(NSString *)phone code:(NSString *)code;
|
||||
- (void)bindWithPhone:(NSString *)phone code:(NSString *)code phoneAreaCode:(NSString *)phoneAreaCode;
|
||||
|
||||
|
||||
@end
|
||||
|
@@ -55,12 +55,12 @@
|
||||
/// 绑定手机号
|
||||
/// @param phone 手机号
|
||||
/// @param code 验证码
|
||||
- (void)bindWithPhone:(NSString *)phone code:(NSString *)code {
|
||||
- (void)bindWithPhone:(NSString *)phone code:(NSString *)code phoneAreaCode:(NSString *)phoneAreaCode{
|
||||
NSString * ticket = [[AccountInfoStorage instance] getTicket];
|
||||
NSString * desPhone = [DESEncrypt encryptUseDES:phone key:KeyWithType(KeyType_PasswordEncode)];
|
||||
[Api bindMoblieCode:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||
[[self getView] bindPhoneSuccess];
|
||||
} showLoading:YES] phone:desPhone code:code ticket:ticket];
|
||||
} showLoading:YES] phone:desPhone code:code ticket:ticket phoneAreaCode:phoneAreaCode];
|
||||
}
|
||||
|
||||
@end
|
||||
|
@@ -19,12 +19,12 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
/// 校验手机验证码接口
|
||||
/// @param moblieNum 手机号码
|
||||
/// @param code 验证码
|
||||
- (void)checkMoblieCodeWithMoblie:(NSString *)moblieNum code:(NSString *)code;
|
||||
- (void)checkMoblieCodeWithMoblie:(NSString *)moblieNum code:(NSString *)code phoneAreaCode:(NSString *)phoneAreaCode;
|
||||
|
||||
/// 绑定手机验证码接口
|
||||
/// @param moblieNum 手机号码
|
||||
/// @param code 验证码
|
||||
- (void)bindkMoblieCodeWithMoblie:(NSString *)moblieNum code:(NSString *)code;
|
||||
- (void)bindkMoblieCodeWithMoblie:(NSString *)moblieNum code:(NSString *)code phoneAreaCode:(NSString *)phoneAreaCode;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@@ -31,23 +31,23 @@
|
||||
/// 校验手机验证码接口
|
||||
/// @param moblieNum 手机号码
|
||||
/// @param code 验证码
|
||||
- (void)checkMoblieCodeWithMoblie:(NSString *)moblieNum code:(NSString *)code {
|
||||
- (void)checkMoblieCodeWithMoblie:(NSString *)moblieNum code:(NSString *)code phoneAreaCode:(NSString *)phoneAreaCode{
|
||||
NSString * uid = [[AccountInfoStorage instance] getUid];
|
||||
NSString * ticket = [[AccountInfoStorage instance] getTicket];
|
||||
NSString * desPhone = [DESEncrypt encryptUseDES:moblieNum key:KeyWithType(KeyType_PasswordEncode)];
|
||||
[Api checkMoblieCode:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||
[[self getView] checkMoblieCodeWithMoblieSuccess];
|
||||
}] mobile:desPhone code:code uid:uid ticket:ticket];
|
||||
}] mobile:desPhone code:code uid:uid ticket:ticket phoneAreaCode:phoneAreaCode];
|
||||
}
|
||||
|
||||
/// 绑定手机验证码接口
|
||||
/// @param moblieNum 手机号码
|
||||
/// @param code 验证码
|
||||
- (void)bindkMoblieCodeWithMoblie:(NSString *)moblieNum code:(NSString *)code {
|
||||
- (void)bindkMoblieCodeWithMoblie:(NSString *)moblieNum code:(NSString *)code phoneAreaCode:(NSString *)phoneAreaCode{
|
||||
NSString * ticket = [[AccountInfoStorage instance] getTicket];
|
||||
NSString * desPhone = [DESEncrypt encryptUseDES:moblieNum key:KeyWithType(KeyType_PasswordEncode)];
|
||||
[Api bindMoblieCode:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||
[[self getView] bindMoblieCodeWithMoblieSuccess];
|
||||
}] phone:desPhone code:code ticket:ticket];
|
||||
}] phone:desPhone code:code ticket:ticket phoneAreaCode:phoneAreaCode];
|
||||
}
|
||||
@end
|
||||
|
36
YuMi/Modules/YMLogin/View/CustomView/LoginForgetEditView.h
Normal file
@@ -0,0 +1,36 @@
|
||||
//
|
||||
// LoginForgetEditView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2021/9/10.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "XPTextField.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
typedef enum : NSUInteger {
|
||||
LoginForgetEditViewTypeNormal, // 普通类型
|
||||
LoginForgetEditViewTypeSms, // 短信验证码类型
|
||||
LoginForgetEditViewTypePassword, ///密码
|
||||
} LoginForgetEditViewType;
|
||||
|
||||
@interface LoginForgetEditView : UIView
|
||||
/** textField */
|
||||
@property (nonatomic, strong, readonly) XPTextField *textField;
|
||||
/** rightButton */
|
||||
@property (nonatomic, strong, readonly) UIButton *rightButton;
|
||||
/** 验证码 */
|
||||
@property (nonatomic, strong, readonly) UIButton *authCodeButton;
|
||||
///选择区号
|
||||
@property (nonatomic,strong,readonly) UILabel *codeView;
|
||||
///倒计时
|
||||
@property (nonatomic, strong, readonly) UILabel *cutdownLabel;
|
||||
///类型
|
||||
@property (nonatomic, assign) LoginForgetEditViewType type;
|
||||
///展位图
|
||||
@property (nonatomic,copy) NSString *placeholder;
|
||||
@property (nonatomic,copy) NSString *areaCode;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
206
YuMi/Modules/YMLogin/View/CustomView/LoginForgetEditView.m
Normal file
@@ -0,0 +1,206 @@
|
||||
//
|
||||
// LoginForgetEditView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2021/9/10.
|
||||
//
|
||||
|
||||
#import "LoginForgetEditView.h"
|
||||
|
||||
///第三方
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
|
||||
@interface LoginForgetEditView()
|
||||
|
||||
|
||||
///容器
|
||||
@property (nonatomic,strong) UIStackView *stackView;
|
||||
///倒计时
|
||||
@property (nonatomic, strong) UILabel *cutdownLabel;
|
||||
///选择区号
|
||||
@property (nonatomic,strong) UILabel *codeView;
|
||||
/** textField */
|
||||
@property (nonatomic, strong) XPTextField *textField;
|
||||
/** rightButton */
|
||||
@property (nonatomic, strong) UIButton *rightButton;
|
||||
/** 验证码 */
|
||||
@property (nonatomic, strong) UIButton *authCodeButton;
|
||||
|
||||
@end
|
||||
|
||||
@implementation LoginForgetEditView
|
||||
|
||||
#pragma mark - life cycle
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
if (self = [super initWithFrame:frame]) {
|
||||
[self initView];
|
||||
[self initConstrations];
|
||||
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - private method
|
||||
- (void)initView {
|
||||
self.backgroundColor = UIColorFromRGB(0xF0F5F6);
|
||||
self.layer.masksToBounds = YES;
|
||||
self.layer.cornerRadius = kGetScaleWidth(24);
|
||||
|
||||
[self addSubview:self.stackView];
|
||||
|
||||
[self.stackView addArrangedSubview:self.codeView];
|
||||
[self.stackView addArrangedSubview:self.textField];
|
||||
[self.stackView addArrangedSubview:self.rightButton];
|
||||
[self.stackView addArrangedSubview:self.cutdownLabel];
|
||||
[self.stackView addArrangedSubview:self.authCodeButton];
|
||||
}
|
||||
|
||||
- (void)initConstrations {
|
||||
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(kGetScaleWidth(20));
|
||||
make.trailing.mas_equalTo(-kGetScaleWidth(20));
|
||||
make.top.bottom.equalTo(self);
|
||||
}];
|
||||
|
||||
[self.codeView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_lessThanOrEqualTo(kGetScaleWidth(70));
|
||||
}];
|
||||
[self.textField mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.equalTo(self.codeView.mas_trailing).mas_offset(10);
|
||||
}];
|
||||
[self.authCodeButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_lessThanOrEqualTo(kGetScaleWidth(120));
|
||||
}];
|
||||
[self.rightButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.height.mas_equalTo(kGetScaleWidth(24));
|
||||
}];
|
||||
[self.cutdownLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_lessThanOrEqualTo(kGetScaleWidth(120));
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - getters and setters
|
||||
- (void)setType:(LoginForgetEditViewType)type {
|
||||
switch (type) {
|
||||
case LoginForgetEditViewTypeNormal:
|
||||
self.codeView.hidden = NO;
|
||||
self.rightButton.hidden = YES;
|
||||
self.authCodeButton.hidden = YES;
|
||||
self.cutdownLabel.hidden = YES;
|
||||
self.textField.isValidation = YES;
|
||||
break;
|
||||
case LoginForgetEditViewTypeSms:
|
||||
self.authCodeButton.hidden = NO;
|
||||
self.rightButton.hidden = YES;
|
||||
self.cutdownLabel.hidden = YES;
|
||||
self.codeView.hidden = YES;
|
||||
self.textField.isValidation = YES;
|
||||
break;
|
||||
case LoginForgetEditViewTypePassword:
|
||||
self.authCodeButton.hidden = YES;
|
||||
self.cutdownLabel.hidden = YES;
|
||||
self.codeView.hidden = YES;
|
||||
self.rightButton.hidden = NO;
|
||||
self.textField.isValidation = NO;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
-(NSMutableAttributedString *)getChooseCodeText:(NSString *)code{
|
||||
NSMutableAttributedString *codeAtt = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"%@ ",code] attributes:@{NSFontAttributeName:kFontSemibold(15),NSForegroundColorAttributeName:[DJDKMIMOMColor inputTextColor]}];
|
||||
NSTextAttachment * attachment = [[NSTextAttachment alloc] init];
|
||||
UIImage *iconImage = [UIImage imageNamed:@"login_arrow"];;
|
||||
attachment.bounds = CGRectMake(0, roundf(self.codeView.font.capHeight - iconImage.size.height)/2.f, iconImage.size.width, iconImage.size.height);
|
||||
attachment.image = iconImage;
|
||||
[codeAtt appendAttributedString:[NSMutableAttributedString attributedStringWithAttachment:attachment]];
|
||||
return codeAtt;
|
||||
|
||||
}
|
||||
-(void)setAreaCode:(NSString *)areaCode{
|
||||
_areaCode = areaCode;
|
||||
_codeView.attributedText = [self getChooseCodeText:_areaCode];
|
||||
}
|
||||
- (void)setPlaceholder:(NSString *)placeholder {
|
||||
_placeholder = placeholder;
|
||||
if (_placeholder) {
|
||||
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
|
||||
NSDictionary *dic = @{
|
||||
NSParagraphStyleAttributeName:style,
|
||||
NSFontAttributeName:kFontRegular(15),
|
||||
NSForegroundColorAttributeName:[DJDKMIMOMColor disableButtonTextColor]};
|
||||
if (placeholder == nil || placeholder.length == 0) {
|
||||
placeholder = @"";
|
||||
}
|
||||
self.textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:placeholder attributes:dic];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark -懒加载
|
||||
|
||||
- (UILabel *)codeView{
|
||||
if (!_codeView){
|
||||
_codeView = [UILabel new];
|
||||
_codeView.userInteractionEnabled = YES;
|
||||
_codeView.attributedText = [self getChooseCodeText:@"+852"];
|
||||
|
||||
}
|
||||
return _codeView;
|
||||
}
|
||||
|
||||
- (XPTextField *)textField {
|
||||
if (!_textField) {
|
||||
_textField = [[XPTextField alloc]initWithFrame:CGRectZero];
|
||||
_textField.font = kFontRegular(15);
|
||||
_textField.textColor = [DJDKMIMOMColor inputTextColor];
|
||||
_textField.adjustsFontSizeToFitWidth = YES;
|
||||
|
||||
}
|
||||
return _textField;
|
||||
}
|
||||
|
||||
- (UIButton *)rightButton {
|
||||
if (!_rightButton) {
|
||||
_rightButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_rightButton setImage:[UIImage imageNamed:@"login_forget_password_hidden"] forState:UIControlStateNormal];
|
||||
[_rightButton setImage:[UIImage imageNamed:@"login_forget_password_show"] forState:UIControlStateSelected];
|
||||
}
|
||||
return _rightButton;
|
||||
}
|
||||
- (UILabel *)cutdownLabel {
|
||||
if (!_cutdownLabel) {
|
||||
_cutdownLabel = [[UILabel alloc] init];
|
||||
_cutdownLabel.textAlignment = NSTextAlignmentRight;
|
||||
_cutdownLabel.font = kFontRegular(15);
|
||||
_cutdownLabel.textColor = UIColorFromRGB(0x9168FA);
|
||||
_cutdownLabel.hidden = NO;
|
||||
}
|
||||
return _cutdownLabel;
|
||||
}
|
||||
|
||||
- (UIButton *)authCodeButton {
|
||||
if (!_authCodeButton) {
|
||||
_authCodeButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
_authCodeButton.titleLabel.font = kFontRegular(15);
|
||||
[_authCodeButton setTitle:YMLocalizedString(@"LoginForgetEditView0") forState:UIControlStateNormal];
|
||||
_authCodeButton.titleLabel.numberOfLines = 0;
|
||||
_authCodeButton.titleLabel.adjustsFontSizeToFitWidth = YES;
|
||||
[_authCodeButton setTitleColor:[DJDKMIMOMColor inputTextColor] forState:UIControlStateNormal];
|
||||
}
|
||||
return _authCodeButton;
|
||||
}
|
||||
|
||||
- (UIStackView *)stackView {
|
||||
if (!_stackView) {
|
||||
_stackView = [[UIStackView alloc] init];
|
||||
_stackView.axis = UILayoutConstraintAxisHorizontal;
|
||||
_stackView.distribution = UIStackViewDistributionFill;
|
||||
_stackView.alignment = UIStackViewAlignmentFill;
|
||||
_stackView.spacing = 10;
|
||||
}
|
||||
return _stackView;
|
||||
}
|
||||
|
||||
@end
|
@@ -0,0 +1,17 @@
|
||||
//
|
||||
// LoginForgetPasswordViewController.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2021/9/10.
|
||||
//
|
||||
|
||||
#import "MvpViewController.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface LoginForgetPasswordViewController : MvpViewController
|
||||
@property (nonatomic,copy) NSString *phoneAreaCode;
|
||||
@property (nonatomic,assign) BOOL isLogout;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
237
YuMi/Modules/YMLogin/View/LoginForgetPasswordViewController.m
Normal file
@@ -0,0 +1,237 @@
|
||||
//
|
||||
// LoginForgetPasswordViewController.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2021/9/10.
|
||||
//
|
||||
|
||||
#import "LoginForgetPasswordViewController.h"
|
||||
///第三方
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <ReactiveObjC/ReactiveObjC.h>
|
||||
///Tool
|
||||
#import "CountDownHelper.h"
|
||||
|
||||
#import "UIImage+Utils.h"
|
||||
///Presenter
|
||||
#import "LoginForgetPasswordPresent.h"
|
||||
#import "LoginForgetPasswordProtocol.h"
|
||||
///View
|
||||
#import "LoginForgetEditView.h"
|
||||
#import "XPLoginAraeViewController.h"
|
||||
|
||||
|
||||
@interface LoginForgetPasswordViewController ()<XPLoginAraeViewControllerDelegate,LoginForgetPasswordProtocol, CountDownHelperDelegate>
|
||||
///容器
|
||||
@property (nonatomic,strong) UIStackView *stackView;
|
||||
///手机号
|
||||
@property (nonatomic,strong) LoginForgetEditView *phoneView;
|
||||
///验证码
|
||||
@property (nonatomic,strong) LoginForgetEditView *codeView;
|
||||
///密码
|
||||
@property (nonatomic,strong) LoginForgetEditView *passwordView;
|
||||
///完成
|
||||
@property (nonatomic,strong) UIButton *finishButton;
|
||||
|
||||
@end
|
||||
|
||||
@implementation LoginForgetPasswordViewController
|
||||
|
||||
- (void)dealloc {
|
||||
[[CountDownHelper shareHelper] stopCountDown];
|
||||
}
|
||||
|
||||
- (LoginForgetPasswordPresent *)createPresenter {
|
||||
return [[LoginForgetPasswordPresent alloc] init];
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
self.phoneAreaCode = @"852";
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
[self initEvents];
|
||||
}
|
||||
|
||||
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
|
||||
[self.view endEditing:NO];
|
||||
}
|
||||
|
||||
- (void)viewDidDisappear:(BOOL)animated {
|
||||
[super viewDidDisappear:animated];
|
||||
[[CountDownHelper shareHelper] stopCountDown];
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
self.title = YMLocalizedString(@"LoginForgetPasswordViewController0");
|
||||
self.view.backgroundColor = [UIColor whiteColor];
|
||||
[CountDownHelper shareHelper].delegate = self;
|
||||
[self.view addSubview:self.stackView];
|
||||
[self.view addSubview:self.finishButton];
|
||||
|
||||
[self.stackView addArrangedSubview:self.phoneView];
|
||||
[self.stackView addArrangedSubview:self.codeView];
|
||||
[self.stackView addArrangedSubview:self.passwordView];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.view).mas_offset(kGetScaleWidth(30));
|
||||
make.leading.trailing.equalTo(self.view).inset(kGetScaleWidth(15));
|
||||
}];
|
||||
|
||||
[self.finishButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.view).inset(kGetScaleWidth(15));
|
||||
make.height.mas_equalTo(45);
|
||||
make.top.mas_equalTo(self.stackView.mas_bottom).offset(kGetScaleWidth(51));
|
||||
}];
|
||||
|
||||
[self.phoneView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(kGetScaleWidth(48));
|
||||
}];
|
||||
|
||||
[self.codeView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(self.phoneView);
|
||||
}];
|
||||
|
||||
[self.passwordView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(self.phoneView);
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)initEvents {
|
||||
@weakify(self);
|
||||
RAC(self.finishButton, enabled) = [RACSignal combineLatest:@[self.phoneView.textField.rac_textSignal, self.codeView.textField.rac_textSignal, self.passwordView.textField.rac_textSignal] reduce:^id _Nonnull(NSString *phone, NSString *code, NSString *password){
|
||||
return @(phone.length > 0 && code.length > 0 && password.length >= 6 && password.length <= 16);
|
||||
}];
|
||||
}
|
||||
#pragma mark - XPChooseAreaCodeVCDelegate
|
||||
-(void)chooseAreaCodeSuccess:(NSString *)code{
|
||||
self.phoneAreaCode = code;
|
||||
self.phoneView.areaCode = [NSString stringWithFormat:@"+%@",code];
|
||||
}
|
||||
#pragma mark - LoginForgetPasswordProtocol
|
||||
///请求手机号的验证码成功
|
||||
- (void)phoneSmsCodeSuccess {
|
||||
[self hideHUD];
|
||||
self.codeView.authCodeButton.enabled= NO;
|
||||
[self showSuccessToast:YMLocalizedString(@"LoginForgetPasswordViewController1")];
|
||||
[[CountDownHelper shareHelper] openCountdownWithTime:60];
|
||||
}
|
||||
///重置密码成功
|
||||
- (void)resetPasswrodSuccess {
|
||||
[[CountDownHelper shareHelper] stopCountDown];
|
||||
[self showSuccessToast:YMLocalizedString(@"LoginForgetPasswordViewController2")];
|
||||
if(self.isLogout == YES){
|
||||
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC));
|
||||
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
|
||||
[self.presenter logout];
|
||||
});
|
||||
|
||||
}else{
|
||||
[self.navigationController popViewControllerAnimated:YES];
|
||||
}
|
||||
|
||||
}
|
||||
#pragma mark - CountDownHelperDelegate
|
||||
///倒计时进行中
|
||||
- (void)onCountdownOpen:(int)time {
|
||||
[self.codeView.authCodeButton setTitle:[NSString stringWithFormat:YMLocalizedString(@"LoginForgetPasswordViewController3"), time] forState:UIControlStateDisabled];
|
||||
}
|
||||
///倒计时结束
|
||||
- (void)onCountdownFinish {
|
||||
self.codeView.authCodeButton.enabled= YES;
|
||||
[self.codeView.authCodeButton setTitle:YMLocalizedString(@"LoginForgetPasswordViewController4") forState:UIControlStateNormal];
|
||||
}
|
||||
#pragma mark - Event Response
|
||||
- (void)finishButtonAction:(UIButton *)sender {
|
||||
[self.view endEditing:YES];
|
||||
[self.presenter resetPassword:[NSString stringWithFormat:@"%@%@",self.phoneAreaCode,self.phoneView.textField.text] newPwd:self.passwordView.textField.text smsCode:self.codeView.textField.text phoneAreaCode:self.phoneAreaCode];
|
||||
}
|
||||
|
||||
- (void)authCodeButtonAction:(UIButton *)sender {
|
||||
if(self.phoneView.textField.text.length == 0){
|
||||
[self showErrorToast:YMLocalizedString(@"LoginForgetPasswordViewController7")];
|
||||
return;
|
||||
}
|
||||
[self.view endEditing:YES];
|
||||
[self showLoading];
|
||||
[self.presenter phoneSmsCode:[NSString stringWithFormat:@"%@%@",self.phoneAreaCode,self.phoneView.textField.text] type:GetSmsType_Reset_Password phoneAreaCode:self.phoneAreaCode];
|
||||
|
||||
}
|
||||
-(void)chooseAreaCodeAction{
|
||||
XPLoginAraeViewController *codeVC = [XPLoginAraeViewController new];
|
||||
codeVC.delegate = self;
|
||||
[self.navigationController pushViewController:codeVC animated:YES];
|
||||
}
|
||||
-(void)hidePasswordAction{
|
||||
self.passwordView.rightButton.selected = !self.passwordView.rightButton.selected;
|
||||
self.passwordView.textField.secureTextEntry = !self.passwordView.rightButton.selected;
|
||||
}
|
||||
#pragma mark - Getters And Setters
|
||||
- (UIButton *)finishButton{
|
||||
if (!_finishButton) {
|
||||
_finishButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
_finishButton.layer.masksToBounds = YES;
|
||||
_finishButton.layer.cornerRadius = kGetScaleWidth(24);
|
||||
[_finishButton setTitle:YMLocalizedString(@"LoginForgetPasswordViewController6") forState:UIControlStateNormal];
|
||||
_finishButton.titleLabel.font = kFontRegular(16);
|
||||
[_finishButton setTitleColor:[DJDKMIMOMColor confirmButtonTextColor] forState:UIControlStateNormal];
|
||||
_finishButton.enabled = NO;
|
||||
UIImage *image = [UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor],[DJDKMIMOMColor confirmButtonGradientMiddleColor], [DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(kGetScaleWidth(345), kGetScaleWidth(46))];
|
||||
[_finishButton setBackgroundImage:image forState:UIControlStateNormal];
|
||||
[_finishButton addTarget:self action:@selector(finishButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _finishButton;
|
||||
}
|
||||
|
||||
|
||||
- (UIStackView *)stackView {
|
||||
if (!_stackView) {
|
||||
_stackView = [[UIStackView alloc] init];
|
||||
_stackView.axis = UILayoutConstraintAxisVertical;
|
||||
_stackView.distribution = UIStackViewDistributionFill;
|
||||
_stackView.alignment = UIStackViewAlignmentFill;
|
||||
_stackView.spacing = kGetScaleWidth(25);
|
||||
}
|
||||
return _stackView;
|
||||
}
|
||||
|
||||
- (LoginForgetEditView *)phoneView {
|
||||
if (!_phoneView) {
|
||||
_phoneView = [[LoginForgetEditView alloc] init];
|
||||
// _phoneView.placeholder = YMLocalizedString(@"LoginForgetPasswordViewController7");
|
||||
_phoneView.textField.keyboardType = UIKeyboardTypeNumberPad;
|
||||
_phoneView.type = LoginForgetEditViewTypeNormal;
|
||||
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(chooseAreaCodeAction)];
|
||||
[_phoneView.codeView addGestureRecognizer:tap];
|
||||
}
|
||||
return _phoneView;
|
||||
}
|
||||
|
||||
- (LoginForgetEditView *)codeView {
|
||||
if (!_codeView) {
|
||||
_codeView = [[LoginForgetEditView alloc] init];
|
||||
_codeView.placeholder = YMLocalizedString(@"LoginForgetPasswordViewController8");
|
||||
_codeView.type = LoginForgetEditViewTypeSms;
|
||||
_codeView.textField.keyboardType = UIKeyboardTypeNumberPad;
|
||||
[_codeView.authCodeButton addTarget:self action:@selector(authCodeButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _codeView;
|
||||
}
|
||||
|
||||
- (LoginForgetEditView *)passwordView {
|
||||
if (!_passwordView) {
|
||||
_passwordView = [[LoginForgetEditView alloc] init];
|
||||
_passwordView.textField.secureTextEntry = YES;
|
||||
_passwordView.placeholder = YMLocalizedString(@"LoginForgetPasswordViewController9");
|
||||
_passwordView.type = LoginForgetEditViewTypePassword;
|
||||
_passwordView.textField.keyboardType = UIKeyboardTypeASCIICapable;
|
||||
_passwordView.textField.clearButtonMode = UITextFieldViewModeAlways;
|
||||
[_passwordView.rightButton addTarget:self action:@selector(hidePasswordAction) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _passwordView;
|
||||
}
|
||||
|
||||
@end
|
@@ -96,7 +96,7 @@
|
||||
NSString *phone = self.phoneInputView.inputTextField.text;
|
||||
NSString *smsCode = self.codeInputView.inputTextField.text;
|
||||
NSString *password = self.pwdInputView.inputTextField.text;
|
||||
[self.presenter resetPassword:phone newPwd:password smsCode:smsCode];
|
||||
[self.presenter resetPassword:phone newPwd:password smsCode:smsCode phoneAreaCode:@""];
|
||||
}
|
||||
|
||||
#pragma mark - XPLoginInputViewDelegate
|
||||
|
@@ -1,8 +1,8 @@
|
||||
//
|
||||
// YMLoginBindPhoneResultViewController.m
|
||||
// YUMI
|
||||
// XPLoginBindPhoneResultViewController.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by YUMI on 2021/9/17.
|
||||
// Created by 冯硕 on 2021/9/17.
|
||||
//
|
||||
|
||||
#import "XPLoginBindPhoneResultViewController.h"
|
||||
@@ -10,7 +10,6 @@
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <ReactiveObjC/ReactiveObjC.h>
|
||||
///Tool
|
||||
#import "DJDKMIMOMColor.h"
|
||||
#import "UIImage+Utils.h"
|
||||
///Model
|
||||
#import "UserInfoModel.h"
|
||||
@@ -20,7 +19,6 @@
|
||||
|
||||
@property (nonatomic, strong) UIView *containerView;
|
||||
@property (nonatomic, strong) UIImageView *iconImageView;
|
||||
@property (nonatomic, strong) UILabel *titleLabel;
|
||||
@property (nonatomic, strong) UILabel *phoneLabel;
|
||||
@property (nonatomic, strong) UIButton *changePhoneBtn;
|
||||
|
||||
@@ -30,114 +28,99 @@
|
||||
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
[self initViews];
|
||||
[self setUpConstraints];
|
||||
[self setConfigs];
|
||||
[super viewDidLoad];
|
||||
[self initViews];
|
||||
[self setUpConstraints];
|
||||
[self setConfigs];
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initViews {
|
||||
[self.view addSubview:self.containerView];
|
||||
[self.containerView addSubview:self.iconImageView];
|
||||
[self.containerView addSubview:self.titleLabel];
|
||||
[self.containerView addSubview:self.phoneLabel];
|
||||
[self.containerView addSubview:self.changePhoneBtn];
|
||||
[self.view addSubview:self.containerView];
|
||||
[self.containerView addSubview:self.iconImageView];
|
||||
[self.containerView addSubview:self.phoneLabel];
|
||||
[self.containerView addSubview:self.changePhoneBtn];
|
||||
}
|
||||
|
||||
- (void)setConfigs {
|
||||
self.title = YMLocalizedString(@"XPLoginBindPhoneResultViewController0");
|
||||
self.phoneLabel.text = self.userInfo.phone;
|
||||
self.title = YMLocalizedString(@"XPLoginBindPhoneResultViewController0");
|
||||
NSMutableAttributedString *titleAtt = [[NSMutableAttributedString alloc]initWithString:YMLocalizedString(@"XPLoginBindPhoneResultViewController1") attributes:@{NSFontAttributeName:kFontSemibold(16),NSForegroundColorAttributeName:[DJDKMIMOMColor inputTextColor]}];
|
||||
NSAttributedString *phoneAtt = [[NSAttributedString alloc]initWithString:[NSString stringWithFormat:@"\n%@ %@",self.userInfo.phoneAreaCode,self.userInfo.phone] attributes:@{NSFontAttributeName:kFontSemibold(16),NSForegroundColorAttributeName:UIColorFromRGB(0x9168FA)}];
|
||||
[titleAtt appendAttributedString:phoneAtt];
|
||||
self.phoneLabel.attributedText = titleAtt;
|
||||
}
|
||||
|
||||
- (void)setUpConstraints {
|
||||
[self.containerView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(49);
|
||||
make.left.right.bottom.mas_equalTo(0);
|
||||
}];
|
||||
|
||||
[self.iconImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(50);
|
||||
make.centerX.mas_equalTo(0);
|
||||
make.size.mas_equalTo(CGSizeMake(135, 130));
|
||||
}];
|
||||
|
||||
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.mas_equalTo(0);
|
||||
make.top.mas_equalTo(self.iconImageView.mas_bottom).offset(39);
|
||||
}];
|
||||
|
||||
[self.phoneLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.mas_equalTo(0);
|
||||
make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(11);
|
||||
}];
|
||||
|
||||
[self.changePhoneBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.phoneLabel.mas_bottom).offset(41);
|
||||
make.left.right.mas_equalTo(0).inset(32);
|
||||
make.centerX.mas_equalTo(0);
|
||||
make.height.mas_equalTo(45);
|
||||
}];
|
||||
[self.containerView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self.view);
|
||||
}];
|
||||
|
||||
[self.iconImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(kGetScaleWidth(30));
|
||||
make.centerX.mas_equalTo(0);
|
||||
make.size.mas_equalTo(CGSizeMake(kGetScaleWidth(164), kGetScaleWidth(112)));
|
||||
}];
|
||||
|
||||
|
||||
|
||||
[self.phoneLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(kGetScaleWidth(184));
|
||||
make.centerX.equalTo(self.containerView);
|
||||
}];
|
||||
[self.changePhoneBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.phoneLabel.mas_bottom).offset(kGetScaleWidth(47));
|
||||
make.leading.trailing.mas_equalTo(0).inset(15);
|
||||
make.centerX.mas_equalTo(0);
|
||||
make.height.mas_equalTo(kGetScaleWidth(46));
|
||||
}];
|
||||
}
|
||||
#pragma mark - Event Response
|
||||
- (void)changePhoneBtnAction:(UIButton *)sender {
|
||||
XPLoginVerifBindPhoneViewController *vc = [[XPLoginVerifBindPhoneViewController alloc] init];
|
||||
vc.userInfo = self.userInfo;
|
||||
vc.bindingPhoneNumType = XPBindingPhoneNumTypeConfirm;
|
||||
[self.navigationController pushViewController:vc animated:YES];
|
||||
XPLoginVerifBindPhoneViewController *vc = [[XPLoginVerifBindPhoneViewController alloc] init];
|
||||
vc.userInfo = self.userInfo;
|
||||
vc.bindingPhoneNumType = XPBindingPhoneNumTypeConfirm;
|
||||
[self.navigationController pushViewController:vc animated:YES];
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (UIView *)containerView{
|
||||
if (!_containerView) {
|
||||
_containerView = [[UIView alloc] init];
|
||||
_containerView.backgroundColor = [DJDKMIMOMColor appBackgroundColor];
|
||||
}
|
||||
return _containerView;
|
||||
if (!_containerView) {
|
||||
_containerView = [[UIView alloc] init];
|
||||
_containerView.backgroundColor = [UIColor whiteColor];
|
||||
}
|
||||
return _containerView;
|
||||
}
|
||||
|
||||
- (UIImageView *)iconImageView{
|
||||
if (!_iconImageView) {
|
||||
_iconImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"login_bind_phone_bg"]];
|
||||
}
|
||||
return _iconImageView;
|
||||
if (!_iconImageView) {
|
||||
_iconImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"login_bind_phone_bg"]];
|
||||
}
|
||||
return _iconImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)titleLabel{
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] init];
|
||||
_titleLabel.text = YMLocalizedString(@"XPLoginBindPhoneResultViewController1");
|
||||
_titleLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
_titleLabel.font = [UIFont systemFontOfSize:14.f];
|
||||
_titleLabel.adjustsFontSizeToFitWidth = YES;
|
||||
_titleLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _titleLabel;
|
||||
}
|
||||
|
||||
|
||||
- (UILabel *)phoneLabel{
|
||||
if (!_phoneLabel) {
|
||||
_phoneLabel = [[UILabel alloc] init];
|
||||
_phoneLabel.textColor = [DJDKMIMOMColor mainTextColor];
|
||||
_phoneLabel.font = [UIFont boldSystemFontOfSize:18.f];
|
||||
_phoneLabel.adjustsFontSizeToFitWidth = YES;
|
||||
_phoneLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _phoneLabel;
|
||||
if (!_phoneLabel) {
|
||||
_phoneLabel = [[UILabel alloc] init];
|
||||
_phoneLabel.textAlignment = NSTextAlignmentCenter;
|
||||
_phoneLabel.numberOfLines = 0;
|
||||
}
|
||||
return _phoneLabel;
|
||||
}
|
||||
|
||||
- (UIButton *)changePhoneBtn {
|
||||
if (!_changePhoneBtn) {
|
||||
_changePhoneBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_changePhoneBtn setTitle:YMLocalizedString(@"XPLoginBindPhoneResultViewController2") forState:UIControlStateNormal];
|
||||
[_changePhoneBtn setTitleColor:[DJDKMIMOMColor confirmButtonTextColor] forState:UIControlStateNormal];
|
||||
[_changePhoneBtn.titleLabel setFont:[UIFont fontWithName:@"PingFang-SC-Medium" size:18]];
|
||||
[_changePhoneBtn setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor], [DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
|
||||
_changePhoneBtn.layer.masksToBounds = YES;
|
||||
_changePhoneBtn.layer.cornerRadius = 22.5;
|
||||
[_changePhoneBtn addTarget:self action:@selector(changePhoneBtnAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _changePhoneBtn;
|
||||
if (!_changePhoneBtn) {
|
||||
_changePhoneBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_changePhoneBtn setTitle:YMLocalizedString(@"XPLoginBindPhoneResultViewController2") forState:UIControlStateNormal];
|
||||
[_changePhoneBtn setTitleColor:[DJDKMIMOMColor confirmButtonTextColor] forState:UIControlStateNormal];
|
||||
[_changePhoneBtn.titleLabel setFont:kFontRegular(16)];
|
||||
[_changePhoneBtn setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor], [DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
|
||||
_changePhoneBtn.layer.masksToBounds = YES;
|
||||
_changePhoneBtn.layer.cornerRadius = kGetScaleWidth(23);
|
||||
[_changePhoneBtn addTarget:self action:@selector(changePhoneBtnAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _changePhoneBtn;
|
||||
}
|
||||
|
||||
|
||||
|
@@ -1,8 +1,8 @@
|
||||
//
|
||||
// YMLoginVerifBindPhoneViewController.h
|
||||
// YUMI
|
||||
// XPLoginVerifBindPhoneViewController.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by YUMI on 2021/9/18.
|
||||
// Created by 冯硕 on 2021/9/18.
|
||||
//
|
||||
|
||||
#import "MvpViewController.h"
|
||||
@@ -15,13 +15,14 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
- TTBindingPhoneNumTypeConfirm : 验证状态:验证已绑定的手机
|
||||
*/
|
||||
typedef NS_ENUM(NSUInteger, TTBindingPhoneNumType) {
|
||||
XPBindingPhoneNumTypeNormal = 0,
|
||||
XPBindingPhoneNumTypeEdit = 1,
|
||||
XPBindingPhoneNumTypeConfirm = 2,
|
||||
XPBindingPhoneNumTypeNormal = 0,
|
||||
XPBindingPhoneNumTypeEdit = 1,
|
||||
XPBindingPhoneNumTypeConfirm = 2,
|
||||
};
|
||||
@class UserInfoModel;
|
||||
@interface XPLoginVerifBindPhoneViewController : MvpViewController
|
||||
@property (nonatomic, assign) TTBindingPhoneNumType bindingPhoneNumType;
|
||||
|
||||
///用户信息
|
||||
@property (nonatomic, strong) UserInfoModel *userInfo;
|
||||
@end
|
||||
|
@@ -1,8 +1,8 @@
|
||||
//
|
||||
// YMLoginVerifBindPhoneViewController.m
|
||||
// YUMI
|
||||
// XPLoginVerifBindPhoneViewController.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by YUMI on 2021/9/18.
|
||||
// Created by 冯硕 on 2021/9/18.
|
||||
//
|
||||
|
||||
#import "XPLoginVerifBindPhoneViewController.h"
|
||||
@@ -10,9 +10,8 @@
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <ReactiveObjC/ReactiveObjC.h>
|
||||
///Tool
|
||||
#import "DJDKMIMOMColor.h"
|
||||
#import "YUMIConstant.h"
|
||||
#import "YUMIMacroUitls.h"
|
||||
|
||||
|
||||
#import "UIImage+Utils.h"
|
||||
#import "CountDownHelper.h"
|
||||
///Model
|
||||
@@ -25,409 +24,254 @@
|
||||
#import "XPMineSettingViewController.h"
|
||||
///View
|
||||
#import "XPLoginBindSuccessView.h"
|
||||
#import "LoginForgetEditView.h"
|
||||
#import "XPLoginAraeViewController.h"
|
||||
|
||||
@interface XPLoginVerifBindPhoneViewController ()<XPLoginVerifBindPhoneProtocol, CountDownHelperDelegate>
|
||||
@property (nonatomic, strong) UIView *containerView;
|
||||
@property (nonatomic, strong) UILabel *areaLabel;
|
||||
@property (nonatomic, strong) UIButton *countryBtn;
|
||||
@property (nonatomic, strong) UIView *areaLineView;
|
||||
@interface XPLoginVerifBindPhoneViewController ()<XPLoginAraeViewControllerDelegate,XPLoginVerifBindPhoneProtocol, CountDownHelperDelegate>
|
||||
|
||||
@property (nonatomic, strong) UIView *phoneLineView;
|
||||
@property (nonatomic, strong) UIView *authLineView;
|
||||
@property (nonatomic, strong) UILabel *areaCodeLabel;
|
||||
|
||||
@property (nonatomic, strong) UIButton *authCodeBtn;
|
||||
@property (nonatomic, strong) UITextField *phoneNumTextField;
|
||||
@property (nonatomic, strong) UITextField *authCodeTextField;
|
||||
|
||||
@property (nonatomic, strong) UIButton *confirmBtn; // 确认按钮
|
||||
|
||||
@property (nonatomic, strong) UILabel *tipsLabel; // 手机号丢失
|
||||
@property (nonatomic, assign) BOOL isResetPhone; // 重新绑定手机
|
||||
///手机号
|
||||
@property (nonatomic,strong) LoginForgetEditView *phoneView;
|
||||
///验证码
|
||||
@property (nonatomic,strong) LoginForgetEditView *codeView;
|
||||
///手机区号
|
||||
@property (nonatomic,copy)NSString *phoneAreaCode;
|
||||
// 确认按钮
|
||||
@property (nonatomic, strong) UIButton *confirmBtn;
|
||||
// 重新绑定手机
|
||||
@property (nonatomic, assign) BOOL isResetPhone;
|
||||
@end
|
||||
|
||||
@implementation XPLoginVerifBindPhoneViewController
|
||||
|
||||
- (void)dealloc {
|
||||
[[CountDownHelper shareHelper] stopCountDown];
|
||||
[[CountDownHelper shareHelper] stopCountDown];
|
||||
}
|
||||
|
||||
- (XPLoginVerifBindPhonePresenter *)createPresenter {
|
||||
return [[XPLoginVerifBindPhonePresenter alloc] init];
|
||||
return [[XPLoginVerifBindPhonePresenter alloc] init];
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
[self setConfigs];
|
||||
[self setEvents];
|
||||
self.phoneAreaCode = @"852";
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
[self setConfigs];
|
||||
[self setEvents];
|
||||
}
|
||||
|
||||
- (void)viewDidDisappear:(BOOL)animated {
|
||||
[super viewDidDisappear:animated];
|
||||
[[CountDownHelper shareHelper] stopCountDown];
|
||||
[super viewDidDisappear:animated];
|
||||
[[CountDownHelper shareHelper] stopCountDown];
|
||||
self.codeView.authCodeButton.enabled= YES;
|
||||
[self.codeView.authCodeButton setTitle:YMLocalizedString(@"XPLoginVerifBindPhoneViewController11") forState:UIControlStateNormal];
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
[CountDownHelper shareHelper].delegate = self;
|
||||
[self.view addSubview:self.containerView];
|
||||
[self.containerView addSubview:self.areaLabel];
|
||||
[self.containerView addSubview:self.countryBtn];
|
||||
|
||||
[self.containerView addSubview:self.areaLineView];
|
||||
[self.containerView addSubview:self.areaCodeLabel];
|
||||
[self.containerView addSubview:self.phoneNumTextField];
|
||||
[self.containerView addSubview:self.phoneLineView];
|
||||
|
||||
[self.containerView addSubview:self.authCodeBtn];
|
||||
[self.containerView addSubview:self.authCodeTextField];
|
||||
[self.containerView addSubview:self.authLineView];
|
||||
|
||||
[self.containerView addSubview:self.confirmBtn];
|
||||
[self.containerView addSubview:self.tipsLabel];
|
||||
[CountDownHelper shareHelper].delegate = self;
|
||||
self.view.backgroundColor = [UIColor whiteColor];
|
||||
[self.view addSubview:self.codeView];
|
||||
[self.view addSubview:self.phoneView];
|
||||
[self.view addSubview:self.confirmBtn];
|
||||
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.containerView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(0);
|
||||
make.left.right.bottom.mas_equalTo(0);
|
||||
}];
|
||||
|
||||
[self.areaLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(32);
|
||||
make.top.mas_equalTo(20);
|
||||
}];
|
||||
|
||||
[self.countryBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.right.mas_equalTo(-32);
|
||||
make.centerY.mas_equalTo(self.areaLabel);
|
||||
}];
|
||||
|
||||
[self.areaLineView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.areaLabel.mas_bottom).offset(18);
|
||||
make.left.right.mas_equalTo(0).inset(32);
|
||||
make.height.mas_equalTo(1);
|
||||
}];
|
||||
|
||||
[self.areaCodeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.areaLineView.mas_bottom).offset(18);
|
||||
make.left.mas_equalTo(self.areaLabel);
|
||||
}];
|
||||
|
||||
[self.phoneNumTextField mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(80);
|
||||
make.centerY.mas_equalTo(self.areaCodeLabel);
|
||||
make.right.mas_equalTo(self.authCodeBtn.mas_left).offset(-20);
|
||||
}];
|
||||
|
||||
[self.authCodeBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.right.mas_equalTo(-32);
|
||||
make.centerY.mas_equalTo(self.areaCodeLabel);
|
||||
}];
|
||||
|
||||
[self.phoneLineView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.height.mas_equalTo(self.areaLineView);
|
||||
make.top.mas_equalTo(self.areaCodeLabel.mas_bottom).offset(18);
|
||||
}];
|
||||
|
||||
[self.authCodeTextField mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.mas_equalTo(0).inset(32);
|
||||
make.height.mas_equalTo(48);
|
||||
make.top.mas_equalTo(self.phoneLineView.mas_bottom);
|
||||
}];
|
||||
|
||||
[self.authLineView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.left.right.mas_equalTo(self.areaLineView);
|
||||
make.top.mas_equalTo(self.authCodeTextField.mas_bottom);
|
||||
}];
|
||||
|
||||
[self.confirmBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.mas_equalTo(0).inset(32);
|
||||
make.top.mas_equalTo(self.authLineView.mas_bottom).offset(70);
|
||||
make.height.mas_equalTo(45);
|
||||
}];
|
||||
|
||||
[self.tipsLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.confirmBtn.mas_bottom).offset(36);
|
||||
make.centerX.mas_equalTo(0);
|
||||
}];
|
||||
[self.phoneView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(kGetScaleWidth(30));
|
||||
make.leading.trailing.equalTo(self.view).inset(kGetScaleWidth(15));
|
||||
make.height.mas_equalTo(kGetScaleWidth(48));
|
||||
}];
|
||||
[self.codeView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.height.equalTo(self.phoneView);
|
||||
make.top.equalTo(self.phoneView.mas_bottom).mas_offset(kGetScaleWidth(25));
|
||||
}];
|
||||
[self.confirmBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.equalTo(self.view).inset(kGetScaleWidth(15));
|
||||
make.height.mas_equalTo(kGetScaleWidth(46));
|
||||
make.top.mas_equalTo(kGetScaleWidth(275));
|
||||
}];
|
||||
}
|
||||
#pragma mark -配置
|
||||
- (void)setConfigs {
|
||||
switch (self.bindingPhoneNumType) {
|
||||
case XPBindingPhoneNumTypeEdit:{
|
||||
self.navigationItem.title = YMLocalizedString(@"XPLoginVerifBindPhoneViewController0");
|
||||
}
|
||||
break;
|
||||
case XPBindingPhoneNumTypeNormal:{
|
||||
self.navigationItem.title = YMLocalizedString(@"XPLoginVerifBindPhoneViewController1");
|
||||
}
|
||||
break;
|
||||
case XPBindingPhoneNumTypeConfirm:{
|
||||
self.tipsLabel.hidden = NO;
|
||||
self.navigationItem.title = YMLocalizedString(@"XPLoginVerifBindPhoneViewController2");
|
||||
[self.confirmBtn setTitle:YMLocalizedString(@"XPLoginVerifBindPhoneViewController3") forState:UIControlStateNormal];
|
||||
if (self.userInfo.isBindPhone) {
|
||||
self.phoneNumTextField.enabled = NO;
|
||||
self.phoneNumTextField.text = self.userInfo.phone;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
RAC(self.confirmBtn,enabled) = [RACSignal combineLatest:@[self.phoneNumTextField.rac_textSignal,self.authCodeTextField.rac_textSignal] reduce:^(NSString *phone,NSString *code){
|
||||
return @(phone.length == 11 && code.length == 5);
|
||||
}];
|
||||
|
||||
switch (self.bindingPhoneNumType) {
|
||||
case XPBindingPhoneNumTypeEdit:{
|
||||
self.navigationItem.title = YMLocalizedString(@"XPLoginVerifBindPhoneViewController0");
|
||||
}
|
||||
break;
|
||||
case XPBindingPhoneNumTypeNormal:{
|
||||
self.navigationItem.title = YMLocalizedString(@"XPLoginVerifBindPhoneViewController1");
|
||||
}
|
||||
break;
|
||||
case XPBindingPhoneNumTypeConfirm:{
|
||||
|
||||
self.navigationItem.title = YMLocalizedString(@"XPLoginVerifBindPhoneViewController2");
|
||||
[self.confirmBtn setTitle:YMLocalizedString(@"XPLoginVerifBindPhoneViewController3") forState:UIControlStateNormal];
|
||||
if (self.userInfo.isBindPhone) {
|
||||
// self.phoneNumTextField.enabled = NO;
|
||||
// self.phoneNumTextField.text = self.userInfo.phone;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
RAC(self.confirmBtn,enabled) = [RACSignal combineLatest:@[self.phoneView.textField.rac_textSignal,self.codeView.textField.rac_textSignal] reduce:^(NSString *phone,NSString *code){
|
||||
return @(phone.length > 0 && code.length == 5);
|
||||
}];
|
||||
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - XPChooseAreaCodeVCDelegate
|
||||
-(void)chooseAreaCodeSuccess:(NSString *)code{
|
||||
self.phoneAreaCode = code;
|
||||
self.phoneView.areaCode = [NSString stringWithFormat:@"+%@",code];
|
||||
}
|
||||
-(void)chooseAreaCodeAction{
|
||||
XPLoginAraeViewController *codeVC = [XPLoginAraeViewController new];
|
||||
codeVC.delegate = self;
|
||||
[self.navigationController pushViewController:codeVC animated:YES];
|
||||
}
|
||||
#pragma mark 交互事件
|
||||
- (void)setEvents {
|
||||
@weakify(self)
|
||||
// 获取验证码点击事件
|
||||
[[[self.authCodeBtn rac_signalForControlEvents:UIControlEventTouchUpInside] filter:^BOOL(__kindof UIControl * _Nullable value) {
|
||||
// 获取验证码
|
||||
if (self.phoneNumTextField.text.length == 0) {
|
||||
[self showErrorToast:YMLocalizedString(@"XPLoginVerifBindPhoneViewController4")];
|
||||
return NO;
|
||||
}else if (self.phoneNumTextField.text.length < 11) {
|
||||
[self showErrorToast:YMLocalizedString(@"XPLoginVerifBindPhoneViewController5")];
|
||||
return NO;
|
||||
}else {
|
||||
return YES;
|
||||
}
|
||||
}] subscribeNext:^(id _Nullable x) {
|
||||
@strongify(self);
|
||||
[self.presenter phoneSmsCode:self.phoneNumTextField.text type:self.bindingPhoneNumType == XPBindingPhoneNumTypeConfirm ? GetSmsType_Unbind_Phone : GetSmsType_Bind_Phone phoneAreaCode:@""];
|
||||
}];
|
||||
|
||||
|
||||
// 绑定和验证
|
||||
[[[self.confirmBtn rac_signalForControlEvents:UIControlEventTouchUpInside] filter:^BOOL(__kindof UIControl * _Nullable value) {
|
||||
@strongify(self)
|
||||
// 确认绑定手机号
|
||||
if (self.phoneNumTextField.text.length == 0) {
|
||||
[self showErrorToast:YMLocalizedString(@"XPLoginVerifBindPhoneViewController6")];
|
||||
return NO;
|
||||
}else if (self.authCodeTextField.text.length == 0) {
|
||||
[self showErrorToast:YMLocalizedString(@"XPLoginVerifBindPhoneViewController7")];
|
||||
return NO;
|
||||
}else {
|
||||
return YES;
|
||||
}
|
||||
}] subscribeNext:^(id _Nullable x) {
|
||||
@strongify(self)
|
||||
if (self.bindingPhoneNumType == XPBindingPhoneNumTypeConfirm) {
|
||||
[self.presenter checkMoblieCodeWithMoblie:self.phoneNumTextField.text code:self.authCodeTextField.text];
|
||||
} else {
|
||||
[self.presenter bindkMoblieCodeWithMoblie:self.phoneNumTextField.text code:self.authCodeTextField.text];
|
||||
}
|
||||
} error:^(NSError * _Nullable error) {
|
||||
|
||||
}];
|
||||
@weakify(self)
|
||||
// 获取验证码点击事件
|
||||
[[[self.codeView.authCodeButton rac_signalForControlEvents:UIControlEventTouchUpInside] filter:^BOOL(__kindof UIControl * _Nullable value) {
|
||||
// 获取验证码
|
||||
if (self.phoneView.textField.text.length == 0) {
|
||||
[self showErrorToast:YMLocalizedString(@"XPLoginVerifBindPhoneViewController4")];
|
||||
return NO;
|
||||
}
|
||||
return YES;
|
||||
}] subscribeNext:^(id _Nullable x) {
|
||||
@strongify(self);
|
||||
[self.presenter phoneSmsCode:[NSString stringWithFormat:@"%@%@",self.phoneAreaCode,self.phoneView.textField.text] type:self.bindingPhoneNumType == XPBindingPhoneNumTypeConfirm ? GetSmsType_Unbind_Phone : GetSmsType_Bind_Phone phoneAreaCode:self.phoneAreaCode];
|
||||
}];
|
||||
|
||||
// // 绑定和验证
|
||||
[[[self.confirmBtn rac_signalForControlEvents:UIControlEventTouchUpInside] filter:^BOOL(__kindof UIControl * _Nullable value) {
|
||||
@strongify(self)
|
||||
// 确认绑定手机号
|
||||
if (self.phoneView.textField.text.length == 0) {
|
||||
[self showErrorToast:YMLocalizedString(@"XPLoginVerifBindPhoneViewController6")];
|
||||
return NO;
|
||||
}else if (self.codeView.textField.text.length == 0) {
|
||||
[self showErrorToast:YMLocalizedString(@"XPLoginVerifBindPhoneViewController7")];
|
||||
return NO;
|
||||
}else {
|
||||
return YES;
|
||||
}
|
||||
}] subscribeNext:^(id _Nullable x) {
|
||||
@strongify(self)
|
||||
[self.view endEditing:YES];
|
||||
if (self.bindingPhoneNumType == XPBindingPhoneNumTypeConfirm) {
|
||||
[self.presenter checkMoblieCodeWithMoblie:[NSString stringWithFormat:@"%@%@",self.phoneAreaCode,self.phoneView.textField.text] code:self.codeView.textField.text phoneAreaCode:self.phoneAreaCode];
|
||||
} else {
|
||||
[self.presenter bindkMoblieCodeWithMoblie:[NSString stringWithFormat:@"%@%@",self.phoneAreaCode,self.phoneView.textField.text] code:self.codeView.textField.text phoneAreaCode:self.phoneAreaCode];
|
||||
}
|
||||
} error:^(NSError * _Nullable error) {
|
||||
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - XPLoginVerifBindPhoneProtocol
|
||||
- (void)phoneSmsCodeSuccess {
|
||||
self.authCodeBtn.enabled = NO;
|
||||
[self showSuccessToast:YMLocalizedString(@"XPLoginVerifBindPhoneViewController8")];
|
||||
[[CountDownHelper shareHelper] openCountdownWithTime:60];
|
||||
self.codeView.authCodeButton.enabled = NO;
|
||||
[self showSuccessToast:YMLocalizedString(@"XPLoginVerifBindPhoneViewController8")];
|
||||
[[CountDownHelper shareHelper] openCountdownWithTime:60];
|
||||
}
|
||||
|
||||
- (void)checkMoblieCodeWithMoblieSuccess {
|
||||
[self showSuccessToast:YMLocalizedString(@"XPLoginVerifBindPhoneViewController9")];
|
||||
[[CountDownHelper shareHelper] stopCountDown];
|
||||
XPLoginVerifBindPhoneViewController *vc = [[XPLoginVerifBindPhoneViewController alloc] init];
|
||||
vc.bindingPhoneNumType = XPBindingPhoneNumTypeEdit;
|
||||
vc.userInfo = self.userInfo;
|
||||
[self.navigationController pushViewController:vc animated:YES];
|
||||
[self showSuccessToast:YMLocalizedString(@"XPLoginVerifBindPhoneViewController9")];
|
||||
[[CountDownHelper shareHelper] stopCountDown];
|
||||
XPLoginVerifBindPhoneViewController *vc = [[XPLoginVerifBindPhoneViewController alloc] init];
|
||||
vc.bindingPhoneNumType = XPBindingPhoneNumTypeEdit;
|
||||
vc.userInfo = self.userInfo;
|
||||
[self.navigationController pushViewController:vc animated:YES];
|
||||
}
|
||||
|
||||
- (void)bindMoblieCodeWithMoblieSuccess {
|
||||
[[CountDownHelper shareHelper] stopCountDown];
|
||||
// 修改绑定信息
|
||||
if (self.bindingPhoneNumType == XPBindingPhoneNumTypeEdit) {
|
||||
@weakify(self);
|
||||
[XPLoginBindSuccessView showBindSuccessViewWithHandler:^{
|
||||
@strongify(self);
|
||||
// 返回设置页面
|
||||
__block __kindof UIViewController *vc;
|
||||
[self.navigationController.childViewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||
if ([obj isKindOfClass:[XPMineSettingViewController class]]) {
|
||||
vc = obj; // 导航控制器中有设置VC
|
||||
}
|
||||
}];
|
||||
|
||||
if ([self.navigationController.childViewControllers containsObject:vc]) {
|
||||
[self.navigationController popToViewController:vc animated:YES];
|
||||
} else {
|
||||
[self.navigationController popViewControllerAnimated:YES];
|
||||
}
|
||||
}];
|
||||
} else if (self.bindingPhoneNumType == XPBindingPhoneNumTypeNormal) {
|
||||
@weakify(self);
|
||||
[XPLoginBindSuccessView showBindSuccessViewWithHandler:^{
|
||||
@strongify(self);
|
||||
[self.navigationController popViewControllerAnimated:YES];
|
||||
}];
|
||||
}
|
||||
self.confirmBtn.enabled = YES; // 打开交互
|
||||
|
||||
[[CountDownHelper shareHelper] stopCountDown];
|
||||
// 修改绑定信息
|
||||
if (self.bindingPhoneNumType == XPBindingPhoneNumTypeEdit) {
|
||||
@weakify(self);
|
||||
[XPLoginBindSuccessView showBindSuccessViewWithHandler:^{
|
||||
@strongify(self);
|
||||
// 返回设置页面
|
||||
__block __kindof UIViewController *vc;
|
||||
[self.navigationController.childViewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||
if ([obj isKindOfClass:[XPMineSettingViewController class]]) {
|
||||
vc = obj; // 导航控制器中有设置VC
|
||||
}
|
||||
}];
|
||||
|
||||
if ([self.navigationController.childViewControllers containsObject:vc]) {
|
||||
[self.navigationController popToViewController:vc animated:YES];
|
||||
} else {
|
||||
[self.navigationController popViewControllerAnimated:YES];
|
||||
}
|
||||
}];
|
||||
} else if (self.bindingPhoneNumType == XPBindingPhoneNumTypeNormal) {
|
||||
@weakify(self);
|
||||
[XPLoginBindSuccessView showBindSuccessViewWithHandler:^{
|
||||
@strongify(self);
|
||||
[self.navigationController popViewControllerAnimated:YES];
|
||||
}];
|
||||
}
|
||||
self.confirmBtn.enabled = YES; // 打开交互
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - CountDownHelperDelegate
|
||||
///倒计时进行中
|
||||
- (void)onCountdownOpen:(int)time {
|
||||
[self.authCodeBtn setTitle:[NSString stringWithFormat:YMLocalizedString(@"XPLoginVerifBindPhoneViewController10"), time] forState:UIControlStateDisabled];
|
||||
[self.codeView.authCodeButton setTitle:[NSString stringWithFormat:YMLocalizedString(@"XPLoginVerifBindPhoneViewController10"), time] forState:UIControlStateDisabled];
|
||||
}
|
||||
///倒计时结束
|
||||
- (void)onCountdownFinish {
|
||||
self.authCodeBtn.enabled= YES;
|
||||
[self.authCodeBtn setTitle:YMLocalizedString(@"XPLoginVerifBindPhoneViewController11") forState:UIControlStateNormal];
|
||||
self.codeView.authCodeButton.enabled= YES;
|
||||
[self.codeView.authCodeButton setTitle:YMLocalizedString(@"XPLoginVerifBindPhoneViewController11") forState:UIControlStateNormal];
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (UIView *)containerView{
|
||||
if (!_containerView) {
|
||||
_containerView = [[UIView alloc] init];
|
||||
_containerView.backgroundColor = [DJDKMIMOMColor appBackgroundColor];
|
||||
}
|
||||
return _containerView;
|
||||
}
|
||||
|
||||
- (UILabel *)areaLabel{
|
||||
if (!_areaLabel) {
|
||||
_areaLabel = [[UILabel alloc] init];
|
||||
_areaLabel.text = YMLocalizedString(@"XPLoginVerifBindPhoneViewController12");
|
||||
_areaLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
_areaLabel.font = [UIFont systemFontOfSize:14.f];
|
||||
_areaLabel.adjustsFontSizeToFitWidth = YES;
|
||||
}
|
||||
return _areaLabel;
|
||||
}
|
||||
|
||||
- (UILabel *)areaCodeLabel{
|
||||
if (!_areaCodeLabel) {
|
||||
_areaCodeLabel = [[UILabel alloc] init];
|
||||
_areaCodeLabel.text = @"+852";
|
||||
_areaCodeLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
_areaCodeLabel.font = [UIFont systemFontOfSize:14.f];
|
||||
_areaCodeLabel.adjustsFontSizeToFitWidth = YES;
|
||||
}
|
||||
return _areaCodeLabel;
|
||||
}
|
||||
|
||||
- (UIButton *)countryBtn {
|
||||
if (!_countryBtn) {
|
||||
_countryBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_countryBtn setTitle:YMLocalizedString(@"XPLoginVerifBindPhoneViewController13") forState:UIControlStateNormal];
|
||||
[_countryBtn setImage:[UIImage imageNamed:@"mine_item_arrow"] forState:UIControlStateNormal];
|
||||
_countryBtn.transform = CGAffineTransformMakeScale(-1.0, 1.0);
|
||||
_countryBtn.titleLabel.transform = CGAffineTransformMakeScale(-1.0, 1.0);
|
||||
_countryBtn.imageView.transform = CGAffineTransformMakeScale(-1.0, 1.0);
|
||||
_countryBtn.imageEdgeInsets = UIEdgeInsetsMake(0, -10, 0, 0);
|
||||
[_countryBtn setTitleColor:[DJDKMIMOMColor secondTextColor] forState:UIControlStateNormal];
|
||||
[_countryBtn.titleLabel setFont:[UIFont systemFontOfSize:14.f]];
|
||||
}
|
||||
return _countryBtn;
|
||||
}
|
||||
|
||||
- (UIButton *)confirmBtn {
|
||||
if (!_confirmBtn) {
|
||||
_confirmBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_confirmBtn setTitle:YMLocalizedString(@"XPLoginVerifBindPhoneViewController14") forState:UIControlStateNormal];
|
||||
[_confirmBtn setTitleColor:[DJDKMIMOMColor confirmButtonTextColor] forState:UIControlStateNormal];
|
||||
[_confirmBtn setTitleColor:[DJDKMIMOMColor disableButtonTextColor] forState:UIControlStateDisabled];
|
||||
[_confirmBtn.titleLabel setFont:[UIFont fontWithName:@"PingFang-SC-Medium" size:18]];
|
||||
_confirmBtn.layer.cornerRadius = 22.5f;
|
||||
_confirmBtn.layer.masksToBounds = YES;
|
||||
_confirmBtn.enabled = NO;
|
||||
[_confirmBtn setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor], [DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
|
||||
[_confirmBtn setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor disableButtonColor], [DJDKMIMOMColor disableButtonColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateDisabled];
|
||||
}
|
||||
return _confirmBtn;
|
||||
if (!_confirmBtn) {
|
||||
_confirmBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_confirmBtn setTitle:YMLocalizedString(@"XPLoginVerifBindPhoneViewController14") forState:UIControlStateNormal];
|
||||
[_confirmBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||||
[_confirmBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateDisabled];
|
||||
[_confirmBtn.titleLabel setFont:kFontRegular(16)];
|
||||
_confirmBtn.layer.cornerRadius = kGetScaleWidth(23);
|
||||
_confirmBtn.layer.masksToBounds = YES;
|
||||
_confirmBtn.enabled = NO;
|
||||
[_confirmBtn setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor], [DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
|
||||
|
||||
}
|
||||
return _confirmBtn;
|
||||
}
|
||||
|
||||
- (UIButton *)authCodeBtn {
|
||||
if (!_authCodeBtn) {
|
||||
_authCodeBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_authCodeBtn setTitle:YMLocalizedString(@"XPLoginVerifBindPhoneViewController15") forState:UIControlStateNormal];
|
||||
[_authCodeBtn setTitleColor:[DJDKMIMOMColor appMainColor] forState:UIControlStateNormal];
|
||||
[_authCodeBtn setTitleColor:[DJDKMIMOMColor secondTextColor] forState:UIControlStateDisabled];
|
||||
[_authCodeBtn.titleLabel setFont:[UIFont systemFontOfSize:12.f]];
|
||||
}
|
||||
return _authCodeBtn;
|
||||
- (LoginForgetEditView *)phoneView {
|
||||
if (!_phoneView) {
|
||||
_phoneView = [[LoginForgetEditView alloc] init];
|
||||
// _phoneView.placeholder = YMLocalizedString(@"LoginForgetPasswordViewController7");
|
||||
_phoneView.type = LoginForgetEditViewTypeNormal;
|
||||
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(chooseAreaCodeAction)];
|
||||
[_phoneView.codeView addGestureRecognizer:tap];
|
||||
}
|
||||
return _phoneView;
|
||||
}
|
||||
|
||||
- (UITextField *)phoneNumTextField {
|
||||
if (!_phoneNumTextField) {
|
||||
_phoneNumTextField = [[UITextField alloc] init];
|
||||
_phoneNumTextField.textColor = [DJDKMIMOMColor mainTextColor];
|
||||
_phoneNumTextField.font = [UIFont systemFontOfSize:14.f];
|
||||
_phoneNumTextField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:YMLocalizedString(@"XPLoginVerifBindPhoneViewController16")attributes:@{NSForegroundColorAttributeName: [DJDKMIMOMColor secondTextColor]}];
|
||||
_phoneNumTextField.clearButtonMode = UITextFieldViewModeWhileEditing;
|
||||
_phoneNumTextField.borderStyle = UITextBorderStyleNone;
|
||||
_phoneNumTextField.keyboardType = UIKeyboardTypeNumberPad;
|
||||
_phoneNumTextField.tintColor = [DJDKMIMOMColor mainTextColor];
|
||||
}
|
||||
return _phoneNumTextField;
|
||||
}
|
||||
|
||||
|
||||
- (UITextField *)authCodeTextField {
|
||||
if (!_authCodeTextField) {
|
||||
_authCodeTextField = [[UITextField alloc] init];
|
||||
_authCodeTextField.textColor = [DJDKMIMOMColor mainTextColor];
|
||||
_authCodeTextField.font = [UIFont systemFontOfSize:14.f];
|
||||
_authCodeTextField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:YMLocalizedString(@"XPLoginVerifBindPhoneViewController17")attributes:@{NSForegroundColorAttributeName: [DJDKMIMOMColor secondTextColor]}];
|
||||
_authCodeTextField.clearButtonMode = UITextFieldViewModeWhileEditing;
|
||||
_authCodeTextField.borderStyle = UITextBorderStyleNone;
|
||||
_authCodeTextField.keyboardType = UIKeyboardTypeNumberPad;
|
||||
_authCodeTextField.tintColor = [DJDKMIMOMColor mainTextColor];
|
||||
}
|
||||
return _authCodeTextField;
|
||||
}
|
||||
|
||||
- (UIView *)areaLineView {
|
||||
if (!_areaLineView) {
|
||||
_areaLineView = [[UIView alloc] init];
|
||||
_areaLineView.backgroundColor = [DJDKMIMOMColor dividerColor];
|
||||
}
|
||||
return _areaLineView;
|
||||
}
|
||||
|
||||
- (UIView *)phoneLineView {
|
||||
if (!_phoneLineView) {
|
||||
_phoneLineView = [[UIView alloc] init];
|
||||
_phoneLineView.backgroundColor = [DJDKMIMOMColor dividerColor];
|
||||
}
|
||||
return _phoneLineView;
|
||||
}
|
||||
|
||||
- (UIView *)authLineView {
|
||||
if (!_authLineView) {
|
||||
_authLineView = [[UIView alloc] init];
|
||||
_authLineView.backgroundColor = [DJDKMIMOMColor dividerColor];
|
||||
}
|
||||
return _authLineView;
|
||||
}
|
||||
|
||||
- (UILabel *)tipsLabel{
|
||||
if (!_tipsLabel) {
|
||||
_tipsLabel = [[UILabel alloc] init];
|
||||
_tipsLabel.text = [NSString stringWithFormat:@"如果您的手机号已丢失\n请咨询客服,ID:%@", @"88001"];
|
||||
_tipsLabel.textColor = [DJDKMIMOMColor textThirdColor];
|
||||
_tipsLabel.font = [UIFont systemFontOfSize:14.f];
|
||||
_tipsLabel.adjustsFontSizeToFitWidth = YES;
|
||||
_tipsLabel.numberOfLines = 0;
|
||||
_tipsLabel.hidden = YES;
|
||||
}
|
||||
return _tipsLabel;
|
||||
- (LoginForgetEditView *)codeView {
|
||||
if (!_codeView) {
|
||||
_codeView = [[LoginForgetEditView alloc] init];
|
||||
_codeView.placeholder = YMLocalizedString(@"XPLoginVerifBindPhoneViewController17");
|
||||
_codeView.type = LoginForgetEditViewTypeSms;
|
||||
}
|
||||
return _codeView;
|
||||
}
|
||||
|
||||
@end
|
||||
|
@@ -20,7 +20,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
/// 校验手机验证码接口
|
||||
/// @param moblieNum 手机号码
|
||||
/// @param code 验证码
|
||||
- (void)checkMoblieCodeWithMoblie:(NSString *)moblieNum code:(NSString *)code;
|
||||
- (void)checkMoblieCodeWithMoblie:(NSString *)moblieNum code:(NSString *)code phoneAreaCode:(NSString *)phoneAreaCode;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@@ -35,13 +35,13 @@
|
||||
/// 校验手机验证码接口
|
||||
/// @param moblieNum 手机号码
|
||||
/// @param code 验证码
|
||||
- (void)checkMoblieCodeWithMoblie:(NSString *)moblieNum code:(NSString *)code {
|
||||
- (void)checkMoblieCodeWithMoblie:(NSString *)moblieNum code:(NSString *)code phoneAreaCode:(NSString *)phoneAreaCode{
|
||||
NSString * uid = [[AccountInfoStorage instance] getUid];
|
||||
NSString * ticket = [[AccountInfoStorage instance] getTicket];
|
||||
NSString * desPhone = [DESEncrypt encryptUseDES:moblieNum key:KeyWithType(KeyType_PasswordEncode)];
|
||||
[Api checkMoblieCode:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||
[[self getView] checkMoblieCodeWithMoblieSuccess];
|
||||
}] mobile:desPhone code:code uid:uid ticket:ticket];
|
||||
}] mobile:desPhone code:code uid:uid ticket:ticket phoneAreaCode:phoneAreaCode];
|
||||
}
|
||||
|
||||
@end
|
||||
|
@@ -29,7 +29,7 @@
|
||||
///金币
|
||||
@property (nonatomic,strong) XPIncomeRecordView *goldView;
|
||||
///model
|
||||
@property (nonatomic,strong) XPIncomeRecordModel *recordModel;
|
||||
@property (nonatomic,strong) XPIncomeRecordModel *recordModel;
|
||||
@end
|
||||
|
||||
@implementation XPIncomeRecordVC
|
||||
@@ -63,7 +63,7 @@
|
||||
[self.goldView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.equalTo(self.diamondView);
|
||||
make.top.equalTo(self.diamondView.mas_bottom).mas_offset(kGetScaleWidth(20));
|
||||
make.height.mas_equalTo(!self.goldView.isClanPresident ? kGetScaleWidth( 144) : kGetScaleWidth(90));
|
||||
make.height.mas_equalTo( kGetScaleWidth(144));
|
||||
}];
|
||||
}
|
||||
#pragma mark - XPExchangeDiamondsVCDelegate
|
||||
@@ -92,15 +92,15 @@
|
||||
self.goldView.hidden = self.recordModel.roomType == 4;
|
||||
self.diamondView.number = @(model.diamonds).stringValue;
|
||||
self.goldView.number = [NSString stringWithFormat:@"%.2f",model.golds];
|
||||
NSString * myUid = [AccountInfoStorage instance].getUid;
|
||||
if(![self.clanInfo.clan.elderUid isEqualToString:myUid]){
|
||||
self.goldView.isClanPresident = !self.recordModel.hasGoldExchangeAuth;
|
||||
if(self.recordModel.hasGoldExchangeAuth == YES){
|
||||
[self.goldView mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(kGetScaleWidth( 144));
|
||||
}];
|
||||
}
|
||||
}
|
||||
// NSString * myUid = [AccountInfoStorage instance].getUid;
|
||||
// if(![self.clanInfo.clan.elderUid isEqualToString:myUid]){
|
||||
// self.goldView.isClanPresident = !self.recordModel.hasGoldExchangeAuth;
|
||||
// if(self.recordModel.hasGoldExchangeAuth == YES){
|
||||
// [self.goldView mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||
// make.height.mas_equalTo(kGetScaleWidth( 144));
|
||||
// }];
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
@@ -117,7 +117,7 @@
|
||||
}
|
||||
case ClickType_Diamond_Pay:
|
||||
{
|
||||
XPIAPRechargeViewController * webVC =[[XPIAPRechargeViewController alloc] init];
|
||||
XPIAPRechargeViewController * webVC =[[XPIAPRechargeViewController alloc] init];
|
||||
[self.navigationController pushViewController:webVC animated:YES];
|
||||
break;
|
||||
}
|
||||
@@ -131,12 +131,21 @@
|
||||
}
|
||||
[self showLoading];
|
||||
[self.presenter getExchangeDiamondInformation];
|
||||
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
|
||||
NSString * myUid = [AccountInfoStorage instance].getUid;
|
||||
if(![self.clanInfo.clan.elderUid isEqualToString:myUid]){
|
||||
XPWebViewController * webVC =[[XPWebViewController alloc] init];
|
||||
webVC.url = URLWithType(kGoldEarningsRecord);
|
||||
[self.navigationController pushViewController:webVC animated:YES];
|
||||
return;
|
||||
|
||||
}
|
||||
XPIncomeRecordGoldDetailsVC *goldDetailVC = [XPIncomeRecordGoldDetailsVC new];
|
||||
[self.navigationController pushViewController:goldDetailVC animated:YES];
|
||||
break;
|
||||
|
@@ -90,8 +90,8 @@
|
||||
}
|
||||
-(void)setIsClanPresident:(BOOL)isClanPresident{
|
||||
_isClanPresident = isClanPresident;
|
||||
_exchangeBtn.hidden = _isClanPresident;
|
||||
_detailView.hidden = !_isClanPresident;
|
||||
// _exchangeBtn.hidden = _isClanPresident;
|
||||
// _detailView.hidden = !_isClanPresident;
|
||||
}
|
||||
#pragma mark - btnClick
|
||||
-(void)clickDetailViewAction{
|
||||
|
@@ -1,8 +1,8 @@
|
||||
//
|
||||
// YMMineLoginPasswordViewController.m
|
||||
// YUMI
|
||||
// XPMineLoginPasswordViewController.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by YUMI on 2022/4/25.
|
||||
// Created by 冯硕 on 2022/4/25.
|
||||
//
|
||||
|
||||
#import "XPMineLoginPasswordViewController.h"
|
||||
@@ -10,7 +10,7 @@
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <ReactiveObjC/ReactiveObjC.h>
|
||||
///Tool
|
||||
#import "DJDKMIMOMColor.h"
|
||||
|
||||
#import "UIButton+EnlargeTouchArea.h"
|
||||
#import "UIImage+Utils.h"
|
||||
///Model
|
||||
@@ -22,6 +22,7 @@
|
||||
#import "XPMineLoginPasswordProtocol.h"
|
||||
///VC
|
||||
#import "XPMineSettingViewController.h"
|
||||
#import "LoginForgetPasswordViewController.h"
|
||||
#import "XPMineResetLoginPwdViewController.h"
|
||||
|
||||
@interface XPMineLoginPasswordViewController ()<XPMineLoginPasswordProtocol>
|
||||
@@ -50,194 +51,200 @@
|
||||
@implementation XPMineLoginPasswordViewController
|
||||
|
||||
- (XPMineLoginPasswordPresenter *)createPresenter {
|
||||
return [[XPMineLoginPasswordPresenter alloc] init];
|
||||
return [[XPMineLoginPasswordPresenter alloc] init];
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
[super viewDidLoad];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
[self.view addSubview:self.stackView];
|
||||
[self.view addSubview:self.limitLabel];
|
||||
[self.view addSubview:self.forgetButton];
|
||||
[self.view addSubview:self.submitButton];
|
||||
[self.stackView addArrangedSubview:self.currentPwdView];
|
||||
[self.stackView addArrangedSubview:self.newsPwdView];
|
||||
[self.stackView addArrangedSubview:self.checkPwdView];
|
||||
self.view.backgroundColor = [UIColor whiteColor];
|
||||
[self.view addSubview:self.stackView];
|
||||
[self.view addSubview:self.limitLabel];
|
||||
[self.view addSubview:self.forgetButton];
|
||||
[self.view addSubview:self.submitButton];
|
||||
[self.stackView addArrangedSubview:self.currentPwdView];
|
||||
[self.stackView addArrangedSubview:self.newsPwdView];
|
||||
[self.stackView addArrangedSubview:self.checkPwdView];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.top.mas_equalTo(self.view);
|
||||
}];
|
||||
|
||||
[self.limitLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.view).offset(15);
|
||||
make.top.mas_equalTo(self.stackView.mas_bottom).offset(10);
|
||||
}];
|
||||
|
||||
[self.forgetButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.right.mas_equalTo(self.view).offset(-15);
|
||||
make.top.mas_equalTo(self.submitButton.mas_bottom).offset(15);
|
||||
}];
|
||||
[self.submitButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.limitLabel.mas_bottom).offset(20);
|
||||
make.right.mas_equalTo(self.view).offset(-32);
|
||||
make.left.mas_equalTo(self.view).offset(32);
|
||||
make.height.mas_equalTo(45);
|
||||
}];
|
||||
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.mas_equalTo(self.view);
|
||||
make.top.mas_equalTo(30);
|
||||
}];
|
||||
|
||||
[self.limitLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(self.view).offset(20);
|
||||
make.trailing.mas_equalTo(-20);
|
||||
make.top.mas_equalTo(self.stackView.mas_bottom).offset(10);
|
||||
}];
|
||||
|
||||
[self.forgetButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.trailing.mas_equalTo(self.view).offset(-20);
|
||||
make.top.mas_equalTo(self.submitButton.mas_bottom).offset(15);
|
||||
}];
|
||||
[self.submitButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.limitLabel.mas_bottom).offset(20);
|
||||
make.trailing.mas_equalTo(self.view).offset(-32);
|
||||
make.leading.mas_equalTo(self.view).offset(32);
|
||||
make.height.mas_equalTo(45);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - XPMineLoginPasswordProtocol
|
||||
- (void)setLoginPasswordSuccess {
|
||||
[self showSuccessToast:YMLocalizedString(@"XPMineLoginPasswordViewController0")];
|
||||
[self.navigationController popViewControllerAnimated:YES];
|
||||
[self showSuccessToast:YMLocalizedString(@"XPMineLoginPasswordViewController0")];
|
||||
[self.navigationController popViewControllerAnimated:YES];
|
||||
}
|
||||
|
||||
- (void)modifyLoginPasswordSuccess {
|
||||
[self showSuccessToast:YMLocalizedString(@"XPMineLoginPasswordViewController1")];
|
||||
[self.navigationController popViewControllerAnimated:YES];
|
||||
[self showSuccessToast:YMLocalizedString(@"XPMineLoginPasswordViewController1")];
|
||||
[self.navigationController popViewControllerAnimated:YES];
|
||||
}
|
||||
|
||||
#pragma mark - Event Response
|
||||
- (void)forgetButtonAction:(UIButton *)sender {
|
||||
XPMineResetLoginPwdViewController * VC= [[XPMineResetLoginPwdViewController alloc] init];
|
||||
VC.userInfo = self.userInfo;
|
||||
[self.navigationController pushViewController:VC animated:YES];
|
||||
|
||||
LoginForgetPasswordViewController *forgetPawVC = [LoginForgetPasswordViewController new];
|
||||
forgetPawVC.isLogout = YES;
|
||||
[self.navigationController pushViewController:forgetPawVC animated:YES];
|
||||
|
||||
}
|
||||
|
||||
- (void)submitButtonAction:(UIButton *)sender {
|
||||
if (![self.newsPwdView.contentTextField.text isEqualToString:self.checkPwdView.contentTextField.text]) {
|
||||
[self showErrorToast:YMLocalizedString(@"XPMineLoginPasswordViewController2")];
|
||||
return;
|
||||
}
|
||||
if (self.isModifiPwd) {
|
||||
[self.presenter modifyLoginPassword:self.userInfo.phone newPwd:self.newsPwd pwd:self.currentPwd];
|
||||
} else {
|
||||
[self.presenter setLoginPassword:self.userInfo.phone newPwd:self.newsPwd];
|
||||
}
|
||||
if (![self.newsPwdView.contentTextField.text isEqualToString:self.checkPwdView.contentTextField.text]) {
|
||||
[self showErrorToast:YMLocalizedString(@"XPMineLoginPasswordViewController2")];
|
||||
return;
|
||||
}
|
||||
if (self.isModifiPwd) {
|
||||
[self.presenter modifyLoginPassword:self.userInfo.phone newPwd:self.newsPwd pwd:self.currentPwd];
|
||||
} else {
|
||||
[self.presenter setLoginPassword:self.userInfo.phone newPwd:self.newsPwd];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)textFieldDidChange:(UITextField *)textfield {
|
||||
if (textfield == self.currentPwdView.contentTextField) {
|
||||
self.currentPwd = textfield.text;
|
||||
} else if (textfield == self.newsPwdView.contentTextField) {
|
||||
self.newsPwd = textfield.text;
|
||||
} else {
|
||||
self.checkPwd = textfield.text;
|
||||
}
|
||||
|
||||
if (self.isModifiPwd) {
|
||||
if (self.currentPwd.length >= 6 && self.newsPwd.length >= 6 && self.checkPwd.length >= 6) {
|
||||
self.submitButton.enabled = YES;
|
||||
} else {
|
||||
self.submitButton.enabled = NO;
|
||||
}
|
||||
} else {
|
||||
if (self.newsPwd.length >= 6 && self.checkPwd.length >= 6) {
|
||||
self.submitButton.enabled = YES;
|
||||
} else {
|
||||
self.submitButton.enabled = NO;
|
||||
}
|
||||
}
|
||||
if (textfield == self.currentPwdView.contentTextField) {
|
||||
self.currentPwd = textfield.text;
|
||||
} else if (textfield == self.newsPwdView.contentTextField) {
|
||||
self.newsPwd = textfield.text;
|
||||
} else {
|
||||
self.checkPwd = textfield.text;
|
||||
}
|
||||
|
||||
if (self.isModifiPwd) {
|
||||
if (self.currentPwd.length >= 6 && self.newsPwd.length >= 6 && self.checkPwd.length >= 6) {
|
||||
self.submitButton.enabled = YES;
|
||||
} else {
|
||||
self.submitButton.enabled = NO;
|
||||
}
|
||||
} else {
|
||||
if (self.newsPwd.length >= 6 && self.checkPwd.length >= 6) {
|
||||
self.submitButton.enabled = YES;
|
||||
} else {
|
||||
self.submitButton.enabled = NO;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setIsModifiPwd:(BOOL)isModifiPwd {
|
||||
_isModifiPwd = isModifiPwd;
|
||||
if (_isModifiPwd) {
|
||||
self.currentPwdView.hidden = NO;
|
||||
self.currentPwdView.placeholder = YMLocalizedString(@"XPMineLoginPasswordViewController3");
|
||||
self.newsPwdView.placeholder = YMLocalizedString(@"XPMineLoginPasswordViewController4");
|
||||
self.checkPwdView.placeholder = YMLocalizedString(@"XPMineLoginPasswordViewController5");
|
||||
self.title = YMLocalizedString(@"XPMineLoginPasswordViewController6");
|
||||
} else {
|
||||
self.currentPwdView.hidden = YES;
|
||||
self.newsPwdView.placeholder = YMLocalizedString(@"XPMineLoginPasswordViewController7");
|
||||
self.checkPwdView.placeholder = YMLocalizedString(@"XPMineLoginPasswordViewController8");
|
||||
self.forgetButton.hidden = YES;
|
||||
self.title = YMLocalizedString(@"XPMineLoginPasswordViewController9");
|
||||
}
|
||||
self.currentPwdView.hidden = !_isModifiPwd;
|
||||
_isModifiPwd = isModifiPwd;
|
||||
if (_isModifiPwd) {
|
||||
self.currentPwdView.hidden = NO;
|
||||
self.currentPwdView.placeholder = YMLocalizedString(@"XPMineLoginPasswordViewController3");
|
||||
self.newsPwdView.placeholder = YMLocalizedString(@"XPMineLoginPasswordViewController4");
|
||||
self.checkPwdView.placeholder = YMLocalizedString(@"XPMineLoginPasswordViewController5");
|
||||
self.title = YMLocalizedString(@"XPMineLoginPasswordViewController6");
|
||||
} else {
|
||||
self.currentPwdView.hidden = YES;
|
||||
self.newsPwdView.placeholder = YMLocalizedString(@"XPMineLoginPasswordViewController7");
|
||||
self.checkPwdView.placeholder = YMLocalizedString(@"XPMineLoginPasswordViewController8");
|
||||
self.forgetButton.hidden = YES;
|
||||
self.title = YMLocalizedString(@"XPMineLoginPasswordViewController9");
|
||||
}
|
||||
self.currentPwdView.hidden = !_isModifiPwd;
|
||||
}
|
||||
|
||||
- (UIStackView *)stackView {
|
||||
if (!_stackView) {
|
||||
_stackView = [[UIStackView alloc] init];
|
||||
_stackView.axis = UILayoutConstraintAxisVertical;
|
||||
_stackView.distribution = UIStackViewDistributionFill;
|
||||
_stackView.alignment = UIStackViewAlignmentFill;
|
||||
_stackView.spacing = 0;
|
||||
}
|
||||
return _stackView;
|
||||
if (!_stackView) {
|
||||
_stackView = [[UIStackView alloc] init];
|
||||
_stackView.axis = UILayoutConstraintAxisVertical;
|
||||
_stackView.distribution = UIStackViewDistributionFill;
|
||||
_stackView.alignment = UIStackViewAlignmentFill;
|
||||
_stackView.spacing = 25;
|
||||
}
|
||||
return _stackView;
|
||||
}
|
||||
|
||||
- (XPMineModifPayPwdView *)currentPwdView {
|
||||
if (!_currentPwdView) {
|
||||
_currentPwdView = [[XPMineModifPayPwdView alloc] init];
|
||||
[_currentPwdView.contentTextField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
|
||||
_currentPwdView.hidden = YES;
|
||||
}
|
||||
return _currentPwdView;
|
||||
if (!_currentPwdView) {
|
||||
_currentPwdView = [[XPMineModifPayPwdView alloc] init];
|
||||
[_currentPwdView.contentTextField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
|
||||
_currentPwdView.hidden = YES;
|
||||
}
|
||||
return _currentPwdView;
|
||||
}
|
||||
|
||||
- (XPMineModifPayPwdView *)newsPwdView {
|
||||
if (!_newsPwdView) {
|
||||
_newsPwdView = [[XPMineModifPayPwdView alloc] init];
|
||||
[_newsPwdView.contentTextField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
|
||||
}
|
||||
return _newsPwdView;
|
||||
if (!_newsPwdView) {
|
||||
_newsPwdView = [[XPMineModifPayPwdView alloc] init];
|
||||
[_newsPwdView.contentTextField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
|
||||
}
|
||||
return _newsPwdView;
|
||||
}
|
||||
|
||||
- (XPMineModifPayPwdView *)checkPwdView {
|
||||
if (!_checkPwdView) {
|
||||
_checkPwdView = [[XPMineModifPayPwdView alloc] init];
|
||||
[_checkPwdView.contentTextField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
|
||||
}
|
||||
return _checkPwdView;
|
||||
if (!_checkPwdView) {
|
||||
_checkPwdView = [[XPMineModifPayPwdView alloc] init];
|
||||
[_checkPwdView.contentTextField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
|
||||
}
|
||||
return _checkPwdView;
|
||||
}
|
||||
|
||||
- (UIButton *)submitButton {
|
||||
if (!_submitButton) {
|
||||
_submitButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_submitButton setTitleColor:[DJDKMIMOMColor confirmButtonTextColor] forState:UIControlStateNormal];
|
||||
[_submitButton setTitleColor:[DJDKMIMOMColor disableButtonTextColor] forState:UIControlStateDisabled];
|
||||
[_submitButton setTitle:YMLocalizedString(@"XPMineLoginPasswordViewController10") forState:UIControlStateNormal];
|
||||
_submitButton.titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:18];
|
||||
_submitButton.layer.masksToBounds = YES;
|
||||
_submitButton.layer.cornerRadius = 45/2;
|
||||
_submitButton.enabled = YES;
|
||||
[_submitButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor], [DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
|
||||
[_submitButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor disableButtonColor], [DJDKMIMOMColor disableButtonColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateDisabled];
|
||||
[_submitButton addTarget:self action:@selector(submitButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _submitButton;
|
||||
if (!_submitButton) {
|
||||
_submitButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_submitButton setTitleColor:[DJDKMIMOMColor confirmButtonTextColor] forState:UIControlStateNormal];
|
||||
[_submitButton setTitleColor:[DJDKMIMOMColor disableButtonTextColor] forState:UIControlStateDisabled];
|
||||
[_submitButton setTitle:YMLocalizedString(@"XPMineLoginPasswordViewController10") forState:UIControlStateNormal];
|
||||
_submitButton.titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:18];
|
||||
_submitButton.layer.masksToBounds = YES;
|
||||
_submitButton.layer.cornerRadius = 45/2;
|
||||
[_submitButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor], [DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
|
||||
[_submitButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor disableButtonColor], [DJDKMIMOMColor disableButtonColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateDisabled];
|
||||
[_submitButton addTarget:self action:@selector(submitButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
_submitButton.enabled = NO;
|
||||
}
|
||||
return _submitButton;
|
||||
}
|
||||
|
||||
- (UIButton *)forgetButton {
|
||||
if (!_forgetButton) {
|
||||
_forgetButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_forgetButton setEnlargeEdgeWithTop:5 right:5 bottom:5 left:5];
|
||||
[_forgetButton setTitleColor:[DJDKMIMOMColor secondTextColor] forState:UIControlStateNormal];
|
||||
[_forgetButton setTitle:@"忘记密码?" forState:UIControlStateNormal];
|
||||
_forgetButton.titleLabel.font = [UIFont systemFontOfSize:13];
|
||||
[_forgetButton addTarget:self action:@selector(forgetButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _forgetButton;
|
||||
if (!_forgetButton) {
|
||||
_forgetButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_forgetButton setEnlargeEdgeWithTop:5 right:5 bottom:5 left:5];
|
||||
[_forgetButton setTitleColor:[DJDKMIMOMColor secondTextColor] forState:UIControlStateNormal];
|
||||
[_forgetButton setTitle:YMLocalizedString(@"XPMineLoginPasswordViewController11") forState:UIControlStateNormal];
|
||||
_forgetButton.titleLabel.font = [UIFont systemFontOfSize:13];
|
||||
[_forgetButton addTarget:self action:@selector(forgetButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _forgetButton;
|
||||
}
|
||||
|
||||
- (UILabel *)limitLabel {
|
||||
if (!_limitLabel) {
|
||||
_limitLabel = [[UILabel alloc] init];
|
||||
_limitLabel.font = [UIFont systemFontOfSize:13];
|
||||
_limitLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
_limitLabel.text = @"密码必须使用6-16个字符内的数字和英文字母组合哦!";
|
||||
}
|
||||
return _limitLabel;
|
||||
if (!_limitLabel) {
|
||||
_limitLabel = [[UILabel alloc] init];
|
||||
_limitLabel.font = [UIFont systemFontOfSize:13];
|
||||
_limitLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
_limitLabel.text = YMLocalizedString(@"XPMineLoginPasswordViewController12");
|
||||
_limitLabel.numberOfLines = 0;
|
||||
}
|
||||
return _limitLabel;
|
||||
}
|
||||
|
||||
@end
|
||||
|
@@ -1,8 +1,8 @@
|
||||
//
|
||||
// YMMineModifPayPwdViewController.m
|
||||
// YUMI
|
||||
// XPMineModifPayPwdViewController.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by YUMI on 2021/9/18.
|
||||
// Created by 冯硕 on 2021/9/18.
|
||||
//
|
||||
|
||||
#import "XPMineModifPayPwdViewController.h"
|
||||
@@ -10,7 +10,7 @@
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <ReactiveObjC/ReactiveObjC.h>
|
||||
///Tool
|
||||
#import "DJDKMIMOMColor.h"
|
||||
|
||||
#import "UIButton+EnlargeTouchArea.h"
|
||||
#import "UIImage+Utils.h"
|
||||
///View
|
||||
@@ -40,159 +40,174 @@
|
||||
@implementation XPMineModifPayPwdViewController
|
||||
|
||||
- (XPMineModifPayPwdPresenter *)createPresenter {
|
||||
return [[XPMineModifPayPwdPresenter alloc] init];
|
||||
return [[XPMineModifPayPwdPresenter alloc] init];
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
[self initEvents];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
[self initEvents];
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
self.title = YMLocalizedString(@"XPMineModifPayPwdViewController0");
|
||||
[self.view addSubview:self.stackView];
|
||||
[self.view addSubview:self.forgetBtn];
|
||||
[self.view addSubview:self.submitBtn];
|
||||
[self.stackView addArrangedSubview:self.currentPwdView];
|
||||
[self.stackView addArrangedSubview:self.newsPwdView];
|
||||
[self.stackView addArrangedSubview:self.checkPwdView];
|
||||
self.view.backgroundColor = [UIColor whiteColor];
|
||||
self.title = YMLocalizedString(@"XPMineModifPayPwdViewController0");
|
||||
[self.view addSubview:self.stackView];
|
||||
[self.view addSubview:self.forgetBtn];
|
||||
[self.view addSubview:self.submitBtn];
|
||||
[self.stackView addArrangedSubview:self.currentPwdView];
|
||||
[self.stackView addArrangedSubview:self.newsPwdView];
|
||||
[self.stackView addArrangedSubview:self.checkPwdView];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.top.mas_equalTo(self.view);
|
||||
}];
|
||||
|
||||
[self.forgetBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.right.mas_equalTo(self.view).offset(-32);
|
||||
make.top.mas_equalTo(self.stackView.mas_bottom).offset(8);
|
||||
}];
|
||||
[self.submitBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.stackView.mas_bottom).offset(45);
|
||||
make.right.mas_equalTo(self.view).offset(-32);
|
||||
make.left.mas_equalTo(self.view).offset(32);
|
||||
make.height.mas_equalTo(45);
|
||||
}];
|
||||
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(30);
|
||||
make.leading.trailing.mas_equalTo(self.view);
|
||||
}];
|
||||
|
||||
[self.forgetBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.trailing.mas_equalTo(self.view).offset(-32);
|
||||
make.top.mas_equalTo(self.stackView.mas_bottom).offset(8);
|
||||
}];
|
||||
[self.submitBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(275);
|
||||
make.trailing.mas_equalTo(self.view).offset(-15);
|
||||
make.leading.mas_equalTo(self.view).offset(15);
|
||||
make.height.mas_equalTo(46);
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)initEvents {
|
||||
RAC(self.submitBtn, enabled) = [RACSignal combineLatest:@[self.currentPwdView.contentTextField.rac_textSignal, self.newsPwdView.contentTextField.rac_textSignal, self.checkPwdView.contentTextField.rac_textSignal] reduce:^id _Nonnull(NSString *currentPassword, NSString *newsPassword, NSString *checkPassword){
|
||||
return @(currentPassword.length == 6 && newsPassword.length == 6 && checkPassword.length == 6);
|
||||
}];
|
||||
RAC(self.submitBtn, enabled) = [RACSignal combineLatest:@[self.currentPwdView.contentTextField.rac_textSignal, self.newsPwdView.contentTextField.rac_textSignal, self.checkPwdView.contentTextField.rac_textSignal] reduce:^id _Nonnull(NSString *currentPassword, NSString *newsPassword, NSString *checkPassword){
|
||||
return @(currentPassword.length == 6 && newsPassword.length == 6 && checkPassword.length == 6);
|
||||
}];
|
||||
}
|
||||
///判断一个字符串是纯数字
|
||||
- (BOOL)isPureNum:(NSString *)text {
|
||||
if (!text) {
|
||||
return NO;
|
||||
}
|
||||
NSScanner *scan = [NSScanner scannerWithString:text];
|
||||
int val;
|
||||
return [scan scanInt:&val] && [scan isAtEnd];
|
||||
if (!text) {
|
||||
return NO;
|
||||
}
|
||||
NSScanner *scan = [NSScanner scannerWithString:text];
|
||||
int val;
|
||||
return [scan scanInt:&val] && [scan isAtEnd];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - XPMineModifPayProtocol
|
||||
- (void)modifPayPasswordSuccess {
|
||||
[self showSuccessToast:YMLocalizedString(@"XPMineModifPayPwdViewController1")];
|
||||
for (UIViewController *VC in self.navigationController.viewControllers) {
|
||||
if ([VC isKindOfClass:[XPMineSettingViewController class]]) {
|
||||
[self.navigationController popToViewController:VC animated:YES];
|
||||
return;
|
||||
}
|
||||
}
|
||||
[self.navigationController popViewControllerAnimated:YES];
|
||||
[self showSuccessToast:YMLocalizedString(@"XPMineModifPayPwdViewController1")];
|
||||
for (UIViewController *VC in self.navigationController.viewControllers) {
|
||||
if ([VC isKindOfClass:[XPMineSettingViewController class]]) {
|
||||
[self.navigationController popToViewController:VC animated:YES];
|
||||
return;
|
||||
}
|
||||
}
|
||||
[self.navigationController popViewControllerAnimated:YES];
|
||||
}
|
||||
|
||||
#pragma mark - Event Response
|
||||
- (void)forgetBtnAction:(UIButton *)sender {
|
||||
XPMineVerifIdentityViewController * VC= [[XPMineVerifIdentityViewController alloc] init];
|
||||
VC.userInfo = self.userInfo;
|
||||
[self.navigationController pushViewController:VC animated:YES];
|
||||
|
||||
TTAlertConfig * config = [[TTAlertConfig alloc] init];
|
||||
config.title = YMLocalizedString(@"PKIDLoginViewController2");
|
||||
config.message = YMLocalizedString(@"PKIDLoginViewController3");
|
||||
config.actionStyle = TTAlertActionConfirmStyle;
|
||||
config.confirmButtonConfig.title = YMLocalizedString(@"PKIDLoginViewController4");
|
||||
[TTPopup alertWithConfig:config confirmHandler:^{
|
||||
|
||||
} cancelHandler:^{
|
||||
|
||||
}];
|
||||
|
||||
return;
|
||||
XPMineVerifIdentityViewController * VC= [[XPMineVerifIdentityViewController alloc] init];
|
||||
VC.userInfo = self.userInfo;
|
||||
[self.navigationController pushViewController:VC animated:YES];
|
||||
}
|
||||
|
||||
- (void)submitBtnAction:(UIButton *)sender {
|
||||
if (![self.newsPwdView.contentTextField.text isEqual:self.checkPwdView.contentTextField.text]) {
|
||||
[self showErrorToast:YMLocalizedString(@"XPMineModifPayPwdViewController2")];
|
||||
return;
|
||||
}
|
||||
|
||||
if (![self isPureNum:self.checkPwdView.contentTextField.text] || ![self isPureNum:self.newsPwdView.contentTextField.text]) {
|
||||
[self showErrorToast:YMLocalizedString(@"XPMineModifPayPwdViewController3")];
|
||||
return;
|
||||
}
|
||||
|
||||
[self.presenter modifyPaymentPasswordWitholdPassword:self.currentPwdView.contentTextField.text newPassword:self.newsPwdView.contentTextField.text];
|
||||
if (![self.newsPwdView.contentTextField.text isEqual:self.checkPwdView.contentTextField.text]) {
|
||||
[self showErrorToast:YMLocalizedString(@"XPMineModifPayPwdViewController2")];
|
||||
return;
|
||||
}
|
||||
|
||||
if (![self isPureNum:self.checkPwdView.contentTextField.text] || ![self isPureNum:self.newsPwdView.contentTextField.text]) {
|
||||
[self showErrorToast:YMLocalizedString(@"XPMineModifPayPwdViewController3")];
|
||||
return;
|
||||
}
|
||||
|
||||
[self.presenter modifyPaymentPasswordWitholdPassword:self.currentPwdView.contentTextField.text newPassword:self.newsPwdView.contentTextField.text];
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (UIStackView *)stackView {
|
||||
if (!_stackView) {
|
||||
_stackView = [[UIStackView alloc] init];
|
||||
_stackView.axis = UILayoutConstraintAxisVertical;
|
||||
_stackView.distribution = UIStackViewDistributionFill;
|
||||
_stackView.alignment = UIStackViewAlignmentFill;
|
||||
_stackView.spacing = 0;
|
||||
}
|
||||
return _stackView;
|
||||
if (!_stackView) {
|
||||
_stackView = [[UIStackView alloc] init];
|
||||
_stackView.axis = UILayoutConstraintAxisVertical;
|
||||
_stackView.distribution = UIStackViewDistributionFill;
|
||||
_stackView.alignment = UIStackViewAlignmentFill;
|
||||
_stackView.spacing = 25;
|
||||
}
|
||||
return _stackView;
|
||||
}
|
||||
|
||||
- (XPMineModifPayPwdView *)currentPwdView {
|
||||
if (!_currentPwdView) {
|
||||
_currentPwdView = [[XPMineModifPayPwdView alloc] init];
|
||||
_currentPwdView.placeholder = YMLocalizedString(@"XPMineModifPayPwdViewController4");
|
||||
_currentPwdView.contentTextField.keyboardType = UIKeyboardTypeNumberPad;
|
||||
}
|
||||
return _currentPwdView;
|
||||
if (!_currentPwdView) {
|
||||
_currentPwdView = [[XPMineModifPayPwdView alloc] init];
|
||||
_currentPwdView.placeholder = YMLocalizedString(@"XPMineModifPayPwdViewController4");
|
||||
_currentPwdView.contentTextField.keyboardType = UIKeyboardTypeNumberPad;
|
||||
}
|
||||
return _currentPwdView;
|
||||
}
|
||||
|
||||
- (XPMineModifPayPwdView *)newsPwdView {
|
||||
if (!_newsPwdView) {
|
||||
_newsPwdView = [[XPMineModifPayPwdView alloc] init];
|
||||
_newsPwdView.placeholder = YMLocalizedString(@"XPMineModifPayPwdViewController5");
|
||||
_newsPwdView.contentTextField.keyboardType = UIKeyboardTypeNumberPad;
|
||||
}
|
||||
return _newsPwdView;
|
||||
if (!_newsPwdView) {
|
||||
_newsPwdView = [[XPMineModifPayPwdView alloc] init];
|
||||
_newsPwdView.placeholder = YMLocalizedString(@"XPMineModifPayPwdViewController5");
|
||||
_newsPwdView.contentTextField.keyboardType = UIKeyboardTypeNumberPad;
|
||||
}
|
||||
return _newsPwdView;
|
||||
}
|
||||
|
||||
- (XPMineModifPayPwdView *)checkPwdView {
|
||||
if (!_checkPwdView) {
|
||||
_checkPwdView = [[XPMineModifPayPwdView alloc] init];
|
||||
_checkPwdView.placeholder = YMLocalizedString(@"XPMineModifPayPwdViewController6");
|
||||
_checkPwdView.contentTextField.keyboardType = UIKeyboardTypeNumberPad;
|
||||
}
|
||||
return _checkPwdView;
|
||||
if (!_checkPwdView) {
|
||||
_checkPwdView = [[XPMineModifPayPwdView alloc] init];
|
||||
_checkPwdView.placeholder = YMLocalizedString(@"XPMineModifPayPwdViewController6");
|
||||
_checkPwdView.contentTextField.keyboardType = UIKeyboardTypeNumberPad;
|
||||
}
|
||||
return _checkPwdView;
|
||||
}
|
||||
|
||||
- (UIButton *)submitBtn {
|
||||
if (!_submitBtn) {
|
||||
_submitBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_submitBtn setTitleColor:[DJDKMIMOMColor confirmButtonTextColor] forState:UIControlStateNormal];
|
||||
[_submitBtn setTitleColor:[DJDKMIMOMColor disableButtonTextColor] forState:UIControlStateDisabled];
|
||||
[_submitBtn setTitle:YMLocalizedString(@"XPMineModifPayPwdViewController7") forState:UIControlStateNormal];
|
||||
_submitBtn.titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:18];
|
||||
_submitBtn.layer.masksToBounds = YES;
|
||||
_submitBtn.layer.cornerRadius = 45/2;
|
||||
_submitBtn.enabled = YES;
|
||||
[_submitBtn setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor], [DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
|
||||
[_submitBtn setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor disableButtonColor], [DJDKMIMOMColor disableButtonColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateDisabled];
|
||||
[_submitBtn addTarget:self action:@selector(submitBtnAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _submitBtn;
|
||||
if (!_submitBtn) {
|
||||
_submitBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_submitBtn setTitleColor:[DJDKMIMOMColor disableButtonTextColor] forState:UIControlStateDisabled];
|
||||
[_submitBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||||
[_submitBtn setTitle:YMLocalizedString(@"XPMineModifPayPwdViewController7") forState:UIControlStateNormal];
|
||||
_submitBtn.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightRegular];
|
||||
_submitBtn.layer.masksToBounds = YES;
|
||||
_submitBtn.layer.cornerRadius = 45/2;
|
||||
_submitBtn.enabled = YES;
|
||||
[_submitBtn setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor disableButtonColor], [DJDKMIMOMColor disableButtonColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateDisabled];
|
||||
[_submitBtn setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor],[DJDKMIMOMColor confirmButtonGradientMiddleColor],[DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
|
||||
[_submitBtn addTarget:self action:@selector(submitBtnAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _submitBtn;
|
||||
}
|
||||
|
||||
- (UIButton *)forgetBtn {
|
||||
if (!_forgetBtn) {
|
||||
_forgetBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_forgetBtn setEnlargeEdgeWithTop:5 right:5 bottom:5 left:5];
|
||||
[_forgetBtn setTitleColor:[DJDKMIMOMColor secondTextColor] forState:UIControlStateNormal];
|
||||
[_forgetBtn setTitle:@"忘记密码?" forState:UIControlStateNormal];
|
||||
_forgetBtn.titleLabel.font = [UIFont systemFontOfSize:13];
|
||||
[_forgetBtn addTarget:self action:@selector(forgetBtnAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _forgetBtn;
|
||||
if (!_forgetBtn) {
|
||||
_forgetBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_forgetBtn setEnlargeEdgeWithTop:5 right:5 bottom:5 left:5];
|
||||
[_forgetBtn setTitleColor:[DJDKMIMOMColor secondTextColor] forState:UIControlStateNormal];
|
||||
[_forgetBtn setTitle:YMLocalizedString(@"XPMineModifPayPwdViewController8") forState:UIControlStateNormal];
|
||||
_forgetBtn.titleLabel.font = [UIFont systemFontOfSize:13];
|
||||
[_forgetBtn addTarget:self action:@selector(forgetBtnAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _forgetBtn;
|
||||
}
|
||||
|
||||
@end
|
||||
|
@@ -1,8 +1,8 @@
|
||||
//
|
||||
// YMMineVerifIdentityViewController.h
|
||||
// YUMI
|
||||
// XPMineVerifIdentityViewController.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by YUMI on 2021/9/18.
|
||||
// Created by 冯硕 on 2021/9/18.
|
||||
// 验证身份
|
||||
|
||||
#import "MvpViewController.h"
|
||||
|
@@ -1,8 +1,8 @@
|
||||
//
|
||||
// YMMineVerifIdentityViewController.m
|
||||
// YUMI
|
||||
// XPMineVerifIdentityViewController.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by YUMI on 2021/9/18.
|
||||
// Created by 冯硕 on 2021/9/18.
|
||||
//
|
||||
|
||||
#import "XPMineVerifIdentityViewController.h"
|
||||
@@ -10,7 +10,7 @@
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <ReactiveObjC/ReactiveObjC.h>
|
||||
///Tool
|
||||
#import "DJDKMIMOMColor.h"
|
||||
|
||||
#import "CountDownHelper.h"
|
||||
#import "UIImage+Utils.h"
|
||||
///Model
|
||||
@@ -36,77 +36,77 @@
|
||||
|
||||
@implementation XPMineVerifIdentityViewController
|
||||
- (void)dealloc {
|
||||
[[CountDownHelper shareHelper] stopCountDown];
|
||||
[[CountDownHelper shareHelper] stopCountDown];
|
||||
}
|
||||
- (XPMineVerifIdentityPresenter *)createPresenter {
|
||||
return [[XPMineVerifIdentityPresenter alloc] init];;
|
||||
return [[XPMineVerifIdentityPresenter alloc] init];;
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
[self initEvents];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
[self initEvents];
|
||||
}
|
||||
|
||||
- (void)viewDidDisappear:(BOOL)animated {
|
||||
[super viewDidDisappear:animated];
|
||||
[[CountDownHelper shareHelper] stopCountDown];
|
||||
[super viewDidDisappear:animated];
|
||||
[[CountDownHelper shareHelper] stopCountDown];
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
self.title = YMLocalizedString(@"XPMineVerifIdentityViewController0");
|
||||
self.phoneView.contentTextField.text = self.userInfo.phone;
|
||||
self.phoneView.contentTextField.enabled = self.userInfo.phone.length > 0;
|
||||
[CountDownHelper shareHelper].delegate = self;
|
||||
[self.view addSubview:self.stackView];
|
||||
[self.view addSubview:self.nextButton];
|
||||
|
||||
[self.stackView addArrangedSubview:self.phoneView];
|
||||
[self.stackView addArrangedSubview:self.smsCodeView];
|
||||
self.title = YMLocalizedString(@"XPMineVerifIdentityViewController0");
|
||||
self.phoneView.contentTextField.text = self.userInfo.phone;
|
||||
self.phoneView.contentTextField.enabled = self.userInfo.phone.length > 0;
|
||||
[CountDownHelper shareHelper].delegate = self;
|
||||
[self.view addSubview:self.stackView];
|
||||
[self.view addSubview:self.nextButton];
|
||||
|
||||
[self.stackView addArrangedSubview:self.phoneView];
|
||||
[self.stackView addArrangedSubview:self.smsCodeView];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.top.mas_equalTo(self.view);
|
||||
}];
|
||||
|
||||
[self.nextButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.stackView.mas_bottom).offset(45);
|
||||
make.right.mas_equalTo(self.view).offset(-32);
|
||||
make.left.mas_equalTo(self.view).offset(32);
|
||||
make.height.mas_equalTo(45);
|
||||
}];
|
||||
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.top.mas_equalTo(self.view);
|
||||
}];
|
||||
|
||||
[self.nextButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.stackView.mas_bottom).offset(45);
|
||||
make.trailing.mas_equalTo(self.view).offset(-32);
|
||||
make.leading.mas_equalTo(self.view).offset(32);
|
||||
make.height.mas_equalTo(45);
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)initEvents {
|
||||
@weakify(self);
|
||||
RAC(self.nextButton, enabled) = [RACSignal combineLatest:@[self.phoneView.contentTextField.rac_textSignal, self.smsCodeView.contentTextField.rac_textSignal] reduce:^id _Nonnull(NSString *phone, NSString * code){
|
||||
return @(phone.length > 0 && code.length > 0);
|
||||
}];
|
||||
|
||||
self.smsCodeView.smsCodeBlock = ^(UIButton * _Nonnull sender) {
|
||||
@strongify(self);
|
||||
if (self.phoneView.contentTextField.text.length > 0) {
|
||||
[self.presenter phoneSmsCode:self.phoneView.contentTextField.text type:GetSmsType_Unbind_Phone phoneAreaCode:@""];
|
||||
} else {
|
||||
[self showErrorToast:YMLocalizedString(@"XPMineVerifIdentityViewController1")];
|
||||
}
|
||||
};
|
||||
@weakify(self);
|
||||
RAC(self.nextButton, enabled) = [RACSignal combineLatest:@[self.phoneView.contentTextField.rac_textSignal, self.smsCodeView.contentTextField.rac_textSignal] reduce:^id _Nonnull(NSString *phone, NSString * code){
|
||||
return @(phone.length > 0 && code.length > 0);
|
||||
}];
|
||||
|
||||
self.smsCodeView.smsCodeBlock = ^(UIButton * _Nonnull sender) {
|
||||
@strongify(self);
|
||||
if (self.phoneView.contentTextField.text.length > 0) {
|
||||
[self.presenter phoneSmsCode:self.phoneView.contentTextField.text type:GetSmsType_Unbind_Phone phoneAreaCode:@""];
|
||||
} else {
|
||||
[self showErrorToast:YMLocalizedString(@"XPMineVerifIdentityViewController1")];
|
||||
}
|
||||
};
|
||||
}
|
||||
#pragma mark - XPMineVerifIdentityProtocol
|
||||
- (void)phoneSmsCodeSuccess {
|
||||
self.smsCodeView.smsCodeButton.enabled = NO;
|
||||
[self showSuccessToast:YMLocalizedString(@"XPMineVerifIdentityViewController2")];
|
||||
[[CountDownHelper shareHelper] openCountdownWithTime:60];
|
||||
self.smsCodeView.smsCodeButton.enabled = NO;
|
||||
[self showSuccessToast:YMLocalizedString(@"XPMineVerifIdentityViewController2")];
|
||||
[[CountDownHelper shareHelper] openCountdownWithTime:60];
|
||||
}
|
||||
|
||||
- (void)checkMoblieCodeWithMoblieSuccess {
|
||||
[self showErrorToast:YMLocalizedString(@"XPMineVerifIdentityViewController3")];
|
||||
[[CountDownHelper shareHelper] stopCountDown];
|
||||
XPMineResetPayPwdViewController * vc = [[XPMineResetPayPwdViewController alloc] init];
|
||||
[self.navigationController pushViewController:vc animated:YES];
|
||||
[self showErrorToast:YMLocalizedString(@"XPMineVerifIdentityViewController3")];
|
||||
[[CountDownHelper shareHelper] stopCountDown];
|
||||
XPMineResetPayPwdViewController * vc = [[XPMineResetPayPwdViewController alloc] init];
|
||||
[self.navigationController pushViewController:vc animated:YES];
|
||||
}
|
||||
|
||||
#pragma mark - CountDownHelperDelegate
|
||||
@@ -122,56 +122,56 @@
|
||||
|
||||
#pragma mark - Event Response
|
||||
- (void)nextButtonAction:(UIButton *)sender {
|
||||
[self.presenter checkMoblieCodeWithMoblie:self.phoneView.contentTextField.text code:self.smsCodeView.contentTextField.text];
|
||||
[self.presenter checkMoblieCodeWithMoblie:self.phoneView.contentTextField.text code:self.smsCodeView.contentTextField.text phoneAreaCode:@""];
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (UIButton *)nextButton {
|
||||
if (!_nextButton) {
|
||||
_nextButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_nextButton setTitleColor:[DJDKMIMOMColor confirmButtonTextColor] forState:UIControlStateNormal];
|
||||
[_nextButton setTitleColor:[DJDKMIMOMColor disableButtonTextColor] forState:UIControlStateDisabled];
|
||||
[_nextButton setTitle:YMLocalizedString(@"XPMineVerifIdentityViewController6") forState:UIControlStateNormal];
|
||||
_nextButton.titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:18];
|
||||
_nextButton.layer.masksToBounds = YES;
|
||||
_nextButton.layer.cornerRadius = 45/2;
|
||||
_nextButton.enabled = NO;
|
||||
[_nextButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor], [DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
|
||||
[_nextButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor disableButtonColor], [DJDKMIMOMColor disableButtonColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateDisabled];
|
||||
[_nextButton addTarget:self action:@selector(nextButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _nextButton;
|
||||
if (!_nextButton) {
|
||||
_nextButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_nextButton setTitleColor:[DJDKMIMOMColor confirmButtonTextColor] forState:UIControlStateNormal];
|
||||
[_nextButton setTitleColor:[DJDKMIMOMColor disableButtonTextColor] forState:UIControlStateDisabled];
|
||||
[_nextButton setTitle:YMLocalizedString(@"XPMineVerifIdentityViewController6") forState:UIControlStateNormal];
|
||||
_nextButton.titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:18];
|
||||
_nextButton.layer.masksToBounds = YES;
|
||||
_nextButton.layer.cornerRadius = 45/2;
|
||||
_nextButton.enabled = NO;
|
||||
[_nextButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor], [DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
|
||||
[_nextButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor disableButtonColor], [DJDKMIMOMColor disableButtonColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateDisabled];
|
||||
[_nextButton addTarget:self action:@selector(nextButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _nextButton;
|
||||
}
|
||||
|
||||
- (UIStackView *)stackView {
|
||||
if (!_stackView) {
|
||||
_stackView = [[UIStackView alloc] init];
|
||||
_stackView.axis = UILayoutConstraintAxisVertical;
|
||||
_stackView.distribution = UIStackViewDistributionFill;
|
||||
_stackView.alignment = UIStackViewAlignmentFill;
|
||||
_stackView.spacing = 0;
|
||||
}
|
||||
return _stackView;
|
||||
if (!_stackView) {
|
||||
_stackView = [[UIStackView alloc] init];
|
||||
_stackView.axis = UILayoutConstraintAxisVertical;
|
||||
_stackView.distribution = UIStackViewDistributionFill;
|
||||
_stackView.alignment = UIStackViewAlignmentFill;
|
||||
_stackView.spacing = 0;
|
||||
}
|
||||
return _stackView;
|
||||
}
|
||||
|
||||
- (XPMineVerifIdentityView *)phoneView {
|
||||
if (!_phoneView) {
|
||||
_phoneView = [[XPMineVerifIdentityView alloc] init];
|
||||
_phoneView.type = XPMineVerifIdentityType_Phone;
|
||||
_phoneView.placeholder = YMLocalizedString(@"XPMineVerifIdentityViewController7");
|
||||
_phoneView.contentTextField.secureTextEntry = NO;
|
||||
}
|
||||
return _phoneView;
|
||||
if (!_phoneView) {
|
||||
_phoneView = [[XPMineVerifIdentityView alloc] init];
|
||||
_phoneView.type = XPMineVerifIdentityType_Phone;
|
||||
_phoneView.placeholder = YMLocalizedString(@"XPMineVerifIdentityViewController7");
|
||||
_phoneView.contentTextField.secureTextEntry = NO;
|
||||
}
|
||||
return _phoneView;
|
||||
}
|
||||
|
||||
- (XPMineVerifIdentityView *)smsCodeView {
|
||||
if (!_smsCodeView) {
|
||||
_smsCodeView = [[XPMineVerifIdentityView alloc] init];
|
||||
_smsCodeView.type = XPMineVerifIdentityType_Sms;
|
||||
_smsCodeView.placeholder = YMLocalizedString(@"XPMineVerifIdentityViewController8");
|
||||
_smsCodeView.contentTextField.secureTextEntry = NO;
|
||||
}
|
||||
return _smsCodeView;
|
||||
if (!_smsCodeView) {
|
||||
_smsCodeView = [[XPMineVerifIdentityView alloc] init];
|
||||
_smsCodeView.type = XPMineVerifIdentityType_Sms;
|
||||
_smsCodeView.placeholder = YMLocalizedString(@"XPMineVerifIdentityViewController8");
|
||||
_smsCodeView.contentTextField.secureTextEntry = NO;
|
||||
}
|
||||
return _smsCodeView;
|
||||
}
|
||||
|
||||
@end
|
||||
|
@@ -1,15 +1,15 @@
|
||||
//
|
||||
// YMMineModifPayPwdView.m
|
||||
// YUMI
|
||||
// XPMineModifPayPwdView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by YUMI on 2021/9/18.
|
||||
// Created by 冯硕 on 2021/9/18.
|
||||
//
|
||||
|
||||
#import "XPMineModifPayPwdView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
#import "DJDKMIMOMColor.h"
|
||||
|
||||
#import "UIButton+EnlargeTouchArea.h"
|
||||
|
||||
@interface XPMineModifPayPwdView ()
|
||||
@@ -17,97 +17,102 @@
|
||||
@property (nonatomic,strong) UITextField *contentTextField;
|
||||
///控制显示或者隐藏
|
||||
@property (nonatomic,strong) UIButton *commandButton;
|
||||
///分割线
|
||||
@property (nonatomic,strong) UIView * partLineView;
|
||||
///背景
|
||||
@property (nonatomic,strong) UIView * bgView;
|
||||
@end
|
||||
|
||||
@implementation XPMineModifPayPwdView
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Response
|
||||
- (void)onClickHiddenBtn:(UIButton *)btn {
|
||||
btn.selected = !btn.selected;
|
||||
self.contentTextField.secureTextEntry = !self.contentTextField.secureTextEntry;
|
||||
btn.selected = !btn.selected;
|
||||
self.contentTextField.secureTextEntry = !self.contentTextField.secureTextEntry;
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
self.backgroundColor = [DJDKMIMOMColor appCellBackgroundColor];
|
||||
[self addSubview:self.contentTextField];
|
||||
[self addSubview:self.commandButton];
|
||||
[self addSubview:self.partLineView];
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
[self addSubview:self.bgView];
|
||||
[self.bgView addSubview:self.contentTextField];
|
||||
[self.bgView addSubview:self.commandButton];
|
||||
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(50);
|
||||
}];
|
||||
|
||||
[self.contentTextField mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self).offset(15);
|
||||
make.top.bottom.mas_equalTo(self);
|
||||
}];
|
||||
|
||||
[self.commandButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.right.mas_equalTo(self).offset(-32);
|
||||
make.centerY.mas_equalTo(self.contentTextField);
|
||||
make.left.mas_equalTo(self.contentTextField.mas_right).offset(10);
|
||||
}];
|
||||
|
||||
[self.partLineView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self).offset(5);
|
||||
make.right.mas_equalTo(self).offset(-5);
|
||||
make.bottom.mas_equalTo(self);
|
||||
make.height.mas_equalTo(0.5);
|
||||
}];
|
||||
[self mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(48);
|
||||
}];
|
||||
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.bottom.equalTo(self);
|
||||
make.leading.mas_offset(15);
|
||||
make.trailing.mas_equalTo(-15);
|
||||
}];
|
||||
[self.contentTextField mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(20);
|
||||
make.trailing.mas_equalTo(-54);
|
||||
make.top.bottom.mas_equalTo(self.bgView);
|
||||
}];
|
||||
|
||||
[self.commandButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.trailing.mas_equalTo(-20);
|
||||
make.width.height.mas_equalTo(24);
|
||||
make.centerY.mas_equalTo(self.contentTextField);
|
||||
make.leading.mas_equalTo(self.contentTextField.mas_trailing).offset(10);
|
||||
}];
|
||||
|
||||
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setPlaceholder:(NSString *)placeholder {
|
||||
_placeholder = placeholder;
|
||||
self.contentTextField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:placeholder attributes:@{NSFontAttributeName : self.contentTextField.font, NSForegroundColorAttributeName : [DJDKMIMOMColor secondTextColor]}];
|
||||
_placeholder = placeholder;
|
||||
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
|
||||
self.contentTextField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:placeholder attributes:@{NSFontAttributeName : self.contentTextField.font, NSForegroundColorAttributeName : [DJDKMIMOMColor disableButtonTextColor], NSParagraphStyleAttributeName: style}];
|
||||
}
|
||||
|
||||
|
||||
- (UIView *)partLineView {
|
||||
if (!_partLineView) {
|
||||
_partLineView = [[UIView alloc] init];
|
||||
_partLineView.backgroundColor = [DJDKMIMOMColor dividerColor];
|
||||
}
|
||||
return _partLineView;
|
||||
- (UIView *)bgView {
|
||||
if (!_bgView) {
|
||||
_bgView = [[UIView alloc] init];
|
||||
_bgView.backgroundColor = UIColorFromRGB(0xF0F5F6);
|
||||
_bgView.layer.cornerRadius = 24;
|
||||
_bgView.layer.masksToBounds = YES;
|
||||
}
|
||||
return _bgView;
|
||||
}
|
||||
|
||||
- (UITextField *)contentTextField {
|
||||
if (!_contentTextField) {
|
||||
_contentTextField = [[UITextField alloc] init];
|
||||
_contentTextField.secureTextEntry = YES;
|
||||
_contentTextField.font = [UIFont systemFontOfSize:13];
|
||||
_contentTextField.textColor = [DJDKMIMOMColor mainTextColor];
|
||||
_contentTextField.tintColor = [DJDKMIMOMColor appMainColor];
|
||||
}
|
||||
return _contentTextField;
|
||||
if (!_contentTextField) {
|
||||
_contentTextField = [[UITextField alloc] init];
|
||||
_contentTextField.secureTextEntry = YES;
|
||||
_contentTextField.font = [UIFont systemFontOfSize:15];
|
||||
_contentTextField.textColor = [DJDKMIMOMColor inputTextColor];
|
||||
_contentTextField.tintColor = [DJDKMIMOMColor appMainColor];
|
||||
}
|
||||
return _contentTextField;
|
||||
}
|
||||
|
||||
- (UIButton *)commandButton {
|
||||
if (!_commandButton) {
|
||||
_commandButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_commandButton setEnlargeEdgeWithTop:20 right:20 bottom:20 left:20];
|
||||
[_commandButton addTarget:self action:@selector(onClickHiddenBtn:) forControlEvents:UIControlEventTouchUpInside];
|
||||
[_commandButton setImage:[UIImage imageNamed:@"mine_setting_modif_pay_pwd_hidden"] forState:UIControlStateNormal];
|
||||
[_commandButton setImage:[UIImage imageNamed:@"mine_setting_modif_pay_pwd_show"] forState:UIControlStateSelected];
|
||||
_commandButton.titleLabel.font = [UIFont systemFontOfSize:12];
|
||||
[_commandButton setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
|
||||
}
|
||||
return _commandButton;
|
||||
if (!_commandButton) {
|
||||
_commandButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_commandButton setEnlargeEdgeWithTop:20 right:20 bottom:20 left:20];
|
||||
[_commandButton addTarget:self action:@selector(onClickHiddenBtn:) forControlEvents:UIControlEventTouchUpInside];
|
||||
[_commandButton setImage:[UIImage imageNamed:@"mine_setting_modif_pay_pwd_hidden"] forState:UIControlStateNormal];
|
||||
[_commandButton setImage:[UIImage imageNamed:@"mine_setting_modif_pay_pwd_show"] forState:UIControlStateSelected];
|
||||
_commandButton.titleLabel.font = [UIFont systemFontOfSize:12];
|
||||
[_commandButton setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
|
||||
}
|
||||
return _commandButton;
|
||||
}
|
||||
|
||||
|
||||
|
@@ -627,6 +627,7 @@ UIKIT_EXTERN NSString *kRequestRicket;
|
||||
_tableView.delegate = self;
|
||||
_tableView.dataSource = self;
|
||||
_tableView.showsVerticalScrollIndicator = NO;
|
||||
_tableView.contentInset = UIEdgeInsetsMake(0, 0, 100, 0);
|
||||
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;;
|
||||
[_tableView registerClass:[XPMineTheGuildCell class] forCellReuseIdentifier:NSStringFromClass([XPMineTheGuildCell class])];
|
||||
[_tableView registerClass:[XPMinePersonalCenterCell class] forCellReuseIdentifier:NSStringFromClass([XPMinePersonalCenterCell class])];
|
||||
|
@@ -260,6 +260,7 @@
|
||||
_tableView.delegate = self;
|
||||
_tableView.dataSource = self;
|
||||
_tableView.tableFooterView = [UIView new];
|
||||
_tableView.contentInset = UIEdgeInsetsMake(0, 0, 100, 0);
|
||||
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
||||
_tableView.backgroundColor = [UIColor clearColor];
|
||||
if (@available(iOS 11.0, *)) {
|
||||
|
@@ -266,6 +266,7 @@
|
||||
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
|
||||
_tableView.delegate = self;
|
||||
_tableView.dataSource = self;
|
||||
_tableView.contentInset = UIEdgeInsetsMake(0, 0, 100, 0);
|
||||
_tableView.tableFooterView = [UIView new];
|
||||
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
||||
_tableView.backgroundColor = [UIColor clearColor];
|
||||
|
@@ -280,6 +280,7 @@
|
||||
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
|
||||
_tableView.delegate = self;
|
||||
_tableView.dataSource = self;
|
||||
_tableView.contentInset = UIEdgeInsetsMake(0, 0, 100, 0);
|
||||
_tableView.tableFooterView = [UIView new];
|
||||
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
||||
_tableView.backgroundColor = [UIColor clearColor];
|
||||
|
@@ -205,6 +205,7 @@
|
||||
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
|
||||
_tableView.delegate = self;
|
||||
_tableView.dataSource = self;
|
||||
_tableView.contentInset = UIEdgeInsetsMake(0, 0, 100, 0);
|
||||
UIView *headView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, 18)];
|
||||
_tableView.tableHeaderView = headView;
|
||||
_tableView.tableFooterView = [UIView new];
|
||||
|
@@ -426,6 +426,7 @@ UIKIT_EXTERN NSString * const kShieldingNotification;
|
||||
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
|
||||
_tableView.delegate = self;
|
||||
_tableView.dataSource = self;
|
||||
_tableView.contentInset = UIEdgeInsetsMake(0, 0, 100, 0);
|
||||
_tableView.tableFooterView = [UIView new];
|
||||
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
||||
_tableView.backgroundColor = [UIColor clearColor];
|
||||
|
@@ -1280,7 +1280,7 @@
|
||||
GiftReceiveInfoModel *giftNotifyInfo = [GiftReceiveInfoModel modelWithJSON:attachment.data];
|
||||
///年度飘屏是广播 在tabbar中监听
|
||||
if (giftNotifyInfo.ceremonyGift)return;
|
||||
if(giftNotifyInfo.isHomeShow == YES)return; ///房间外飘屏 在tabbar中监听
|
||||
// if(giftNotifyInfo.isHomeShow == YES)return; ///房间外飘屏 在tabbar中监听
|
||||
if(giftNotifyInfo.roomUid == self.delegate.getRoomInfo.uid)return; ///自己的房间跨房间飘屏不用走
|
||||
if (self.animationListA.count == 0 && self.isPlayOfB == NO && self.isPlayOfA == NO) {
|
||||
[self createGiftBroadcastViewAnimation:giftNotifyInfo];
|
||||
@@ -1364,7 +1364,7 @@
|
||||
#pragma mark - 福袋中 四级奖品
|
||||
- (void)receiveLuckyGiftBigPrize:(AttachmentModel *)attachment {
|
||||
if ([self isInSudGame]) {return;}
|
||||
if (attachment.second == Custom_Message_Sub_Room_Gift_LuckBag || attachment.second == Custom_Message_Sub_Room_Gift_LuckBag_Server) {
|
||||
|
||||
PIBaseAnimationViewModel * prizeModel = [PIBaseAnimationViewModel modelWithDictionary:attachment.data];
|
||||
prizeModel.type = GiftBannerType_Lucky;
|
||||
prizeModel.isInRoomVisiable = attachment.second == Custom_Message_Sub_Room_Gift_LuckBag;
|
||||
@@ -1374,7 +1374,7 @@
|
||||
}
|
||||
[self.animationListB addObject:prizeModel];
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1668,6 +1668,38 @@
|
||||
make.height.mas_equalTo(KScreenHeight);
|
||||
}];
|
||||
}
|
||||
NSString *baseFileName = @"/GiftSvga";
|
||||
NSString *filePath = [[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:baseFileName] stringByAppendingPathComponent:vggUrl];
|
||||
NSFileManager *fileManager = [NSFileManager defaultManager];
|
||||
if ([fileManager fileExistsAtPath:filePath]){
|
||||
NSData *data=[NSData dataWithContentsOfFile:filePath options:0 error:NULL];
|
||||
[self.parser parseWithData:data cacheKey:nil completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
|
||||
if (videoItem != nil) {
|
||||
CGFloat width = videoItem.videoSize.width;
|
||||
CGFloat height = videoItem.videoSize.height;
|
||||
if (width > height) {
|
||||
self.giftEffectView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
} else {//高大于宽
|
||||
CGFloat resizeH = KScreenWidth * height / width;//按照屏幕的宽度去缩放,获得高度
|
||||
if (resizeH > KScreenHeight) {//如果大于屏幕高度,填充
|
||||
self.giftEffectView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
} else {//小于屏幕高度,
|
||||
self.giftEffectView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
}
|
||||
}
|
||||
self.giftEffectView.alpha = 1;
|
||||
self.giftEffectView.loops = 1;
|
||||
self.giftEffectView.clearsAfterStop = YES;
|
||||
self.giftEffectView.videoItem = videoItem;
|
||||
[self.giftEffectView startAnimation];
|
||||
}
|
||||
} failureBlock:^(NSError * _Nonnull error) {
|
||||
self.giftEffectView.hidden = YES;
|
||||
}];
|
||||
return;
|
||||
|
||||
};
|
||||
|
||||
[self.parser parseWithURL:[NSURL URLWithString:vggUrl] completionBlock:^(SVGAVideoEntity * _Nullable videoItem) {
|
||||
if (videoItem != nil) {
|
||||
CGFloat width = videoItem.videoSize.width;
|
||||
@@ -1704,6 +1736,12 @@
|
||||
make.height.mas_equalTo(KScreenHeight);
|
||||
}];
|
||||
}
|
||||
NSString *baseFileName = @"/GiftMp4";
|
||||
NSString *filePath = [[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:baseFileName] stringByAppendingPathComponent:vapUrl];
|
||||
NSFileManager *fileManager = [NSFileManager defaultManager];
|
||||
if ([fileManager fileExistsAtPath:filePath]){
|
||||
vapUrl = filePath;
|
||||
}
|
||||
[self.vapParser parseWithURL:vapUrl completionBlock:^(NSString * _Nullable videoUrl) {
|
||||
if (videoUrl.length) {
|
||||
[self.vapGiftEffectView setMute:YES];
|
||||
@@ -1726,6 +1764,40 @@
|
||||
make.height.mas_equalTo(KScreenHeight);
|
||||
}];
|
||||
}
|
||||
|
||||
NSString *baseFileName = @"/GiftSvga";
|
||||
NSString *filePath = [[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:baseFileName] stringByAppendingPathComponent:vggUrl.absoluteString];
|
||||
NSFileManager *fileManager = [NSFileManager defaultManager];
|
||||
if ([fileManager fileExistsAtPath:filePath]){
|
||||
NSData *data=[NSData dataWithContentsOfFile:filePath options:0 error:NULL];
|
||||
[self.parser parseWithData:data cacheKey:@"" completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
|
||||
if (videoItem != nil) {
|
||||
CGFloat width = videoItem.videoSize.width;
|
||||
CGFloat height = videoItem.videoSize.height;
|
||||
if (width > height) {
|
||||
self.luckyGiftEffectView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
} else {//高大于宽
|
||||
CGFloat resizeH = KScreenWidth * height / width;//按照屏幕的宽度去缩放,获得高度
|
||||
if (resizeH > KScreenHeight) {//如果大于屏幕高度,填充
|
||||
self.luckyGiftEffectView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
} else {//小于屏幕高度,
|
||||
self.luckyGiftEffectView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
}
|
||||
}
|
||||
self.luckyGiftEffectView.alpha = 1;
|
||||
self.luckyGiftEffectView.loops = 1;
|
||||
self.luckyGiftEffectView.clearsAfterStop = YES;
|
||||
self.luckyGiftEffectView.videoItem = videoItem;
|
||||
[self.luckyGiftEffectView startAnimation];
|
||||
}
|
||||
} failureBlock:^(NSError * _Nonnull error) {
|
||||
self.luckyGiftEffectView.hidden = YES;
|
||||
}];
|
||||
return;
|
||||
|
||||
};
|
||||
|
||||
|
||||
[self.parser parseWithURL:vggUrl completionBlock:^(SVGAVideoEntity * _Nullable videoItem) {
|
||||
if (videoItem != nil) {
|
||||
CGFloat width = videoItem.videoSize.width;
|
||||
@@ -1762,6 +1834,12 @@
|
||||
make.height.mas_equalTo(KScreenHeight);
|
||||
}];
|
||||
}
|
||||
NSString *baseFileName = @"/GiftMp4";
|
||||
NSString *filePath = [[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:baseFileName] stringByAppendingPathComponent:vapUrl];
|
||||
NSFileManager *fileManager = [NSFileManager defaultManager];
|
||||
if ([fileManager fileExistsAtPath:filePath]){
|
||||
vapUrl = filePath;
|
||||
}
|
||||
[self.vapParser parseWithURL:vapUrl completionBlock:^(NSString * _Nullable videoUrl) {
|
||||
if (videoUrl.length) {
|
||||
[self.luckyVapGiftEffectView setMute:YES];
|
||||
|
@@ -1,28 +1,26 @@
|
||||
//
|
||||
// YMRoomCandyGiftView.m
|
||||
// YUMI
|
||||
// XPRoomCandyGiftView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by YUMI on 2021/12/10.
|
||||
// Created by 冯硕 on 2021/12/10.
|
||||
//
|
||||
|
||||
#import "XPRoomCandyGiftView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <SVGA.h>
|
||||
#import "XPSVGAPlayer.h"
|
||||
#import "YUMIMacroUitls.h"
|
||||
#import "ThemeColor+Room.h"
|
||||
#import "CandyTreeResultModel.h"
|
||||
#import "NSObject+MJExtension.h"
|
||||
|
||||
|
||||
@interface XPRoomCandyGiftView ()
|
||||
///动画管理类
|
||||
@property (strong, nonatomic) SVGAParser *parser;
|
||||
///糖果树特效
|
||||
@property (nonatomic,strong) XPSVGAPlayer *candyTreeView;
|
||||
@property (nonatomic,strong) SVGAImageView *candyTreeView;
|
||||
///背景图
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///容器
|
||||
@property (nonatomic,strong) UIView *titleView;
|
||||
///显示文本内容
|
||||
@property (nonatomic,strong) UILabel *titleLabel;
|
||||
@end
|
||||
@@ -30,134 +28,116 @@
|
||||
@implementation XPRoomCandyGiftView
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
[self addSubview:self.candyTreeView];
|
||||
[self addSubview:self.backImageView];
|
||||
[self.backImageView addSubview:self.titleView];
|
||||
|
||||
[self.titleView addSubview:self.titleLabel];
|
||||
[self addSubview:self.candyTreeView];
|
||||
[self addSubview:self.backImageView];
|
||||
[self addSubview:self.titleLabel];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.candyTreeView 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.width.mas_equalTo(260);
|
||||
make.height.mas_equalTo(28);
|
||||
make.top.mas_equalTo(self.backImageView).offset(23);
|
||||
make.centerX.mas_equalTo(self.backImageView);
|
||||
}];
|
||||
|
||||
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.mas_equalTo(self.titleView);
|
||||
make.centerY.mas_equalTo(self.titleView);
|
||||
}];
|
||||
[self.candyTreeView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.top.mas_equalTo(self);
|
||||
make.height.mas_equalTo(kGetScaleWidth(55));
|
||||
}];
|
||||
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.top.mas_equalTo(self.candyTreeView);
|
||||
make.height.mas_equalTo(kGetScaleWidth(55));
|
||||
}];
|
||||
|
||||
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self.backImageView);
|
||||
}];
|
||||
}
|
||||
|
||||
- (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;
|
||||
if(text.length == 0)return nil;
|
||||
NSDictionary * attribute = @{NSFontAttributeName:[UIFont systemFontOfSize:fonSize], NSForegroundColorAttributeName:color};
|
||||
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:text attributes:attribute];
|
||||
return attr;
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setCandyInfo:(NSDictionary *)candyInfo {
|
||||
if (candyInfo) {
|
||||
CandyTreeGiftInfoModel * giftInfo = [CandyTreeGiftInfoModel modelWithDictionary:candyInfo];
|
||||
NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init];
|
||||
CGFloat fontSize = self.isMaxLargeGift ? 22 : 13;
|
||||
[attribute appendAttributedString:[self createAttribute:@"厉害了! " color:[UIColor whiteColor] fontSize:fontSize]];
|
||||
[attribute appendAttributedString:[self createAttribute:giftInfo.nick color:[DJDKMIMOMColor colorWithHexString:@"#FEF23E"] fontSize:fontSize]];
|
||||
[attribute appendAttributedString:[self createAttribute:@"摘下糖果得 " color:[UIColor whiteColor] fontSize:fontSize]];
|
||||
[attribute appendAttributedString:[self createAttribute:giftInfo.prizeName color:[DJDKMIMOMColor colorWithHexString:@"#FEF23E"] fontSize:fontSize]];
|
||||
if (giftInfo.prizeNum > 1) {
|
||||
[attribute appendAttributedString:[self createAttribute:[NSString stringWithFormat:@" X%d", giftInfo.prizeNum] color:[UIColor whiteColor] fontSize:fontSize]];
|
||||
}
|
||||
|
||||
NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new];
|
||||
paragraphStyle.lineBreakMode = NSLineBreakByCharWrapping;
|
||||
paragraphStyle.lineSpacing = 4.0f;//行间距
|
||||
paragraphStyle.alignment = NSTextAlignmentCenter;
|
||||
paragraphStyle.baseWritingDirection = NSWritingDirectionLeftToRight;
|
||||
[attribute addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, attribute.length)];
|
||||
[self.candyTreeView setAttributedText:attribute forKey:@"tgs_copywriting"];
|
||||
if (self.isMaxLargeGift) {
|
||||
self.backImageView.hidden = YES;
|
||||
self.candyTreeView.hidden = NO;
|
||||
@kWeakify(self);
|
||||
NSString * anatomiser1Name = [NSString stringWithFormat:@"%@/candyTree_banner.svga", API_Image_URL];
|
||||
[self.parser parseWithURL:[NSURL URLWithString:anatomiser1Name] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
|
||||
@kStrongify(self);
|
||||
self.candyTreeView.loops = 1;
|
||||
self.candyTreeView.clearsAfterStop = NO;
|
||||
self.candyTreeView.videoItem = videoItem;
|
||||
|
||||
[self.candyTreeView startAnimation];
|
||||
} failureBlock:^(NSError * _Nonnull error) {
|
||||
|
||||
}];
|
||||
} else {
|
||||
self.backImageView.hidden = NO;
|
||||
self.candyTreeView.hidden = YES;
|
||||
self.titleLabel.attributedText = attribute;
|
||||
self.titleLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
}
|
||||
if (candyInfo) {
|
||||
CandyTreeGiftInfoModel * giftInfo = [CandyTreeGiftInfoModel modelWithDictionary:candyInfo];
|
||||
NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init];
|
||||
|
||||
if(giftInfo.nick.length > 5){
|
||||
giftInfo.nick = [NSString stringWithFormat:@"%@...",[giftInfo.nick substringToIndex:5]];
|
||||
}
|
||||
CGFloat fontSize = self.isMaxLargeGift ? 20 : 12;
|
||||
[attribute appendAttributedString:[self createAttribute:YMLocalizedString(@"XPRoomCandyGiftView0") color:[UIColor whiteColor] fontSize:fontSize]];
|
||||
[attribute appendAttributedString:[self createAttribute:giftInfo.nick color:UIColorFromRGB(0xFEF23E) fontSize:fontSize]];
|
||||
[attribute appendAttributedString:[self createAttribute:YMLocalizedString(@"XPRoomCandyGiftView1") color:[UIColor whiteColor] fontSize:fontSize]];
|
||||
[attribute appendAttributedString:[self createAttribute:giftInfo.prizeName color:UIColorFromRGB(0x00EAFF) fontSize:fontSize]];
|
||||
if (giftInfo.prizeNum > 1) {
|
||||
[attribute appendAttributedString:[self createAttribute:[NSString stringWithFormat:@" X%d", giftInfo.prizeNum] color:UIColorFromRGB(0x00EAFF) fontSize:fontSize]];
|
||||
}
|
||||
|
||||
if (self.isMaxLargeGift) {
|
||||
self.backImageView.hidden = YES;
|
||||
self.candyTreeView.hidden = NO;
|
||||
@kWeakify(self);
|
||||
NSString * anatomiser1Name = [NSString stringWithFormat:@"%@/candyTree_banner.svga", API_Image_URL];
|
||||
[self.parser parseWithURL:[NSURL URLWithString:anatomiser1Name] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
|
||||
@kStrongify(self);
|
||||
self.candyTreeView.loops = 1;
|
||||
self.candyTreeView.clearsAfterStop = NO;
|
||||
self.candyTreeView.videoItem = videoItem;
|
||||
[self.candyTreeView setAttributedText:attribute forKey:@"noble_text_tx"];
|
||||
[self.candyTreeView startAnimation];
|
||||
} failureBlock:^(NSError * _Nonnull error) {
|
||||
|
||||
}];
|
||||
} else {
|
||||
self.backImageView.hidden = NO;
|
||||
self.candyTreeView.hidden = YES;
|
||||
self.titleLabel.attributedText = attribute;
|
||||
self.titleLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (XPSVGAPlayer *)candyTreeView {
|
||||
if (!_candyTreeView) {
|
||||
_candyTreeView = [[XPSVGAPlayer alloc]init];
|
||||
_candyTreeView.backgroundColor = [UIColor clearColor];
|
||||
_candyTreeView.userInteractionEnabled = NO;
|
||||
}
|
||||
return _candyTreeView;
|
||||
- (SVGAImageView *)candyTreeView {
|
||||
if (!_candyTreeView) {
|
||||
_candyTreeView = [[SVGAImageView alloc]init];
|
||||
_candyTreeView.backgroundColor = [UIColor clearColor];
|
||||
_candyTreeView.userInteractionEnabled = NO;
|
||||
}
|
||||
return _candyTreeView;
|
||||
}
|
||||
|
||||
- (SVGAParser *)parser {
|
||||
if (!_parser) {
|
||||
_parser = [[SVGAParser alloc]init];
|
||||
}
|
||||
return _parser;
|
||||
}
|
||||
|
||||
- (UIView *)titleView {
|
||||
if (!_titleView) {
|
||||
_titleView = [[UIView alloc] init];
|
||||
_titleView.backgroundColor = [UIColor clearColor];
|
||||
}
|
||||
return _titleView;
|
||||
if (!_parser) {
|
||||
_parser = [[SVGAParser alloc]init];
|
||||
}
|
||||
return _parser;
|
||||
}
|
||||
|
||||
- (UIImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.userInteractionEnabled = YES;
|
||||
_backImageView.image = [UIImage imageNamed:@"room_candytree_large_gift_bg"];
|
||||
}
|
||||
return _backImageView;
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.userInteractionEnabled = YES;
|
||||
_backImageView.image = [UIImage imageNamed:@"room_candytree_large_gift_bg"];
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)titleLabel {
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] init];
|
||||
_titleLabel.numberOfLines = 2;
|
||||
}
|
||||
return _titleLabel;
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] init];
|
||||
_titleLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _titleLabel;
|
||||
}
|
||||
|
||||
@end
|
||||
|
@@ -796,7 +796,7 @@
|
||||
#pragma mark - 分享房间
|
||||
- (XPMessageInfoModel *)createShareOrAttentionRoomAttribute:(AttachmentModel *)attachment sendInfo:(XPMessageRemoteExtModel *)sendInfo uid:(NSString *)uid messageInfo:(XPMessageInfoModel *)messageInfo{
|
||||
NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init];
|
||||
NSDictionary *data = attachment.data[@"data"];
|
||||
NSDictionary *data = attachment.data;
|
||||
NSString *nick = [NSString stringWithFormat:@"%@",data[@"nick"]];
|
||||
[attribute appendAttributedString:[self createTextAttribute:nick color:[DJDKMIMOMColor messageNickColor] font:kRoomMessageDefalutFont]];
|
||||
NSString *tipString = @"";
|
||||
|
@@ -206,7 +206,9 @@
|
||||
NSString * uid = [AccountInfoStorage instance].getUid;
|
||||
[Api closeRoomGiftValue:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||
[[self getView] closeRoomGiftValueSuccess];
|
||||
}] uid:uid roomUid:roomUid];
|
||||
}fail:^(NSInteger code, NSString * _Nullable msg) {
|
||||
NSLog(@"%@",msg);
|
||||
}] uid:uid roomUid:roomUid];
|
||||
}
|
||||
|
||||
|
||||
|
@@ -10,7 +10,8 @@
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPWeekStarRankUserModel : NSObject
|
||||
|
||||
///0:冠名,1、神豪
|
||||
@property(nonatomic,assign) int type;
|
||||
///头像
|
||||
@property (nonatomic, copy) NSString *avatar;
|
||||
///榜单值
|
||||
|
@@ -298,7 +298,8 @@
|
||||
}
|
||||
|
||||
- (void)setIsShowFirstRecharge:(BOOL)isShowFirstRecharge {
|
||||
self.firstRechargeButton.hidden = !isShowFirstRecharge;
|
||||
// self.firstRechargeButton.hidden = !isShowFirstRecharge;
|
||||
self.firstRechargeButton.hidden = YES;
|
||||
}
|
||||
|
||||
- (void)setType:(GiftSegmentType)type {
|
||||
|
@@ -47,6 +47,8 @@ static NSString *kHideGiftViewInteractDot = @"kHideGiftViewInteractDot";//是否
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
self.titleArray = [[NSMutableArray alloc]initWithArray:@[YMLocalizedString(@"XPGiftHeadTypeView4")]];
|
||||
self.cycleScrollView.imageURLStringsGroup = @[@"room_gift_noble_entrance"];
|
||||
[self addSubview:self.giftButton];
|
||||
// [self addSubview:self.devideView];
|
||||
// [self addSubview:self.interactButton];
|
||||
@@ -163,10 +165,10 @@ static NSString *kHideGiftViewInteractDot = @"kHideGiftViewInteractDot";//是否
|
||||
#pragma mark - setter
|
||||
- (void)setIsShowFirstRecharge:(BOOL)isShowFirstRecharge {
|
||||
if (isShowFirstRecharge) {
|
||||
self.titleArray = [NSMutableArray arrayWithObjects:YMLocalizedString(@"XPGiftHeadTypeView1"), nil];
|
||||
self.cycleScrollView.imageURLStringsGroup = @[@"gift_first_recharge_bg"];
|
||||
} else {
|
||||
|
||||
[self.titleArray addObject:YMLocalizedString(@"XPGiftHeadTypeView1")];
|
||||
NSMutableArray *imageList = [[NSMutableArray alloc]initWithArray:self.cycleScrollView.imageURLStringsGroup];
|
||||
[imageList addObject:@"gift_first_recharge_bg"];
|
||||
self.cycleScrollView.imageURLStringsGroup = imageList;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -40,6 +40,8 @@ static NSString *kSendGiftViewHidePunishNewIcon = @"kSendGiftViewHidePunishNewIc
|
||||
@property (nonatomic,strong) UIButton *luckyGiftButton;
|
||||
///周星礼物
|
||||
@property (nonatomic, strong) UIButton *weekStarButton;
|
||||
///贵族礼物
|
||||
@property(nonatomic,strong) UIButton *nobleGiftButton;
|
||||
///涂鸦礼物
|
||||
@property (nonatomic,strong) UIButton *graffitiButton;
|
||||
///惩罚礼物
|
||||
@@ -107,6 +109,7 @@ static NSString *kSendGiftViewHidePunishNewIcon = @"kSendGiftViewHidePunishNewIc
|
||||
self.graffitiButton.selected = NO;
|
||||
self.anchorButton.selected = NO;
|
||||
self.punishButton.selected = NO;
|
||||
self.nobleGiftButton.selected = NO;
|
||||
sender.selected = !sender.selected;
|
||||
self.segmentType = sender.tag;
|
||||
}
|
||||
@@ -172,6 +175,7 @@ static NSString *kSendGiftViewHidePunishNewIcon = @"kSendGiftViewHidePunishNewIc
|
||||
[self.segmentStackView addArrangedSubview:self.normalGiftButton];
|
||||
[self.segmentStackView addArrangedSubview:self.luckyGiftButton];
|
||||
[self.segmentStackView addArrangedSubview:self.weekStarButton];
|
||||
[self.segmentStackView addArrangedSubview:self.nobleGiftButton];
|
||||
[self.segmentStackView addArrangedSubview:self.anchorButton];
|
||||
///礼物
|
||||
[self.giftStackView addArrangedSubview:self.giftcollectionView];
|
||||
@@ -358,6 +362,9 @@ static NSString *kSendGiftViewHidePunishNewIcon = @"kSendGiftViewHidePunishNewIc
|
||||
#pragma mark - XPGiftWeekStarCollectionViewCellDelegate
|
||||
- (void)xPGiftWeekStarCollectionViewCell:(XPGiftWeekStarCollectionViewCell *)view didSelectGift:(GiftInfoModel *)giftInfo {
|
||||
[self dealSelectGift:giftInfo];
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPGiftInfoView:didClickItem:type:)]) {
|
||||
[self.delegate xPGiftInfoView:self didClickItem:giftInfo type:self.segmentType];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
@@ -777,5 +784,17 @@ static NSString *kSendGiftViewHidePunishNewIcon = @"kSendGiftViewHidePunishNewIc
|
||||
return _segmentBgView;
|
||||
}
|
||||
|
||||
|
||||
- (UIButton *)nobleGiftButton{
|
||||
if(!_nobleGiftButton){
|
||||
_nobleGiftButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_nobleGiftButton setTitle:YMLocalizedString(@"XPGiftInfoView9") forState:UIControlStateNormal];
|
||||
[_nobleGiftButton setTitleColor:[DJDKMIMOMColor giftSegmentSelectTitleColor] forState:UIControlStateSelected];
|
||||
[_nobleGiftButton setTitleColor:[DJDKMIMOMColor giftSegmentNormalTitleColor] forState:UIControlStateNormal];
|
||||
_nobleGiftButton.titleLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightSemibold];
|
||||
_nobleGiftButton.tag = GiftSegmentType_Noble;
|
||||
_nobleGiftButton.selected = NO;
|
||||
[_nobleGiftButton addTarget:self action:@selector(didClickGiftSegmentAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _nobleGiftButton;
|
||||
}
|
||||
@end
|
||||
|
@@ -64,6 +64,7 @@
|
||||
}
|
||||
[attribute appendAttributedString:[self createTextAttribute:[NSString stringWithFormat:@"%@ " , nick] color:[DJDKMIMOMColor colorWithHexString:@"#FFE785"]]];
|
||||
[attribute appendAttributedString:[self createTextAttribute:[NSString stringWithFormat:YMLocalizedString(@"XPGiftLuckyGiftBroadcastCell1"), giftInfo.luckyBagName] color:[UIColor whiteColor]]];
|
||||
[attribute addAttributes:@{NSForegroundColorAttributeName:[DJDKMIMOMColor colorWithHexString:@"#FFE785"]} range:[attribute.string rangeOfString:giftInfo.luckyBagName]];
|
||||
[attribute appendAttributedString:[self createTextAttribute:[NSString stringWithFormat:@"%@ " , _giftInfo.giftName] color:[DJDKMIMOMColor colorWithHexString:@"#FFE785"]]];
|
||||
self.titleLabel.attributedText = attribute;
|
||||
}
|
||||
@@ -154,7 +155,9 @@
|
||||
if (_records.count > 0) {
|
||||
NSMutableArray * array = [NSMutableArray array];
|
||||
for (GiftLuckyBroadcastModel * item in _records) {
|
||||
[array addObject:item.giftName];
|
||||
if(item.nick.length > 0){
|
||||
[array addObject:item.nick];
|
||||
}
|
||||
}
|
||||
if (array.count > 0) {
|
||||
self.cycleScrollView.imageURLStringsGroup = array;
|
||||
|
@@ -6,9 +6,9 @@
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "GiftInfoModel.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class GiftTwelveStarFirstModel, XPGiftTwelveStarBroadcastView;
|
||||
@class XPGiftTwelveStarBroadcastView;
|
||||
|
||||
@protocol XPGiftTwelveStarBroadcastViewDelegate <NSObject>
|
||||
|
||||
@@ -17,11 +17,21 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPGiftTwelveStarBroadcastView : UIView
|
||||
|
||||
@property (nonatomic, strong) GiftTwelveStarFirstModel *giftInfo;
|
||||
|
||||
@property (nonatomic, strong) GiftInfoModel *giftInfo;
|
||||
@property (nonatomic,strong) NSMutableArray *records;
|
||||
///代理
|
||||
@property (nonatomic,weak) id<XPGiftTwelveStarBroadcastViewDelegate> delegate;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@interface XPGiftTwelveStarBroadcastCell : UICollectionViewCell
|
||||
@property(nonatomic,strong) XPWeekStarRankUserModel *userModel;
|
||||
@property(nonatomic,strong) UIButton *skipBtn;
|
||||
@end
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@@ -15,28 +15,14 @@
|
||||
#import "XPWebViewController.h"
|
||||
#import "YUMIHtmlUrl.h"
|
||||
#import "NetImageView.h"
|
||||
#import <SDCycleScrollView.h>
|
||||
///Model
|
||||
#import "GiftTwelveStarFirstModel.h"
|
||||
|
||||
@interface XPGiftTwelveStarBroadcastView()
|
||||
@interface XPGiftTwelveStarBroadcastView()<SDCycleScrollViewDelegate>
|
||||
|
||||
@property (nonatomic, strong) UIView *mainView;
|
||||
///背景
|
||||
@property (nonatomic, strong) UIImageView *bgImageView;
|
||||
///活动入口
|
||||
@property (nonatomic, strong) UIButton *weekStarButton;
|
||||
///魅力头像
|
||||
@property (nonatomic, strong) NetImageView *iconImageView;
|
||||
///贡献头像
|
||||
@property (nonatomic, strong) NetImageView *avatarImageView;
|
||||
///魅力标题
|
||||
@property (nonatomic, strong) UILabel *charmLabel;
|
||||
///贡献标题
|
||||
@property (nonatomic, strong) UILabel *contributeLabel;
|
||||
|
||||
@property (nonatomic, strong) UIImageView *sexImageView;
|
||||
|
||||
@property (nonatomic, strong) UILabel *desLabel;
|
||||
///轮播
|
||||
@property (nonatomic, strong) SDCycleScrollView *cycleScrollView;
|
||||
|
||||
@end
|
||||
|
||||
@@ -53,196 +39,203 @@
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
[self addSubview:self.bgImageView];
|
||||
[self addSubview:self.mainView];
|
||||
[self.mainView addSubview:self.weekStarButton];
|
||||
[self.mainView addSubview:self.iconImageView];
|
||||
[self.mainView addSubview:self.avatarImageView];
|
||||
[self.mainView addSubview:self.charmLabel];
|
||||
[self.mainView addSubview:self.sexImageView];
|
||||
[self.mainView addSubview:self.contributeLabel];
|
||||
[self.mainView addSubview:self.desLabel];
|
||||
|
||||
self.iconImageView.hidden = YES;
|
||||
self.avatarImageView.hidden = YES;
|
||||
self.charmLabel.hidden = YES;
|
||||
self.contributeLabel.hidden = YES;
|
||||
self.sexImageView.hidden = YES;
|
||||
[self addSubview:self.cycleScrollView];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.mas_equalTo(self);
|
||||
make.width.mas_equalTo(355);
|
||||
make.top.bottom.mas_equalTo(self);
|
||||
}];
|
||||
[self.mainView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.mas_equalTo(self.bgImageView);
|
||||
make.height.mas_equalTo(36);
|
||||
make.bottom.mas_equalTo(0);
|
||||
}];
|
||||
[self.iconImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.mainView).mas_offset(33);
|
||||
make.width.height.mas_equalTo(30);
|
||||
make.centerY.mas_equalTo(self.mainView);
|
||||
}];
|
||||
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.iconImageView.mas_right).mas_offset(8);
|
||||
make.width.height.mas_equalTo(24);
|
||||
make.centerY.mas_equalTo(self.mainView);
|
||||
}];
|
||||
[self.charmLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(14);
|
||||
make.bottom.mas_equalTo(self.avatarImageView.mas_centerY);
|
||||
make.left.mas_equalTo(self.avatarImageView.mas_right).mas_offset(8);
|
||||
}];
|
||||
|
||||
[self.contributeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(14);
|
||||
make.top.mas_equalTo(self.charmLabel.mas_bottom);
|
||||
make.left.mas_equalTo(self.charmLabel);
|
||||
}];
|
||||
[self.sexImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.height.mas_equalTo(10);
|
||||
make.left.mas_equalTo(self.contributeLabel.mas_right).mas_offset(2);
|
||||
make.centerY.mas_equalTo(self.contributeLabel);
|
||||
}];
|
||||
[self.weekStarButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(18);
|
||||
make.centerY.mas_equalTo(self.mainView);
|
||||
make.right.mas_equalTo(self.mainView).mas_offset(-25);
|
||||
make.width.mas_equalTo(64);
|
||||
}];
|
||||
[self.desLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerY.mas_equalTo(self.mainView);
|
||||
make.left.mas_equalTo(self.mainView).mas_offset(54);
|
||||
}];
|
||||
[self.cycleScrollView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(kGetScaleWidth(10));
|
||||
make.right.mas_equalTo(-kGetScaleWidth(10));
|
||||
make.top.bottom.mas_equalTo(self);
|
||||
}];
|
||||
}
|
||||
-(void)setGiftInfo:(GiftInfoModel *)giftInfo{
|
||||
_giftInfo = giftInfo;
|
||||
if (_giftInfo.firstCharmRankUser) {
|
||||
_giftInfo.firstCharmRankUser.type = 0;
|
||||
[self.records addObject:_giftInfo.firstCharmRankUser];
|
||||
} else {
|
||||
XPWeekStarRankUserModel *rankModel = [XPWeekStarRankUserModel new];
|
||||
rankModel.type = 0;
|
||||
rankModel.avatar = @"common_empty_avatar";
|
||||
rankModel.nick = YMLocalizedString(@"XPGiftWeekStarBroadcastView0");
|
||||
[self.records addObject:rankModel];
|
||||
}
|
||||
|
||||
if (_giftInfo.firstLevelRankUser) {
|
||||
_giftInfo.firstLevelRankUser.type = 1;
|
||||
[self.records addObject:_giftInfo.firstLevelRankUser];
|
||||
} else {
|
||||
XPWeekStarRankUserModel *rankModel = [XPWeekStarRankUserModel new];
|
||||
rankModel.type = 1;
|
||||
rankModel.avatar = @"common_empty_avatar";
|
||||
rankModel.nick = YMLocalizedString(@"XPGiftWeekStarBroadcastView0");
|
||||
[self.records addObject:rankModel];
|
||||
}
|
||||
if (_records.count > 0) {
|
||||
NSMutableArray * array = [NSMutableArray array];
|
||||
for (XPWeekStarRankUserModel * item in _records) {
|
||||
[array addObject:item.avatar];
|
||||
}
|
||||
if (array.count > 0) {
|
||||
self.cycleScrollView.imageURLStringsGroup = array;
|
||||
[self.cycleScrollView autoScroll];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - action
|
||||
- (void)playButtonAction:(UIButton *)sender {
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPGiftTwelveStarBroadcastView:didClickDetail:)]) {
|
||||
[self.delegate xPGiftTwelveStarBroadcastView:self didClickDetail:sender];
|
||||
}
|
||||
-(void)skipBtnAction:(UIButton *)sender{
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPGiftTwelveStarBroadcastView:didClickDetail:)]) {
|
||||
[self.delegate xPGiftTwelveStarBroadcastView:self didClickDetail:sender];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setGiftInfo:(GiftTwelveStarFirstModel *)giftInfo {
|
||||
if (giftInfo.nick) {
|
||||
self.iconImageView.imageUrl = giftInfo.markUrl;
|
||||
self.avatarImageView.imageUrl = giftInfo.avatar;
|
||||
self.charmLabel.text = [NSString stringWithFormat:YMLocalizedString(@"XPGiftTwelveStarBroadcastView0"), giftInfo.twelveStarName];
|
||||
self.contributeLabel.text = giftInfo.nick;
|
||||
NSString *imageName = giftInfo.gender == 1 ? @"common_sex_male" : @"common_sex_female";
|
||||
self.sexImageView.image = [UIImage imageNamed:imageName];
|
||||
self.iconImageView.hidden = NO;
|
||||
self.avatarImageView.hidden = NO;
|
||||
self.charmLabel.hidden = NO;
|
||||
self.contributeLabel.hidden = NO;
|
||||
self.sexImageView.hidden = NO;
|
||||
self.desLabel.hidden = YES;
|
||||
} else {
|
||||
self.iconImageView.hidden = YES;
|
||||
self.avatarImageView.hidden = YES;
|
||||
self.charmLabel.hidden = YES;
|
||||
self.contributeLabel.hidden = YES;
|
||||
self.sexImageView.hidden = YES;
|
||||
self.desLabel.hidden = NO;
|
||||
}
|
||||
#pragma mark - SDCycleScrollViewDelegate
|
||||
- (Class)customCollectionViewCellClassForCycleScrollView:(SDCycleScrollView *)view {
|
||||
return XPGiftTwelveStarBroadcastCell.class;
|
||||
}
|
||||
|
||||
- (UIView *)mainView {
|
||||
if (!_mainView) {
|
||||
_mainView = [[UIView alloc] init];
|
||||
}
|
||||
return _mainView;
|
||||
}
|
||||
- (void)setupCustomCell:(UICollectionViewCell *)cell forIndex:(NSInteger)index cycleScrollView:(SDCycleScrollView *)view {
|
||||
XPGiftTwelveStarBroadcastCell *myCell = (XPGiftTwelveStarBroadcastCell *)cell;
|
||||
XPWeekStarRankUserModel * info = [self.records safeObjectAtIndex1:index];
|
||||
[myCell.skipBtn addTarget:self action:@selector(skipBtnAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
myCell.userModel = info;
|
||||
|
||||
- (UIImageView *)bgImageView {
|
||||
if (!_bgImageView) {
|
||||
_bgImageView = [[UIImageView alloc] init];
|
||||
_bgImageView.image = [UIImage imageNamed:@"gift_constellationBanner_bg"];
|
||||
_bgImageView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
_bgImageView.userInteractionEnabled = YES;
|
||||
}
|
||||
return _bgImageView;
|
||||
}
|
||||
|
||||
- (NetImageView *)iconImageView {
|
||||
if (!_iconImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.imageType = ImageTypeUserIcon;
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_iconImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_iconImageView.userInteractionEnabled = YES;
|
||||
}
|
||||
return _iconImageView;
|
||||
- (SDCycleScrollView *)cycleScrollView {
|
||||
if (!_cycleScrollView) {
|
||||
_cycleScrollView = [[SDCycleScrollView alloc] init];
|
||||
_cycleScrollView.backgroundColor = [UIColor clearColor];
|
||||
_cycleScrollView.layer.masksToBounds = YES;
|
||||
_cycleScrollView.delegate = self;
|
||||
_cycleScrollView.showPageControl = NO;
|
||||
_cycleScrollView.autoScrollTimeInterval = 5;
|
||||
[_cycleScrollView disableScrollGesture];
|
||||
}
|
||||
return _cycleScrollView;
|
||||
}
|
||||
|
||||
- (UILabel *)charmLabel {
|
||||
if (!_charmLabel) {
|
||||
UILabel *label = [[UILabel alloc] init];
|
||||
label.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium];
|
||||
label.textColor = UIColorFromRGB(0xFDE19B);
|
||||
label.text = YMLocalizedString(@"XPGiftTwelveStarBroadcastView1");
|
||||
_charmLabel = label;
|
||||
}
|
||||
return _charmLabel;
|
||||
- (NSMutableArray *)records{
|
||||
if(!_records){
|
||||
_records = [NSMutableArray array];
|
||||
}
|
||||
return _records;
|
||||
}
|
||||
@end
|
||||
|
||||
|
||||
@interface XPGiftTwelveStarBroadcastCell ()
|
||||
@property(nonatomic,strong) UIImageView *bgImageView;
|
||||
@property(nonatomic,strong) NetImageView *headView;
|
||||
@property(nonatomic,strong) UILabel *nameView;
|
||||
|
||||
@property(nonatomic,strong) UIImageView *arrowView;
|
||||
@end
|
||||
|
||||
@implementation XPGiftTwelveStarBroadcastCell
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
[self.contentView addSubview:self.bgImageView];
|
||||
[self.contentView addSubview:self.headView];
|
||||
[self.contentView addSubview:self.nameView];
|
||||
[self.contentView addSubview:self.skipBtn];
|
||||
[self.contentView addSubview:self.arrowView];
|
||||
}
|
||||
-(void)setUserModel:(XPWeekStarRankUserModel *)userModel{
|
||||
_userModel = userModel;
|
||||
_bgImageView.image = _userModel.type == 0 ? kImage(@"gift_twelve_star_Banner_naming_bg"):kImage(@"gift_twelve_star_Banner_rich_bg");
|
||||
NSString *name = _userModel.nick;
|
||||
_nameView.text = name;
|
||||
if(_userModel.type == 1){
|
||||
[self.headView mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(kGetScaleWidth(205));
|
||||
}];
|
||||
|
||||
}else{
|
||||
[self.headView mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(kGetScaleWidth(194));
|
||||
}];
|
||||
}
|
||||
_headView.imageUrl = _userModel.avatar;
|
||||
}
|
||||
- (void)initSubViewConstraints {
|
||||
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self.contentView);
|
||||
}];
|
||||
[self.headView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(kGetScaleWidth(194));
|
||||
make.width.height.mas_equalTo(kGetScaleWidth(22));
|
||||
make.centerY.equalTo(self.contentView);
|
||||
}];
|
||||
[self.arrowView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.height.mas_equalTo(kGetScaleWidth(8));
|
||||
make.trailing.mas_equalTo(-kGetScaleWidth(10));
|
||||
make.centerY.equalTo(self.contentView);
|
||||
}];
|
||||
[self.skipBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.trailing.equalTo(self.arrowView.mas_leading).mas_offset(-kGetScaleWidth(2));
|
||||
make.centerY.equalTo(self.contentView);
|
||||
make.width.mas_equalTo(kGetScaleWidth(32));
|
||||
make.height.mas_equalTo(kGetScaleWidth(14));
|
||||
}];
|
||||
[self.nameView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.equalTo(self.headView.mas_trailing).mas_offset(kGetScaleWidth(4));
|
||||
make.centerY.equalTo(self.contentView);
|
||||
make.trailing.equalTo(self.skipBtn.mas_leading).mas_offset(-kGetScaleWidth(2));
|
||||
}];
|
||||
}
|
||||
|
||||
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (UIImageView *)bgImageView{
|
||||
if(!_bgImageView){
|
||||
_bgImageView = [UIImageView new];
|
||||
_bgImageView.userInteractionEnabled = YES;
|
||||
}
|
||||
return _bgImageView;
|
||||
}
|
||||
|
||||
- (NetImageView *)headView{
|
||||
if(!_headView){
|
||||
NetImageConfig *config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = kImage(@"common_empty_avatar");
|
||||
_headView = [[NetImageView alloc]initWithConfig:config];
|
||||
_headView.layer.cornerRadius = kGetScaleWidth(22)/2;
|
||||
_headView.layer.masksToBounds = YES;
|
||||
}
|
||||
return _headView;
|
||||
}
|
||||
- (UILabel *)nameView{
|
||||
if(!_nameView){
|
||||
|
||||
_nameView = [UILabel labelInitWithText:@"" font:kFontMedium(12) textColor:[UIColor whiteColor]];
|
||||
}
|
||||
return _nameView;
|
||||
}
|
||||
- (UIButton *)skipBtn{
|
||||
if(!_skipBtn){
|
||||
_skipBtn = [UIButton new];
|
||||
[_skipBtn setTitle:YMLocalizedString(@"XPGiftLuckyGiftBroadcastCell6") forState:UIControlStateNormal];
|
||||
_skipBtn.titleLabel.font = kFontRegular(10);
|
||||
[_skipBtn setTitleColor:UIColorFromRGB(0xFFE694) forState:UIControlStateNormal];
|
||||
}
|
||||
return _skipBtn;
|
||||
}
|
||||
- (UIImageView *)arrowView{
|
||||
if(!_arrowView){
|
||||
_arrowView = [UIImageView new];
|
||||
_arrowView.image = kImage(@"gift_twelve_star_Banner_arrow");
|
||||
}
|
||||
return _arrowView;
|
||||
}
|
||||
|
||||
- (NetImageView *)avatarImageView {
|
||||
if (!_avatarImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.imageType = ImageTypeUserIcon;
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_avatarImageView.layer.masksToBounds = YES;
|
||||
_avatarImageView.layer.cornerRadius = 12;
|
||||
_avatarImageView.userInteractionEnabled = YES;
|
||||
}
|
||||
return _avatarImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)contributeLabel {
|
||||
if (!_contributeLabel) {
|
||||
UILabel *label = [[UILabel alloc] init];
|
||||
label.font = [UIFont systemFontOfSize:10];
|
||||
label.textColor = [UIColor whiteColor];
|
||||
label.text = YMLocalizedString(@"XPGiftTwelveStarBroadcastView2");
|
||||
_contributeLabel = label;
|
||||
}
|
||||
return _contributeLabel;
|
||||
}
|
||||
|
||||
- (UIButton *)weekStarButton {
|
||||
if (!_weekStarButton) {
|
||||
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
button.backgroundColor = UIColorRGBAlpha(0x000000, 0.36);
|
||||
[button addTarget:self action:@selector(playButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
[button setTitle:@"活动详情 >" forState:UIControlStateNormal];
|
||||
[button setTitleColor:UIColorFromRGB(0x00EEFF) forState:UIControlStateNormal];
|
||||
button.titleLabel.font = [UIFont systemFontOfSize:10];
|
||||
button.layer.masksToBounds = YES;
|
||||
button.layer.cornerRadius = 9;
|
||||
_weekStarButton = button;
|
||||
}
|
||||
return _weekStarButton;
|
||||
}
|
||||
|
||||
- (UIImageView *)sexImageView {
|
||||
if (!_sexImageView) {
|
||||
_sexImageView = [[UIImageView alloc] init];
|
||||
}
|
||||
return _sexImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)desLabel {
|
||||
if (!_desLabel) {
|
||||
_desLabel = [[UILabel alloc] init];
|
||||
_desLabel.text = @"星座物语,限定开启星座月!";
|
||||
_desLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
|
||||
_desLabel.textColor = UIColorFromRGB(0xFDE19B);
|
||||
}
|
||||
return _desLabel;
|
||||
}
|
||||
|
||||
@end
|
||||
|
@@ -1,28 +0,0 @@
|
||||
//
|
||||
// YMGiftWeekStarBroadcastView.h
|
||||
// YUMI
|
||||
//
|
||||
// Created by YUMI on 2022/10/8.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "GiftInfoModel.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@protocol XPGiftWeekStarBroadcastViewDelegate <NSObject>
|
||||
|
||||
///点击了周星榜入口
|
||||
- (void)xPGiftWeekStarBroadcastViewWeekStarClick;
|
||||
|
||||
@end
|
||||
|
||||
@interface XPGiftWeekStarBroadcastView : UIView
|
||||
|
||||
@property (nonatomic, weak) id<XPGiftWeekStarBroadcastViewDelegate> delegate;
|
||||
|
||||
@property (nonatomic, strong) GiftInfoModel *giftInfo;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -1,261 +0,0 @@
|
||||
//
|
||||
// YMGiftWeekStarBroadcastView.m
|
||||
// YUMI
|
||||
//
|
||||
// Created by YUMI on 2022/10/8.
|
||||
//
|
||||
|
||||
#import "XPGiftWeekStarBroadcastView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
#import "DJDKMIMOMColor.h"
|
||||
#import "NetImageView.h"
|
||||
|
||||
@interface XPGiftWeekStarBroadcastView()
|
||||
|
||||
///背景
|
||||
@property (nonatomic, strong) UIImageView *bgImageView;
|
||||
///周星榜入口
|
||||
@property (nonatomic, strong) UIButton *weekStarButton;
|
||||
///魅力头像
|
||||
@property (nonatomic, strong) NetImageView *charmImageView;
|
||||
///贡献头像
|
||||
@property (nonatomic, strong) NetImageView *contributeImageView;
|
||||
///魅力标题
|
||||
@property (nonatomic, strong) UILabel *charmLabel;
|
||||
///贡献标题
|
||||
@property (nonatomic, strong) UILabel *contributeLabel;
|
||||
///魅力昵称背景
|
||||
@property (nonatomic, strong) UIView *charmBgView;
|
||||
///魅力昵称
|
||||
@property (nonatomic, strong) UILabel *charmNickLabel;
|
||||
///贡献昵称背景
|
||||
@property (nonatomic, strong) UIView *contributeBgView;
|
||||
///贡献昵称
|
||||
@property (nonatomic, strong) UILabel *contributeNickLabel;
|
||||
|
||||
@end
|
||||
|
||||
@implementation XPGiftWeekStarBroadcastView
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
[self addSubview:self.bgImageView];
|
||||
[self addSubview:self.weekStarButton];
|
||||
[self addSubview:self.charmImageView];
|
||||
[self addSubview:self.charmLabel];
|
||||
[self addSubview:self.charmBgView];
|
||||
[self addSubview:self.charmNickLabel];
|
||||
[self addSubview:self.contributeImageView];
|
||||
[self addSubview:self.contributeLabel];
|
||||
[self addSubview:self.contributeBgView];
|
||||
[self addSubview:self.contributeNickLabel];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(0);
|
||||
make.left.right.mas_equalTo(self).inset(10);
|
||||
make.height.mas_equalTo(44);
|
||||
}];
|
||||
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.bgImageView).mas_offset(10);
|
||||
make.width.height.mas_equalTo(30);
|
||||
make.centerY.mas_equalTo(self.bgImageView);
|
||||
}];
|
||||
[self.charmLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.charmImageView);
|
||||
make.height.mas_equalTo(12);
|
||||
make.left.mas_equalTo(self.charmImageView.mas_right).mas_offset(12);
|
||||
}];
|
||||
[self.charmBgView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerY.mas_equalTo(self.charmNickLabel);
|
||||
make.height.mas_equalTo(16);
|
||||
make.left.right.mas_equalTo(self.charmNickLabel).inset(-6);
|
||||
}];
|
||||
[self.charmNickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.charmLabel.mas_bottom).mas_offset(6);
|
||||
make.height.mas_equalTo(12);
|
||||
make.left.mas_equalTo(self.charmLabel);
|
||||
}];
|
||||
|
||||
[self.contributeImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.charmLabel.mas_right).mas_offset(24);
|
||||
make.width.height.mas_equalTo(30);
|
||||
make.centerY.mas_equalTo(self.bgImageView);
|
||||
}];
|
||||
[self.contributeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.contributeImageView);
|
||||
make.height.mas_equalTo(12);
|
||||
make.left.mas_equalTo(self.contributeImageView.mas_right).mas_offset(12);
|
||||
}];
|
||||
[self.contributeBgView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerY.mas_equalTo(self.contributeNickLabel);
|
||||
make.height.mas_equalTo(16);
|
||||
make.left.right.mas_equalTo(self.contributeNickLabel).inset(-6);
|
||||
}];
|
||||
[self.contributeNickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.contributeLabel.mas_bottom).mas_offset(6);
|
||||
make.height.mas_equalTo(12);
|
||||
make.left.mas_equalTo(self.contributeLabel);
|
||||
}];
|
||||
[self.weekStarButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(30);
|
||||
make.centerY.mas_equalTo(self.bgImageView);
|
||||
make.right.mas_equalTo(self.bgImageView).mas_offset(-7);
|
||||
make.width.mas_equalTo(38);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - action
|
||||
- (void)playButtonAction:(UIButton *)sender {
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPGiftWeekStarBroadcastViewWeekStarClick)]) {
|
||||
[self.delegate xPGiftWeekStarBroadcastViewWeekStarClick];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setGiftInfo:(GiftInfoModel *)giftInfo {
|
||||
if (giftInfo.firstCharmRankUser) {
|
||||
self.charmImageView.imageUrl = giftInfo.firstCharmRankUser.avatar;
|
||||
NSString * nick = giftInfo.firstCharmRankUser.nick;
|
||||
if (nick.length > 8) {
|
||||
nick = [nick substringFromIndex:8];
|
||||
}
|
||||
self.charmNickLabel.text = nick;
|
||||
} else {
|
||||
self.charmImageView.image = [UIImageConstant defaultEmptyAvatarPlaceholder];
|
||||
self.charmNickLabel.text = YMLocalizedString(@"XPGiftWeekStarBroadcastView0");
|
||||
}
|
||||
|
||||
if (giftInfo.firstLevelRankUser) {
|
||||
self.contributeImageView.imageUrl = giftInfo.firstLevelRankUser.avatar;
|
||||
NSString * nick = giftInfo.firstLevelRankUser.nick;
|
||||
if (nick.length > 8) {
|
||||
nick = [nick substringFromIndex:8];
|
||||
}
|
||||
self.contributeNickLabel.text = nick;
|
||||
} else {
|
||||
self.contributeImageView.image = [UIImageConstant defaultEmptyAvatarPlaceholder];
|
||||
self.contributeNickLabel.text = YMLocalizedString(@"XPGiftWeekStarBroadcastView1");
|
||||
}
|
||||
}
|
||||
|
||||
- (UIImageView *)bgImageView {
|
||||
if (!_bgImageView) {
|
||||
_bgImageView = [[UIImageView alloc] init];
|
||||
_bgImageView.image = [UIImage imageNamed:@"gift_weekStar_background"];
|
||||
_bgImageView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
}
|
||||
return _bgImageView;
|
||||
}
|
||||
|
||||
- (NetImageView *)charmImageView {
|
||||
if (!_charmImageView) {
|
||||
NetImageConfig *config = [[NetImageConfig alloc] init];
|
||||
config.placeHolder = [UIImageConstant defaultEmptyAvatarPlaceholder];
|
||||
_charmImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_charmImageView.userInteractionEnabled = YES;
|
||||
_charmImageView.layer.masksToBounds = YES;
|
||||
_charmImageView.layer.cornerRadius = 15;
|
||||
}
|
||||
return _charmImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)charmLabel {
|
||||
if (!_charmLabel) {
|
||||
UILabel *label = [[UILabel alloc] init];
|
||||
label.font = [UIFont systemFontOfSize:10];
|
||||
label.textColor = [DJDKMIMOMColor mainTextColor];
|
||||
label.text = YMLocalizedString(@"XPGiftWeekStarBroadcastView2");
|
||||
_charmLabel = label;
|
||||
}
|
||||
return _charmLabel;
|
||||
}
|
||||
|
||||
- (UIView *)charmBgView {
|
||||
if (!_charmBgView) {
|
||||
UIView *view = [[UIView alloc] init];
|
||||
view.backgroundColor = UIColorRGBAlpha(0xffffff, 0.2);
|
||||
view.layer.cornerRadius = 8;
|
||||
view.layer.masksToBounds = YES;
|
||||
_charmBgView = view;
|
||||
}
|
||||
return _charmBgView;
|
||||
}
|
||||
|
||||
- (UILabel *)charmNickLabel {
|
||||
if (!_charmNickLabel) {
|
||||
UILabel *label = [[UILabel alloc] init];
|
||||
label.font = [UIFont systemFontOfSize:10];
|
||||
label.textColor = [UIColor whiteColor];
|
||||
label.text = YMLocalizedString(@"XPGiftWeekStarBroadcastView3");
|
||||
_charmNickLabel = label;
|
||||
}
|
||||
return _charmNickLabel;
|
||||
}
|
||||
|
||||
- (NetImageView *)contributeImageView {
|
||||
if (!_contributeImageView) {
|
||||
NetImageConfig *config = [[NetImageConfig alloc] init];
|
||||
config.placeHolder = [UIImageConstant defaultEmptyAvatarPlaceholder];
|
||||
_contributeImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_contributeImageView.userInteractionEnabled = YES;
|
||||
_contributeImageView.layer.masksToBounds = YES;
|
||||
_contributeImageView.layer.cornerRadius = 15;
|
||||
}
|
||||
return _contributeImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)contributeLabel {
|
||||
if (!_contributeLabel) {
|
||||
UILabel *label = [[UILabel alloc] init];
|
||||
label.font = [UIFont systemFontOfSize:10];
|
||||
label.textColor = [DJDKMIMOMColor mainTextColor];
|
||||
label.text = YMLocalizedString(@"XPGiftWeekStarBroadcastView4");
|
||||
_contributeLabel = label;
|
||||
}
|
||||
return _contributeLabel;
|
||||
}
|
||||
|
||||
- (UIView *)contributeBgView {
|
||||
if (!_contributeBgView) {
|
||||
UIView *view = [[UIView alloc] init];
|
||||
view.backgroundColor = UIColorRGBAlpha(0xffffff, 0.2);
|
||||
view.layer.cornerRadius = 8;
|
||||
view.layer.masksToBounds = YES;
|
||||
_contributeBgView = view;
|
||||
}
|
||||
return _contributeBgView;
|
||||
}
|
||||
- (UILabel *)contributeNickLabel {
|
||||
if (!_contributeNickLabel) {
|
||||
UILabel *label = [[UILabel alloc] init];
|
||||
label.font = [UIFont systemFontOfSize:10];
|
||||
label.textColor = [UIColor whiteColor];
|
||||
label.text = YMLocalizedString(@"XPGiftWeekStarBroadcastView5");
|
||||
_contributeNickLabel = label;
|
||||
}
|
||||
return _contributeNickLabel;
|
||||
}
|
||||
|
||||
- (UIButton *)weekStarButton {
|
||||
if (!_weekStarButton) {
|
||||
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[button setImage:[UIImage imageNamed:@"gift_weekStar_entrance"] forState:UIControlStateNormal];
|
||||
[button addTarget:self action:@selector(playButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
_weekStarButton = button;
|
||||
}
|
||||
return _weekStarButton;
|
||||
}
|
||||
|
||||
@end
|
@@ -39,6 +39,7 @@
|
||||
#import "XPGiftHeadTypeView.h"
|
||||
#import "XPGiftLuckyGiftBroadcastView.h"
|
||||
#import "XPGiftTwelveStarBroadcastView.h"
|
||||
#import "XPNobleCenterViewController.h"
|
||||
///P
|
||||
#import "XPGiftProtocol.h"
|
||||
///VC
|
||||
@@ -457,8 +458,8 @@ UIKIT_EXTERN NSString * kShowFirstRechargeView;
|
||||
- (void)xPGiftHeadTypeViewDidClickNoble:(XPGiftHeadTypeView *)view {
|
||||
[self dismissViewControllerAnimated:NO completion:^{
|
||||
[StatisticsServiceHelper trackEventWithKey:StatisticsServiceEventvipEntranceGiftClick];
|
||||
// XPNobleCenterViewController * nobleVC = [[XPNobleCenterViewController alloc] initWithRoomUid:self.delegate.getRoomInfo.uid];
|
||||
// [[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController pushViewController:nobleVC animated:YES];
|
||||
XPNobleCenterViewController * nobleVC = [[XPNobleCenterViewController alloc] initWithRoomUid:self.delegate.getRoomInfo.uid];
|
||||
[[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController pushViewController:nobleVC animated:YES];
|
||||
}];
|
||||
}
|
||||
///点击了首充
|
||||
@@ -504,19 +505,20 @@ UIKIT_EXTERN NSString * kShowFirstRechargeView;
|
||||
}
|
||||
} else if(type == GiftSegmentType_WeekStar) {
|
||||
[self.luckyBroadcastView removeFromSuperview];
|
||||
if ([ClientConfig shareConfig].configInfo.twelveStarSwitch) {
|
||||
// if ([ClientConfig shareConfig].configInfo.twelveStarSwitch) {
|
||||
self.constellationBanner.hidden = NO;
|
||||
if (!self.constellationBanner.superview) {
|
||||
[self.view addSubview:self.constellationBanner];
|
||||
[self.constellationBanner mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.bottom.mas_equalTo(self.contentView.mas_top);
|
||||
make.left.right.mas_equalTo(0);
|
||||
make.height.mas_equalTo(75);
|
||||
make.height.mas_equalTo(kGetScaleWidth(56));
|
||||
}];
|
||||
}
|
||||
} else {
|
||||
self.constellationBanner.hidden = YES;
|
||||
}
|
||||
|
||||
// } else {
|
||||
// self.constellationBanner.hidden = YES;
|
||||
// }
|
||||
} else {
|
||||
[self.luckyBroadcastView removeFromSuperview];
|
||||
[self.constellationBanner removeFromSuperview];
|
||||
@@ -537,7 +539,10 @@ UIKIT_EXTERN NSString * kShowFirstRechargeView;
|
||||
self.giftInfoView.hidden = NO;
|
||||
}
|
||||
}];
|
||||
} else {
|
||||
}else if(type == GiftSegmentType_WeekStar){
|
||||
self.constellationBanner.giftInfo = info;
|
||||
}
|
||||
else {
|
||||
self.giftBarView.drawGiftCount = 10;
|
||||
}
|
||||
}
|
||||
@@ -571,7 +576,7 @@ UIKIT_EXTERN NSString * kShowFirstRechargeView;
|
||||
- (void)xPGiftTwelveStarBroadcastView:(XPGiftTwelveStarBroadcastView *)view didClickDetail:(UIButton *)sender {
|
||||
[self dismissViewControllerAnimated:NO completion:^{
|
||||
XPWebViewController * webVC = [[XPWebViewController alloc] init];
|
||||
webVC.url = URLWithType(kXinZuoStarURL);
|
||||
webVC.url = URLWithType(kNewWeekStarURL);
|
||||
[[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController pushViewController:webVC animated:YES];
|
||||
}];
|
||||
}
|
||||
@@ -667,10 +672,10 @@ UIKIT_EXTERN NSString * kShowFirstRechargeView;
|
||||
- (void)luckyGiftBroadcastRecordSuccess:(NSArray *)records {
|
||||
self.records = records;
|
||||
self.luckyBroadcastView.records = records;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)getTwelveStarLastRankFirstSuccess:(GiftTwelveStarFirstModel *)model {
|
||||
self.constellationBanner.giftInfo = model;
|
||||
|
||||
}
|
||||
|
||||
#pragma mark - Event Response
|
||||
@@ -797,7 +802,7 @@ UIKIT_EXTERN NSString * kShowFirstRechargeView;
|
||||
|
||||
- (XPGiftTwelveStarBroadcastView *)constellationBanner {
|
||||
if (!_constellationBanner) {
|
||||
_constellationBanner = [[XPGiftTwelveStarBroadcastView alloc] init];
|
||||
_constellationBanner = [[XPGiftTwelveStarBroadcastView alloc] initWithFrame:CGRectZero];
|
||||
_constellationBanner.delegate = self;
|
||||
}
|
||||
return _constellationBanner;
|
||||
|
@@ -362,7 +362,12 @@
|
||||
}
|
||||
|
||||
- (void)onRoomUpdate {
|
||||
self.isMiniEnter = NO;
|
||||
self.isMiniEnter = NO;
|
||||
RoomInfoModel * roomInfo = self.hostDelegate.getRoomInfo;
|
||||
for (int i = 0; i < self.countOfMircoView; i++) {
|
||||
UIView<MicroViewProtocol> * view = [self findMicroViewByIndex:i];
|
||||
[view showGiftValueMode:roomInfo.showGiftValue];
|
||||
}
|
||||
// [self microQueueUpdated];
|
||||
}
|
||||
|
||||
|
@@ -204,7 +204,7 @@
|
||||
|
||||
#pragma mark - 福袋中 四级奖品
|
||||
- (void)receiveLuckyGiftBigPrize:(AttachmentModel *)attachment {
|
||||
if (attachment.second == Custom_Message_Sub_Room_Gift_LuckBag || attachment.second == Custom_Message_Sub_Room_Gift_LuckBag_Server) {
|
||||
if ( attachment.second == Custom_Message_Sub_Room_Gift_LuckBag_FullScree) {
|
||||
PIBaseAnimationViewModel * prizeModel = [PIBaseAnimationViewModel modelWithDictionary:attachment.data];
|
||||
prizeModel.type = GiftBannerType_Lucky;
|
||||
prizeModel.isInRoomVisiable = attachment.second == Custom_Message_Sub_Room_Gift_LuckBag;
|
||||
|
@@ -12,6 +12,7 @@
|
||||
#import <AudioToolbox/AudioToolbox.h>
|
||||
#import <AFNetworkReachabilityManager.h>
|
||||
#import <POP.h>
|
||||
#import <AFNetworking.h>
|
||||
///Tool
|
||||
#import "YUMIMacroUitls.h"
|
||||
#import "DJDKMIMOMColor.h"
|
||||
@@ -81,6 +82,7 @@
|
||||
#import "XPSkillCardPlayerManager.h"
|
||||
#import "PIFullScreenBannerAnimation.h"
|
||||
#import <SVGA.h>
|
||||
#import "Api+Gift.h"
|
||||
UIKIT_EXTERN NSString * kUserCompleteInfoFinishKey;
|
||||
NSString * const kUserFirstLoginKey = @"kUserFirstLoginKey";
|
||||
NSString * const kHadLaunchApp = @"kHadLaunchApp";
|
||||
@@ -124,46 +126,47 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey;
|
||||
@implementation TabbarViewController
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
[super viewDidLoad];
|
||||
XPTabBar *tabBar = [[XPTabBar alloc] init];
|
||||
[self setValue:tabBar forKey:@"tabBar"];
|
||||
|
||||
[self configTheme];
|
||||
[self initTabs:NO];
|
||||
[[ClientConfig shareConfig] clientInit];
|
||||
[[ClientConfig shareConfig] clientInit];
|
||||
[[NIMSDK sharedSDK].loginManager addDelegate:self];
|
||||
[[NIMSDK sharedSDK].chatManager addDelegate:self];
|
||||
[[NIMSDK sharedSDK].systemNotificationManager addDelegate:self];
|
||||
[[NIMSDK sharedSDK].broadcastManager addDelegate:self];
|
||||
[self.presenter juliandAdCallBackApi];
|
||||
[self networkReachability];
|
||||
[self.view addSubview:self.roomMineView];
|
||||
[[NSNotificationCenter defaultCenter] addObserverForName:kRoomMiniNotificationKey object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) {
|
||||
[self configRoomMiniNView:note.userInfo];
|
||||
}];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserverForName:kUserCompleteInfoFinishKey object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) {
|
||||
[self completeUserInfoFinish:note.object];
|
||||
}];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserverForName:@"reloadnewtab" object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) {
|
||||
if (self.isReload) {
|
||||
[self initTabs:YES];
|
||||
self.isReload = YES;
|
||||
}
|
||||
}];
|
||||
[[NIMSDK sharedSDK].chatManager addDelegate:self];
|
||||
[[NIMSDK sharedSDK].systemNotificationManager addDelegate:self];
|
||||
[[NIMSDK sharedSDK].broadcastManager addDelegate:self];
|
||||
[self.presenter juliandAdCallBackApi];
|
||||
[self networkReachability];
|
||||
[self.view addSubview:self.roomMineView];
|
||||
[[NSNotificationCenter defaultCenter] addObserverForName:kRoomMiniNotificationKey object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) {
|
||||
[self configRoomMiniNView:note.userInfo];
|
||||
}];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserverForName:kUserCompleteInfoFinishKey object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) {
|
||||
[self completeUserInfoFinish:note.object];
|
||||
}];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserverForName:@"reloadnewtab" object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) {
|
||||
if (self.isReload) {
|
||||
[self initTabs:YES];
|
||||
self.isReload = YES;
|
||||
}
|
||||
}];
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showNewUserRecharge) name:kNewUserRechargeKey object:nil];
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showAnchorCardKey:) name:kTabShowAnchorCardKey object:nil];
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(teenagerStatusChange:) name:kTeenagerStatusChange object:nil];
|
||||
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
[super viewWillAppear:animated];
|
||||
[self.navigationController setNavigationBarHidden:YES animated:YES];
|
||||
[self.presenter autoLogin];
|
||||
if ([XPRoomMiniManager shareManager].getRoomInfo == nil) {
|
||||
[self.roomMineView hiddenRoomMiniView];
|
||||
}
|
||||
if ([XPRoomMiniManager shareManager].getRoomInfo == nil) {
|
||||
[self.roomMineView hiddenRoomMiniView];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewWillDisappear:(BOOL)animated {
|
||||
@@ -183,48 +186,48 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey;
|
||||
|
||||
/** 登录成功(通过token且换取ticket后)。
|
||||
|
||||
1. 登录云信。
|
||||
2. 获取用户信息。
|
||||
3. 其实目前多余回调V层,可以在P层里自行做这个逻辑。
|
||||
1. 登录云信。
|
||||
2. 获取用户信息。
|
||||
3. 其实目前多余回调V层,可以在P层里自行做这个逻辑。
|
||||
*/
|
||||
- (void)autoLoginSuccess {
|
||||
[self.presenter loginNIM];
|
||||
[self.presenter getUserInfo];
|
||||
///登录成功之后 在验证是否有漏单的行为
|
||||
[self.presenter checkTranscation];
|
||||
///检查更新
|
||||
if ([ClientConfig shareConfig].canOpen) {
|
||||
[self.presenter getVersionUpdate];
|
||||
|
||||
if (self.inviteCode && self.inviteCode.length > 0) {
|
||||
///邀请码进房
|
||||
[self.presenter checkInviteUserInfo:self.inviteCode];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
///主要功能:给主播分流
|
||||
// [self clientStartApp];
|
||||
|
||||
// ///开启心跳 记录用户登录状态
|
||||
// [[ClientConfig shareConfig] addHeartBratTimer];
|
||||
|
||||
XPAdImageTool.shareImageTool.isImLogin = YES;
|
||||
|
||||
if ([ClientConfig shareConfig].canOpen) {
|
||||
if ([self hadLaunchApp] && [self canShowAnchorCard]) {
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||||
if (self.view.window && self.isViewLoaded) {
|
||||
[self.presenter getAnchorCardInfo];
|
||||
}
|
||||
});
|
||||
}
|
||||
if (self.needShowAnchorCard && !self.delayShowAnchorCard && !self.parentMode) {
|
||||
[self.presenter getAnchorCardInfo];
|
||||
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:kHadLaunchApp];///第一次弹主播卡片
|
||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||
}
|
||||
}
|
||||
///登录成功之后 在验证是否有漏单的行为
|
||||
[self.presenter checkTranscation];
|
||||
///检查更新
|
||||
if ([ClientConfig shareConfig].canOpen) {
|
||||
[self.presenter getVersionUpdate];
|
||||
|
||||
if (self.inviteCode && self.inviteCode.length > 0) {
|
||||
///邀请码进房
|
||||
[self.presenter checkInviteUserInfo:self.inviteCode];
|
||||
}
|
||||
}
|
||||
[self requestGiftList];
|
||||
|
||||
///主要功能:给主播分流
|
||||
// [self clientStartApp];
|
||||
|
||||
// ///开启心跳 记录用户登录状态
|
||||
// [[ClientConfig shareConfig] addHeartBratTimer];
|
||||
|
||||
XPAdImageTool.shareImageTool.isImLogin = YES;
|
||||
|
||||
if ([ClientConfig shareConfig].canOpen) {
|
||||
if ([self hadLaunchApp] && [self canShowAnchorCard]) {
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||||
if (self.view.window && self.isViewLoaded) {
|
||||
[self.presenter getAnchorCardInfo];
|
||||
}
|
||||
});
|
||||
}
|
||||
if (self.needShowAnchorCard && !self.delayShowAnchorCard && !self.parentMode) {
|
||||
[self.presenter getAnchorCardInfo];
|
||||
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:kHadLaunchApp];///第一次弹主播卡片
|
||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// 获取用户信息后检查:1、是否绑定手机号;2、是否需要完善用户信息。
|
||||
@@ -243,20 +246,108 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey;
|
||||
return;
|
||||
}
|
||||
[self initTabs:YES];
|
||||
if ([ClientConfig shareConfig].canOpen) {
|
||||
if (self.inviteCode.length <= 0) {
|
||||
[self initQuickEnterRoom];
|
||||
}
|
||||
if (self.inviteCode) {
|
||||
self.inviteCode = nil;
|
||||
}
|
||||
[self monentsUnReadCount];
|
||||
}
|
||||
if ([ClientConfig shareConfig].canOpen) {
|
||||
if (self.inviteCode.length <= 0) {
|
||||
[self initQuickEnterRoom];
|
||||
}
|
||||
if (self.inviteCode) {
|
||||
self.inviteCode = nil;
|
||||
}
|
||||
[self monentsUnReadCount];
|
||||
}
|
||||
self.parentMode = userInfo.parentMode;
|
||||
for (BaseViewController *vc in self.viewControllers) {
|
||||
vc.parentMode = self.parentMode;
|
||||
}
|
||||
}
|
||||
///
|
||||
-(void)requestGiftList{
|
||||
|
||||
NSString * uid = [AccountInfoStorage instance].getUid;
|
||||
if(uid.length == 0)return;
|
||||
///保存时间,一天只请求一次
|
||||
NSString *time = [NSDate getNowTimeTimestamp];
|
||||
NSString *curTime = [NSDate timestampSwitchTime:[time integerValue] andFormatter:@"yyyy-MM-dd"];
|
||||
NSDictionary *timeDic = [[NSUserDefaults standardUserDefaults]valueForKey:@"kRequestGiftList"];
|
||||
if(timeDic == nil){
|
||||
[timeDic setValue:@(YES) forKey:curTime];
|
||||
[[NSUserDefaults standardUserDefaults]setValue:timeDic forKey:@"kRequestGiftList"];
|
||||
[[NSUserDefaults standardUserDefaults]synchronize];
|
||||
}else{
|
||||
if(timeDic[curTime]!= nil)return;
|
||||
NSMutableDictionary *curDic = [[NSMutableDictionary alloc]initWithDictionary:timeDic];
|
||||
[curDic setValue:@(YES) forKey:curTime];
|
||||
[[NSUserDefaults standardUserDefaults]setValue:curDic forKey:@"kRequestGiftList"];
|
||||
[[NSUserDefaults standardUserDefaults]synchronize];
|
||||
}
|
||||
|
||||
///请求普通礼物
|
||||
[Api requestNormalGiftList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
if(code == 200){
|
||||
NSArray *luckyBagGift = [GiftInfoModel modelsWithArray:data.data[@"luckyBagGift"]]; // 福袋礼物
|
||||
NSArray *vipGift = [GiftInfoModel modelsWithArray:data.data[@"vipGift"]]; // 贵族礼物
|
||||
NSArray *luckyPoolGift = [GiftInfoModel modelsWithArray:data.data[@"luckyPoolGift"]];// 福袋奖池礼物
|
||||
NSArray *normalGift = [GiftInfoModel modelsWithArray:data.data[@"normalGift"]]; // 普通面板礼物
|
||||
NSArray *weekStarGift = [GiftInfoModel modelsWithArray:data.data[@"weekStarGift"]]; // 周星礼物
|
||||
NSArray *anchorGift = [GiftInfoModel modelsWithArray:data.data[@"singlePopularGift"]]; // 个播礼物
|
||||
NSMutableArray *giftList = [[NSMutableArray alloc]initWithArray:luckyBagGift];
|
||||
[giftList addObjectsFromArray:vipGift];
|
||||
[giftList addObjectsFromArray:luckyPoolGift];
|
||||
[giftList addObjectsFromArray:normalGift];
|
||||
[giftList addObjectsFromArray:weekStarGift];
|
||||
[giftList addObjectsFromArray:anchorGift];
|
||||
NSMutableArray *vggUrlList = [NSMutableArray array];
|
||||
NSMutableArray *viewUrlList = [NSMutableArray array];
|
||||
for (GiftInfoModel *giftModel in giftList) {
|
||||
if(giftModel.vggUrl.length > 0){
|
||||
[vggUrlList addObject:giftModel.vggUrl];
|
||||
[self dealWithGiftListWithUrl:giftModel.vggUrl fileName:giftModel.vggUrl isSvga:YES];
|
||||
}else if(giftModel.viewUrl.length > 0){
|
||||
[viewUrlList addObject:giftModel.viewUrl];
|
||||
[self dealWithGiftListWithUrl:giftModel.viewUrl fileName:giftModel.viewUrl isSvga:NO];
|
||||
}
|
||||
|
||||
}
|
||||
[self requestBagGiftListWithVggUrlList:vggUrlList viewUrlList:viewUrlList];
|
||||
}
|
||||
} roomUid:uid];
|
||||
|
||||
|
||||
}
|
||||
-(void)requestBagGiftListWithVggUrlList:(NSMutableArray *)list viewUrlList:(NSMutableArray *)viewUrlList{
|
||||
///请求背包礼物
|
||||
NSString * uid = [AccountInfoStorage instance].getUid;
|
||||
NSString * ticket = [AccountInfoStorage instance].getTicket;
|
||||
[Api requestPackGiftList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
if(code == 200){
|
||||
NSArray * info = [GiftInfoModel modelsWithArray:data.data];
|
||||
for (GiftInfoModel *giftModel in info) {
|
||||
if(giftModel.vggUrl.length > 0 && ![list containsObject:giftModel.vggUrl]){
|
||||
[self dealWithGiftListWithUrl:giftModel.vggUrl fileName:giftModel.vggUrl isSvga:YES];
|
||||
}else if(giftModel.viewUrl.length > 0 && ![viewUrlList containsObject:giftModel.viewUrl]){
|
||||
[self dealWithGiftListWithUrl:giftModel.viewUrl fileName:giftModel.viewUrl isSvga:NO];
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
} uid:uid ticket:ticket];
|
||||
}
|
||||
|
||||
-(void)dealWithGiftListWithUrl:(NSString *)url fileName:(NSString *)fileName isSvga:(BOOL)isSvga {
|
||||
NSString *baseFileName = isSvga ? @"/GiftSvga":@"/GiftMp4";
|
||||
NSString *filePaths = [[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:baseFileName] stringByAppendingPathComponent:fileName];
|
||||
NSFileManager *fileManager = [NSFileManager defaultManager];
|
||||
if ([[NSFileManager defaultManager] fileExistsAtPath:filePaths])return;
|
||||
[[[NSURLSession sharedSession] downloadTaskWithURL:[NSURL URLWithString:url] completionHandler:^(NSURL * _Nullable location, NSURLResponse * _Nullable response, NSError * _Nullable error) {
|
||||
if(!error){
|
||||
[fileManager createDirectoryAtPath:[filePaths stringByDeletingLastPathComponent] withIntermediateDirectories:YES attributes:nil error:nil];
|
||||
NSData *data = [NSData dataWithContentsOfURL:location];
|
||||
[data writeToFile:filePaths atomically:YES];
|
||||
}
|
||||
}] resume];
|
||||
|
||||
}
|
||||
|
||||
- (void)checkInviteUserInfoSuccess:(InviteUserInfoModel *)inviteInfo {
|
||||
if (inviteInfo && inviteInfo.isInRoom && !self.parentMode) {
|
||||
@@ -815,6 +906,7 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey;
|
||||
- (void)receiveBroadcastGift:(AttachmentModel *)attachment {
|
||||
GiftReceiveInfoModel *giftNotifyInfo = [GiftReceiveInfoModel modelWithJSON:attachment.data];
|
||||
if (!giftNotifyInfo.ceremonyGift && giftNotifyInfo.isHomeShow == YES) {
|
||||
if([XPSkillCardPlayerManager shareInstance].isInRoom == YES)return;
|
||||
[self.roomAnimation receiveGift:giftNotifyInfo];
|
||||
return;
|
||||
}
|
||||
|
@@ -40,7 +40,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
mobile:(NSString *)mobile
|
||||
code:(NSString *)code
|
||||
uid:(NSString *)uid
|
||||
ticket:(NSString *)ticket;
|
||||
ticket:(NSString *)ticket phoneAreaCode:(NSString *)phoneAreaCode;
|
||||
|
||||
/// 补全用户资料
|
||||
/// @param complection 完成
|
||||
|
@@ -72,9 +72,9 @@
|
||||
mobile:(NSString *)mobile
|
||||
code:(NSString *)code
|
||||
uid:(NSString *)uid
|
||||
ticket:(NSString *)ticket {
|
||||
ticket:(NSString *)ticket phoneAreaCode:(NSString *)phoneAreaCode{
|
||||
NSString * fang = [NSString stringFromBase64String:@"c21zL3ZlcmlmeQ=="];///sms/verify
|
||||
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, mobile, code, uid, ticket,nil];
|
||||
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, mobile, code, uid, ticket,phoneAreaCode,nil];
|
||||
}
|
||||
|
||||
/// 补全用户资料
|
||||
|
@@ -134,6 +134,9 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
@property (nonatomic,strong) NSArray<MonentsInfoModel *> *dynamicInfo;
|
||||
@property (nonatomic,strong) NSMutableAttributedString *levelAtt;
|
||||
@property (nonatomic,strong) NSMutableAttributedString *idAtt;
|
||||
|
||||
///区号
|
||||
@property (nonatomic,copy) NSString *phoneAreaCode;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@@ -30,4 +30,6 @@
|
||||
#import "UIButton+EnlargeTouchArea.h"
|
||||
#import "UIView+Corner.h"
|
||||
#import "UILabel+Utils.h"
|
||||
#import "TTPopup.h"
|
||||
#import "NSDate+DateUtils.h"
|
||||
#endif /* PrefixHeader_pch */
|
||||
|
2526
YuMi/zh-Hans.lproj/Localizable.strings
Normal file
@@ -1328,6 +1328,7 @@
|
||||
"XPGiftHeadTypeView1" = "首充有禮";
|
||||
"XPGiftHeadTypeView2" = "送禮";
|
||||
"XPGiftHeadTypeView3" = "互動";
|
||||
"XPGiftHeadTypeView4" = "貴族中心";
|
||||
|
||||
"XPGiftLuckyGiftBroadcastCell0" = "恭喜 ";
|
||||
"XPGiftLuckyGiftBroadcastCell1" = "開出%@獲得 ";
|
||||
@@ -1364,7 +1365,7 @@
|
||||
"XPGiftInfoView6" = "塗鴉禮物";
|
||||
"XPGiftInfoView7" = "懲罰禮物";
|
||||
"XPGiftInfoView8" = "人氣";
|
||||
|
||||
"XPGiftInfoView9" = "貴族";
|
||||
"XPGiftCountView0" = "其他數額";
|
||||
"XPGiftCountView1" = "全部";
|
||||
"XPGiftCountView2" = "其他數額";
|
||||
@@ -1446,8 +1447,8 @@
|
||||
"XPRoomNobleLevelUpView0" = "引爆全場!恭喜";
|
||||
"XPRoomNobleLevelUpView1" = "貴族身份升級為";
|
||||
|
||||
"XPRoomCandyGiftView0" = "厲害了";
|
||||
"XPRoomCandyGiftView1" = "摘下糖果得";
|
||||
"XPRoomCandyGiftView0" = "厲害了! ";
|
||||
"XPRoomCandyGiftView1" = "通過尋愛之旅獲取 ";
|
||||
|
||||
"XPRoomLicneseHourRankView0" = "恭喜";
|
||||
"XPRoomLicneseHourRankView1" = "去圍觀";
|
||||
@@ -1781,7 +1782,9 @@
|
||||
"MessageOpenLiveModel0" = "%@ 上線了";
|
||||
|
||||
"MessageTextClickModel0" = "未知消息類型";
|
||||
|
||||
"PKIDLoginViewController2" = "請聯繫客服處理";
|
||||
"PKIDLoginViewController3" = "LINE:pekoyuyin";
|
||||
"PKIDLoginViewController4" = "我知道了";
|
||||
"MessageLevelUpgradeModel0" = "恭喜!您的魅力等級已到達";
|
||||
"MessageLevelUpgradeModel1" = "恭喜!您的等級已到達";
|
||||
|
||||
@@ -2127,7 +2130,9 @@
|
||||
"XPMineGuildSuperAdminSetViewController0" = "公會超管設置";
|
||||
"XPMineGuildSuperAdminSetViewController1" = "確定要移除%@的公會超級管理員身份嗎?";
|
||||
"XPMineGuildSuperAdminSetViewController2" = "添加公會超管";
|
||||
|
||||
///XPMineMainIncomeStatisViewController
|
||||
"XPMineMainIncomeStatisViewController0"="廳收入";
|
||||
"XPMineMainIncomeStatisViewController1"="主播收入";
|
||||
///XPMineGuildChooseManagerViewController.m
|
||||
"XPMineGuildChooseManagerViewController0" = "選擇管理的房間";
|
||||
"XPMineGuildChooseManagerViewController1" = "設置成功";
|
||||
@@ -2477,9 +2482,22 @@
|
||||
"XPNobleCenterPayView1" = "鉆石";
|
||||
"XPNobleCenterPayView2" = "鉆石支付";
|
||||
"XPNobleCenterPayView3" = "確認支付";
|
||||
///LoginForgetEditView.m
|
||||
"LoginForgetEditView0" = "獲取驗證碼";
|
||||
|
||||
|
||||
|
||||
///LoginForgetPasswordViewController.m
|
||||
"LoginForgetPasswordViewController0" = "忘記密碼";
|
||||
"LoginForgetPasswordViewController1" = "驗證碼發送成功";
|
||||
"LoginForgetPasswordViewController2" = "重置密碼成功";
|
||||
"LoginForgetPasswordViewController3" = "%ds後重試";
|
||||
"LoginForgetPasswordViewController4" = "重新發送";
|
||||
"LoginForgetPasswordViewController5" = "請輸入正確的手機號碼";
|
||||
"LoginForgetPasswordViewController6" = "提交";
|
||||
"LoginForgetPasswordViewController7" = "請輸入手機號";
|
||||
"LoginForgetPasswordViewController8" = "請輸入驗證碼";
|
||||
"LoginForgetPasswordViewController9" = "請輸入密碼(6-16個字符)";
|
||||
///"XPGiftLuckyGiftBroadcastCell0"
|
||||
"XPGiftLuckyGiftBroadcastCell6"="周星榜";
|
||||
///不能脚本生成的
|
||||
"App_Common_And" = "和";
|
||||
"App_Common_Male" = "男";
|
||||
|