Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
d87ac12794 | ||
![]() |
ab9061580a | ||
![]() |
385212a3f5 | ||
![]() |
8c21f5117c | ||
![]() |
09cbeb72a6 | ||
![]() |
a1ff09f33f | ||
![]() |
8b4710fe18 | ||
![]() |
acf568b8b5 | ||
![]() |
02d145bda7 | ||
![]() |
d9234acb0c | ||
![]() |
ce68453c9c | ||
![]() |
ed0c4498f0 | ||
![]() |
02b66cc73a |
2
Podfile
@@ -18,6 +18,8 @@ target 'xplan-ios' do
|
|||||||
pod 'MJExtension'
|
pod 'MJExtension'
|
||||||
#图片加载
|
#图片加载
|
||||||
pod 'SDWebImage'
|
pod 'SDWebImage'
|
||||||
|
pod 'FLAnimatedImage'
|
||||||
|
pod 'SDWebImageFLPlugin' # 对FLAnimatedImage和SDWebImage的桥接
|
||||||
#输入
|
#输入
|
||||||
pod 'SZTextView'
|
pod 'SZTextView'
|
||||||
#轮播图
|
#轮播图
|
||||||
|
14
Podfile.lock
@@ -20,6 +20,7 @@ PODS:
|
|||||||
- Bugly (2.5.93)
|
- Bugly (2.5.93)
|
||||||
- CocoaAsyncSocket (7.6.5)
|
- CocoaAsyncSocket (7.6.5)
|
||||||
- FFPopup (1.1.5)
|
- FFPopup (1.1.5)
|
||||||
|
- FLAnimatedImage (1.0.17)
|
||||||
- HappyDNS (0.3.17)
|
- HappyDNS (0.3.17)
|
||||||
- IAPHelper (1.1)
|
- IAPHelper (1.1)
|
||||||
- IQKeyboardManager (6.5.9)
|
- IQKeyboardManager (6.5.9)
|
||||||
@@ -66,6 +67,9 @@ PODS:
|
|||||||
- SDWebImage (5.11.1):
|
- SDWebImage (5.11.1):
|
||||||
- SDWebImage/Core (= 5.11.1)
|
- SDWebImage/Core (= 5.11.1)
|
||||||
- SDWebImage/Core (5.11.1)
|
- SDWebImage/Core (5.11.1)
|
||||||
|
- SDWebImageFLPlugin (0.6.0):
|
||||||
|
- FLAnimatedImage (>= 1.0.11)
|
||||||
|
- SDWebImage/Core (~> 5.10)
|
||||||
- SSKeychain (1.4.1)
|
- SSKeychain (1.4.1)
|
||||||
- SSZipArchive (2.4.2)
|
- SSZipArchive (2.4.2)
|
||||||
- SVGAPlayer (2.5.7):
|
- SVGAPlayer (2.5.7):
|
||||||
@@ -102,6 +106,7 @@ DEPENDENCIES:
|
|||||||
- Bugly
|
- Bugly
|
||||||
- CocoaAsyncSocket
|
- CocoaAsyncSocket
|
||||||
- FFPopup
|
- FFPopup
|
||||||
|
- FLAnimatedImage
|
||||||
- IAPHelper
|
- IAPHelper
|
||||||
- IQKeyboardManager (~> 6.5.5)
|
- IQKeyboardManager (~> 6.5.5)
|
||||||
- JXCategoryView
|
- JXCategoryView
|
||||||
@@ -127,6 +132,7 @@ DEPENDENCIES:
|
|||||||
- ReactiveObjC
|
- ReactiveObjC
|
||||||
- SDCycleScrollView
|
- SDCycleScrollView
|
||||||
- SDWebImage
|
- SDWebImage
|
||||||
|
- SDWebImageFLPlugin
|
||||||
- SSKeychain
|
- SSKeychain
|
||||||
- SVGAPlayer (~> 2.3)
|
- SVGAPlayer (~> 2.3)
|
||||||
- SZTextView
|
- SZTextView
|
||||||
@@ -147,6 +153,7 @@ SPEC REPOS:
|
|||||||
- Bugly
|
- Bugly
|
||||||
- CocoaAsyncSocket
|
- CocoaAsyncSocket
|
||||||
- FFPopup
|
- FFPopup
|
||||||
|
- FLAnimatedImage
|
||||||
- HappyDNS
|
- HappyDNS
|
||||||
- IAPHelper
|
- IAPHelper
|
||||||
- IQKeyboardManager
|
- IQKeyboardManager
|
||||||
@@ -172,6 +179,7 @@ SPEC REPOS:
|
|||||||
- ReactiveObjC
|
- ReactiveObjC
|
||||||
- SDCycleScrollView
|
- SDCycleScrollView
|
||||||
- SDWebImage
|
- SDWebImage
|
||||||
|
- SDWebImageFLPlugin
|
||||||
- SSKeychain
|
- SSKeychain
|
||||||
- SSZipArchive
|
- SSZipArchive
|
||||||
- SVGAPlayer
|
- SVGAPlayer
|
||||||
@@ -194,6 +202,7 @@ SPEC CHECKSUMS:
|
|||||||
Bugly: b8715e6ec4004b7f7fbffab0643ba80545aee3da
|
Bugly: b8715e6ec4004b7f7fbffab0643ba80545aee3da
|
||||||
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
|
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
|
||||||
FFPopup: a208dcee8db3e54ec4a88fcd6481f6f5d85b7a83
|
FFPopup: a208dcee8db3e54ec4a88fcd6481f6f5d85b7a83
|
||||||
|
FLAnimatedImage: bbf914596368867157cc71b38a8ec834b3eeb32b
|
||||||
HappyDNS: 848ef73e24f2b0e2752064223ce2dc0dd88900ea
|
HappyDNS: 848ef73e24f2b0e2752064223ce2dc0dd88900ea
|
||||||
IAPHelper: fd74f53b0ac142eed085777b88b86a11746a2dd4
|
IAPHelper: fd74f53b0ac142eed085777b88b86a11746a2dd4
|
||||||
IQKeyboardManager: 241cc94ccabc9deb8f8bd7d12f00d73288d13ecc
|
IQKeyboardManager: 241cc94ccabc9deb8f8bd7d12f00d73288d13ecc
|
||||||
@@ -219,6 +228,7 @@ SPEC CHECKSUMS:
|
|||||||
ReactiveObjC: 011caa393aa0383245f2dcf9bf02e86b80b36040
|
ReactiveObjC: 011caa393aa0383245f2dcf9bf02e86b80b36040
|
||||||
SDCycleScrollView: a0d74c3384caa72bdfc81470bdbc8c14b3e1fbcf
|
SDCycleScrollView: a0d74c3384caa72bdfc81470bdbc8c14b3e1fbcf
|
||||||
SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d
|
SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d
|
||||||
|
SDWebImageFLPlugin: 72efd2cfbf565bc438421abb426f4bcf7b670754
|
||||||
SSKeychain: 55cc80f66f5c73da827e3077f02e43528897db41
|
SSKeychain: 55cc80f66f5c73da827e3077f02e43528897db41
|
||||||
SSZipArchive: e7b4f3d9e780c2acc1764cd88fbf2de28f26e5b2
|
SSZipArchive: e7b4f3d9e780c2acc1764cd88fbf2de28f26e5b2
|
||||||
SVGAPlayer: 318b85a78b61292d6ae9dfcd651f3f0d1cdadd86
|
SVGAPlayer: 318b85a78b61292d6ae9dfcd651f3f0d1cdadd86
|
||||||
@@ -233,6 +243,6 @@ SPEC CHECKSUMS:
|
|||||||
YYText: 5c461d709e24d55a182d1441c41dc639a18a4849
|
YYText: 5c461d709e24d55a182d1441c41dc639a18a4849
|
||||||
YYWebImage: 5f7f36aee2ae293f016d418c7d6ba05c4863e928
|
YYWebImage: 5f7f36aee2ae293f016d418c7d6ba05c4863e928
|
||||||
|
|
||||||
PODFILE CHECKSUM: 80d17907323e578d6ed774b6c6bbdb99cf9cde74
|
PODFILE CHECKSUM: 10dc54bd2806dc12b35318f86874b0d5a0ac5246
|
||||||
|
|
||||||
COCOAPODS: 1.11.3
|
COCOAPODS: 1.12.1
|
||||||
|
@@ -159,6 +159,23 @@
|
|||||||
230497452A727844006D1F0C /* launch_screen_logo.png in Resources */ = {isa = PBXBuildFile; fileRef = 230497442A727844006D1F0C /* launch_screen_logo.png */; };
|
230497452A727844006D1F0C /* launch_screen_logo.png in Resources */ = {isa = PBXBuildFile; fileRef = 230497442A727844006D1F0C /* launch_screen_logo.png */; };
|
||||||
230497472A727855006D1F0C /* launch_screen_title.png in Resources */ = {isa = PBXBuildFile; fileRef = 230497462A727855006D1F0C /* launch_screen_title.png */; };
|
230497472A727855006D1F0C /* launch_screen_title.png in Resources */ = {isa = PBXBuildFile; fileRef = 230497462A727855006D1F0C /* launch_screen_title.png */; };
|
||||||
2304974D2A739ECD006D1F0C /* XPMineGuildPersonalBillRecordModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2304974C2A739ECD006D1F0C /* XPMineGuildPersonalBillRecordModel.m */; };
|
2304974D2A739ECD006D1F0C /* XPMineGuildPersonalBillRecordModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2304974C2A739ECD006D1F0C /* XPMineGuildPersonalBillRecordModel.m */; };
|
||||||
|
237B89DC2A931479005DB380 /* XPMineUserGameVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B89DB2A931479005DB380 /* XPMineUserGameVC.m */; };
|
||||||
|
237B89DF2A933F52005DB380 /* XPMineUserGameCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B89DE2A933F52005DB380 /* XPMineUserGameCell.m */; };
|
||||||
|
237B89E22A935701005DB380 /* XPMinePlaceOrderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B89E12A935701005DB380 /* XPMinePlaceOrderView.m */; };
|
||||||
|
237B89E82A93574C005DB380 /* XPMinePlaceOrderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B89E72A93574C005DB380 /* XPMinePlaceOrderCell.m */; };
|
||||||
|
237B89EE2A945F81005DB380 /* XPMineUserGameTypeCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B89ED2A945F81005DB380 /* XPMineUserGameTypeCell.m */; };
|
||||||
|
237B89F12A948E60005DB380 /* XPRoomGameInviteBannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B89F02A948E60005DB380 /* XPRoomGameInviteBannerView.m */; };
|
||||||
|
237B89F72A949BDC005DB380 /* XPSessionMessageGameCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B89F62A949BDC005DB380 /* XPSessionMessageGameCell.m */; };
|
||||||
|
237B89FA2A94A7B6005DB380 /* XPSessionMessageGamePageControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B89F92A94A7B6005DB380 /* XPSessionMessageGamePageControl.m */; };
|
||||||
|
237B89FD2A94C062005DB380 /* MessageContentGameView.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B89FC2A94C062005DB380 /* MessageContentGameView.m */; };
|
||||||
|
237B8A062A94CA11005DB380 /* XPMineGameOrderVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B8A052A94CA11005DB380 /* XPMineGameOrderVC.m */; };
|
||||||
|
237B8A092A95A52B005DB380 /* XPMineGameOrderItemVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B8A082A95A52B005DB380 /* XPMineGameOrderItemVC.m */; };
|
||||||
|
237B8A0D2A95A5E8005DB380 /* XPMineGameOrderItemCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B8A0C2A95A5E8005DB380 /* XPMineGameOrderItemCell.m */; };
|
||||||
|
237B8A102A95ACAA005DB380 /* XPMineGameOrderDetailsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B8A0F2A95ACAA005DB380 /* XPMineGameOrderDetailsView.m */; };
|
||||||
|
237B8A132A95DCBC005DB380 /* UserGameInfoVo.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B8A122A95DCBC005DB380 /* UserGameInfoVo.m */; };
|
||||||
|
237B8A162A973B7E005DB380 /* XPMineGameOrderItemPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B8A152A973B7E005DB380 /* XPMineGameOrderItemPresenter.m */; };
|
||||||
|
237B8A1A2A973C54005DB380 /* Api+GameOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B8A192A973C54005DB380 /* Api+GameOrder.m */; };
|
||||||
|
237B94C32A98B46E007853E3 /* XPSessionMessageGameInfoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B94C22A98B46E007853E3 /* XPSessionMessageGameInfoView.m */; };
|
||||||
23F8BFF82A7A392000A36763 /* XPRoomMessagePrivilegeCardCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23F8BFF72A7A392000A36763 /* XPRoomMessagePrivilegeCardCell.m */; };
|
23F8BFF82A7A392000A36763 /* XPRoomMessagePrivilegeCardCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23F8BFF72A7A392000A36763 /* XPRoomMessagePrivilegeCardCell.m */; };
|
||||||
73FFADDC93E195344047A2EC /* Pods_xplan_ios.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CACF623970097D653132D69A /* Pods_xplan_ios.framework */; };
|
73FFADDC93E195344047A2EC /* Pods_xplan_ios.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CACF623970097D653132D69A /* Pods_xplan_ios.framework */; };
|
||||||
9B0086C627BA392B0032BD2B /* AnchorStageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0086C527BA392B0032BD2B /* AnchorStageView.m */; };
|
9B0086C627BA392B0032BD2B /* AnchorStageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0086C527BA392B0032BD2B /* AnchorStageView.m */; };
|
||||||
@@ -1641,6 +1658,41 @@
|
|||||||
230497462A727855006D1F0C /* launch_screen_title.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = launch_screen_title.png; sourceTree = "<group>"; };
|
230497462A727855006D1F0C /* launch_screen_title.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = launch_screen_title.png; sourceTree = "<group>"; };
|
||||||
2304974B2A739ECD006D1F0C /* XPMineGuildPersonalBillRecordModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGuildPersonalBillRecordModel.h; sourceTree = "<group>"; };
|
2304974B2A739ECD006D1F0C /* XPMineGuildPersonalBillRecordModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGuildPersonalBillRecordModel.h; sourceTree = "<group>"; };
|
||||||
2304974C2A739ECD006D1F0C /* XPMineGuildPersonalBillRecordModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGuildPersonalBillRecordModel.m; sourceTree = "<group>"; };
|
2304974C2A739ECD006D1F0C /* XPMineGuildPersonalBillRecordModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGuildPersonalBillRecordModel.m; sourceTree = "<group>"; };
|
||||||
|
237B89DA2A931479005DB380 /* XPMineUserGameVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineUserGameVC.h; sourceTree = "<group>"; };
|
||||||
|
237B89DB2A931479005DB380 /* XPMineUserGameVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineUserGameVC.m; sourceTree = "<group>"; };
|
||||||
|
237B89DD2A933F52005DB380 /* XPMineUserGameCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineUserGameCell.h; sourceTree = "<group>"; };
|
||||||
|
237B89DE2A933F52005DB380 /* XPMineUserGameCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineUserGameCell.m; sourceTree = "<group>"; };
|
||||||
|
237B89E02A935701005DB380 /* XPMinePlaceOrderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMinePlaceOrderView.h; sourceTree = "<group>"; };
|
||||||
|
237B89E12A935701005DB380 /* XPMinePlaceOrderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMinePlaceOrderView.m; sourceTree = "<group>"; };
|
||||||
|
237B89E62A93574C005DB380 /* XPMinePlaceOrderCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMinePlaceOrderCell.h; sourceTree = "<group>"; };
|
||||||
|
237B89E72A93574C005DB380 /* XPMinePlaceOrderCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMinePlaceOrderCell.m; sourceTree = "<group>"; };
|
||||||
|
237B89EC2A945F81005DB380 /* XPMineUserGameTypeCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineUserGameTypeCell.h; sourceTree = "<group>"; };
|
||||||
|
237B89ED2A945F81005DB380 /* XPMineUserGameTypeCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineUserGameTypeCell.m; sourceTree = "<group>"; };
|
||||||
|
237B89EF2A948E60005DB380 /* XPRoomGameInviteBannerView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomGameInviteBannerView.h; sourceTree = "<group>"; };
|
||||||
|
237B89F02A948E60005DB380 /* XPRoomGameInviteBannerView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomGameInviteBannerView.m; sourceTree = "<group>"; };
|
||||||
|
237B89F52A949BDC005DB380 /* XPSessionMessageGameCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPSessionMessageGameCell.h; sourceTree = "<group>"; };
|
||||||
|
237B89F62A949BDC005DB380 /* XPSessionMessageGameCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPSessionMessageGameCell.m; sourceTree = "<group>"; };
|
||||||
|
237B89F82A94A7B6005DB380 /* XPSessionMessageGamePageControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPSessionMessageGamePageControl.h; sourceTree = "<group>"; };
|
||||||
|
237B89F92A94A7B6005DB380 /* XPSessionMessageGamePageControl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPSessionMessageGamePageControl.m; sourceTree = "<group>"; };
|
||||||
|
237B89FB2A94C062005DB380 /* MessageContentGameView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MessageContentGameView.h; sourceTree = "<group>"; };
|
||||||
|
237B89FC2A94C062005DB380 /* MessageContentGameView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MessageContentGameView.m; sourceTree = "<group>"; };
|
||||||
|
237B8A042A94CA11005DB380 /* XPMineGameOrderVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGameOrderVC.h; sourceTree = "<group>"; };
|
||||||
|
237B8A052A94CA11005DB380 /* XPMineGameOrderVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGameOrderVC.m; sourceTree = "<group>"; };
|
||||||
|
237B8A072A95A52B005DB380 /* XPMineGameOrderItemVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGameOrderItemVC.h; sourceTree = "<group>"; };
|
||||||
|
237B8A082A95A52B005DB380 /* XPMineGameOrderItemVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGameOrderItemVC.m; sourceTree = "<group>"; };
|
||||||
|
237B8A0B2A95A5E8005DB380 /* XPMineGameOrderItemCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGameOrderItemCell.h; sourceTree = "<group>"; };
|
||||||
|
237B8A0C2A95A5E8005DB380 /* XPMineGameOrderItemCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGameOrderItemCell.m; sourceTree = "<group>"; };
|
||||||
|
237B8A0E2A95ACAA005DB380 /* XPMineGameOrderDetailsView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGameOrderDetailsView.h; sourceTree = "<group>"; };
|
||||||
|
237B8A0F2A95ACAA005DB380 /* XPMineGameOrderDetailsView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGameOrderDetailsView.m; sourceTree = "<group>"; };
|
||||||
|
237B8A112A95DCBC005DB380 /* UserGameInfoVo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UserGameInfoVo.h; sourceTree = "<group>"; };
|
||||||
|
237B8A122A95DCBC005DB380 /* UserGameInfoVo.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UserGameInfoVo.m; sourceTree = "<group>"; };
|
||||||
|
237B8A142A973B7E005DB380 /* XPMineGameOrderItemPresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGameOrderItemPresenter.h; sourceTree = "<group>"; };
|
||||||
|
237B8A152A973B7E005DB380 /* XPMineGameOrderItemPresenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGameOrderItemPresenter.m; sourceTree = "<group>"; };
|
||||||
|
237B8A172A973BB7005DB380 /* XPMineGameOrderItemProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGameOrderItemProtocol.h; sourceTree = "<group>"; };
|
||||||
|
237B8A182A973C54005DB380 /* Api+GameOrder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+GameOrder.h"; sourceTree = "<group>"; };
|
||||||
|
237B8A192A973C54005DB380 /* Api+GameOrder.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+GameOrder.m"; sourceTree = "<group>"; };
|
||||||
|
237B94C12A98B46E007853E3 /* XPSessionMessageGameInfoView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPSessionMessageGameInfoView.h; sourceTree = "<group>"; };
|
||||||
|
237B94C22A98B46E007853E3 /* XPSessionMessageGameInfoView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPSessionMessageGameInfoView.m; sourceTree = "<group>"; };
|
||||||
23F8BFF62A7A392000A36763 /* XPRoomMessagePrivilegeCardCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomMessagePrivilegeCardCell.h; sourceTree = "<group>"; };
|
23F8BFF62A7A392000A36763 /* XPRoomMessagePrivilegeCardCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomMessagePrivilegeCardCell.h; sourceTree = "<group>"; };
|
||||||
23F8BFF72A7A392000A36763 /* XPRoomMessagePrivilegeCardCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomMessagePrivilegeCardCell.m; sourceTree = "<group>"; };
|
23F8BFF72A7A392000A36763 /* XPRoomMessagePrivilegeCardCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomMessagePrivilegeCardCell.m; sourceTree = "<group>"; };
|
||||||
7DB00EC07F1D0ADFF900B38D /* Pods-xplan-ios.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-xplan-ios.debug.xcconfig"; path = "Target Support Files/Pods-xplan-ios/Pods-xplan-ios.debug.xcconfig"; sourceTree = "<group>"; };
|
7DB00EC07F1D0ADFF900B38D /* Pods-xplan-ios.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-xplan-ios.debug.xcconfig"; path = "Target Support Files/Pods-xplan-ios/Pods-xplan-ios.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
@@ -3954,13 +4006,13 @@
|
|||||||
186A532B26FC6ED900D67B2C /* TTPopup */ = {
|
186A532B26FC6ED900D67B2C /* TTPopup */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
186A532C26FC6ED900D67B2C /* TTPopup.m */,
|
|
||||||
186A532D26FC6ED900D67B2C /* Config */,
|
186A532D26FC6ED900D67B2C /* Config */,
|
||||||
186A533626FC6ED900D67B2C /* Manager */,
|
|
||||||
186A533A26FC6ED900D67B2C /* TTPopup.h */,
|
|
||||||
186A533B26FC6ED900D67B2C /* View */,
|
|
||||||
186A534026FC6ED900D67B2C /* Service */,
|
|
||||||
186A534426FC6ED900D67B2C /* Header */,
|
186A534426FC6ED900D67B2C /* Header */,
|
||||||
|
186A533626FC6ED900D67B2C /* Manager */,
|
||||||
|
186A534026FC6ED900D67B2C /* Service */,
|
||||||
|
186A533A26FC6ED900D67B2C /* TTPopup.h */,
|
||||||
|
186A532C26FC6ED900D67B2C /* TTPopup.m */,
|
||||||
|
186A533B26FC6ED900D67B2C /* View */,
|
||||||
);
|
);
|
||||||
path = TTPopup;
|
path = TTPopup;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -4163,6 +4215,8 @@
|
|||||||
E8EEB8F626FC2673007C6EBA /* UserPhoto.m */,
|
E8EEB8F626FC2673007C6EBA /* UserPhoto.m */,
|
||||||
9B2A12DC2783FEDD00CED41B /* UserVipInfoVo.h */,
|
9B2A12DC2783FEDD00CED41B /* UserVipInfoVo.h */,
|
||||||
9B2A12DD2783FEDD00CED41B /* UserVipInfoVo.m */,
|
9B2A12DD2783FEDD00CED41B /* UserVipInfoVo.m */,
|
||||||
|
237B8A112A95DCBC005DB380 /* UserGameInfoVo.h */,
|
||||||
|
237B8A122A95DCBC005DB380 /* UserGameInfoVo.m */,
|
||||||
);
|
);
|
||||||
path = Model;
|
path = Model;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -4458,6 +4512,8 @@
|
|||||||
E873EB0B2809850D0071030D /* MessageContentCustomView.m */,
|
E873EB0B2809850D0071030D /* MessageContentCustomView.m */,
|
||||||
E873EB0D28098D500071030D /* MessageContentGiftView.h */,
|
E873EB0D28098D500071030D /* MessageContentGiftView.h */,
|
||||||
E873EB0E28098D500071030D /* MessageContentGiftView.m */,
|
E873EB0E28098D500071030D /* MessageContentGiftView.m */,
|
||||||
|
237B89FB2A94C062005DB380 /* MessageContentGameView.h */,
|
||||||
|
237B89FC2A94C062005DB380 /* MessageContentGameView.m */,
|
||||||
18AAF3EE279EA59300CD7DAD /* MessageContentTextClickable.h */,
|
18AAF3EE279EA59300CD7DAD /* MessageContentTextClickable.h */,
|
||||||
18AAF3EF279EA59300CD7DAD /* MessageContentTextClickable.m */,
|
18AAF3EF279EA59300CD7DAD /* MessageContentTextClickable.m */,
|
||||||
E80B0732280D740600A79F63 /* MessageContentGuildView.h */,
|
E80B0732280D740600A79F63 /* MessageContentGuildView.h */,
|
||||||
@@ -4633,6 +4689,74 @@
|
|||||||
path = Api;
|
path = Api;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
237B89FE2A94C9EE005DB380 /* GameOrder */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
237B89FF2A94C9EE005DB380 /* Presenter */,
|
||||||
|
237B8A002A94C9EE005DB380 /* Protocol */,
|
||||||
|
237B8A012A94C9EE005DB380 /* Model */,
|
||||||
|
237B8A022A94C9EE005DB380 /* View */,
|
||||||
|
237B8A032A94C9EE005DB380 /* Api */,
|
||||||
|
);
|
||||||
|
path = GameOrder;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
237B89FF2A94C9EE005DB380 /* Presenter */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
237B8A142A973B7E005DB380 /* XPMineGameOrderItemPresenter.h */,
|
||||||
|
237B8A152A973B7E005DB380 /* XPMineGameOrderItemPresenter.m */,
|
||||||
|
);
|
||||||
|
path = Presenter;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
237B8A002A94C9EE005DB380 /* Protocol */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
237B8A172A973BB7005DB380 /* XPMineGameOrderItemProtocol.h */,
|
||||||
|
);
|
||||||
|
path = Protocol;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
237B8A012A94C9EE005DB380 /* Model */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
);
|
||||||
|
path = Model;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
237B8A022A94C9EE005DB380 /* View */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
237B8A0A2A95A5D3005DB380 /* SubViews */,
|
||||||
|
237B8A042A94CA11005DB380 /* XPMineGameOrderVC.h */,
|
||||||
|
237B8A052A94CA11005DB380 /* XPMineGameOrderVC.m */,
|
||||||
|
237B8A072A95A52B005DB380 /* XPMineGameOrderItemVC.h */,
|
||||||
|
237B8A082A95A52B005DB380 /* XPMineGameOrderItemVC.m */,
|
||||||
|
);
|
||||||
|
path = View;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
237B8A032A94C9EE005DB380 /* Api */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
237B8A182A973C54005DB380 /* Api+GameOrder.h */,
|
||||||
|
237B8A192A973C54005DB380 /* Api+GameOrder.m */,
|
||||||
|
);
|
||||||
|
path = Api;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
237B8A0A2A95A5D3005DB380 /* SubViews */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
237B8A0B2A95A5E8005DB380 /* XPMineGameOrderItemCell.h */,
|
||||||
|
237B8A0C2A95A5E8005DB380 /* XPMineGameOrderItemCell.m */,
|
||||||
|
237B8A0E2A95ACAA005DB380 /* XPMineGameOrderDetailsView.h */,
|
||||||
|
237B8A0F2A95ACAA005DB380 /* XPMineGameOrderDetailsView.m */,
|
||||||
|
);
|
||||||
|
path = SubViews;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
9B0086C727BA4F4A0032BD2B /* Anchor */ = {
|
9B0086C727BA4F4A0032BD2B /* Anchor */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -4914,6 +5038,12 @@
|
|||||||
E8E20BDA281645300033B688 /* SessionInfoViewController.m */,
|
E8E20BDA281645300033B688 /* SessionInfoViewController.m */,
|
||||||
9B9DFD9827DB2194000F95B3 /* XPSessionMessageHeadView.h */,
|
9B9DFD9827DB2194000F95B3 /* XPSessionMessageHeadView.h */,
|
||||||
9B9DFD9927DB2194000F95B3 /* XPSessionMessageHeadView.m */,
|
9B9DFD9927DB2194000F95B3 /* XPSessionMessageHeadView.m */,
|
||||||
|
237B89F52A949BDC005DB380 /* XPSessionMessageGameCell.h */,
|
||||||
|
237B89F62A949BDC005DB380 /* XPSessionMessageGameCell.m */,
|
||||||
|
237B94C12A98B46E007853E3 /* XPSessionMessageGameInfoView.h */,
|
||||||
|
237B94C22A98B46E007853E3 /* XPSessionMessageGameInfoView.m */,
|
||||||
|
237B89F82A94A7B6005DB380 /* XPSessionMessageGamePageControl.h */,
|
||||||
|
237B89F92A94A7B6005DB380 /* XPSessionMessageGamePageControl.m */,
|
||||||
E86B911828102AF90007DEE7 /* SessionToolbarView.h */,
|
E86B911828102AF90007DEE7 /* SessionToolbarView.h */,
|
||||||
E86B911928102AF90007DEE7 /* SessionToolbarView.m */,
|
E86B911928102AF90007DEE7 /* SessionToolbarView.m */,
|
||||||
18F404B5276095D700A6C548 /* SessionChatLimitView.h */,
|
18F404B5276095D700A6C548 /* SessionChatLimitView.h */,
|
||||||
@@ -6660,6 +6790,8 @@
|
|||||||
E83DB47C2746372300D8CBD1 /* XPRoomGiftBannerView.m */,
|
E83DB47C2746372300D8CBD1 /* XPRoomGiftBannerView.m */,
|
||||||
E83DB4822746661800D8CBD1 /* XPRoomGiftBroadcastView.h */,
|
E83DB4822746661800D8CBD1 /* XPRoomGiftBroadcastView.h */,
|
||||||
E83DB4832746661800D8CBD1 /* XPRoomGiftBroadcastView.m */,
|
E83DB4832746661800D8CBD1 /* XPRoomGiftBroadcastView.m */,
|
||||||
|
237B89EF2A948E60005DB380 /* XPRoomGameInviteBannerView.h */,
|
||||||
|
237B89F02A948E60005DB380 /* XPRoomGameInviteBannerView.m */,
|
||||||
E8A03DFD27635F960098D9EA /* XPRoomCandyGiftView.h */,
|
E8A03DFD27635F960098D9EA /* XPRoomCandyGiftView.h */,
|
||||||
E8A03DFE27635F960098D9EA /* XPRoomCandyGiftView.m */,
|
E8A03DFE27635F960098D9EA /* XPRoomCandyGiftView.m */,
|
||||||
E8899C832785CC69007944BE /* XPRoomDatingAnimationView.h */,
|
E8899C832785CC69007944BE /* XPRoomDatingAnimationView.h */,
|
||||||
@@ -7656,6 +7788,8 @@
|
|||||||
E88B5CC026FB407B00DA9178 /* XPMineUserInfoViewController.m */,
|
E88B5CC026FB407B00DA9178 /* XPMineUserInfoViewController.m */,
|
||||||
E8D34D4528080295009C4835 /* XPMineUserDataViewController.h */,
|
E8D34D4528080295009C4835 /* XPMineUserDataViewController.h */,
|
||||||
E8D34D4628080295009C4835 /* XPMineUserDataViewController.m */,
|
E8D34D4628080295009C4835 /* XPMineUserDataViewController.m */,
|
||||||
|
237B89DA2A931479005DB380 /* XPMineUserGameVC.h */,
|
||||||
|
237B89DB2A931479005DB380 /* XPMineUserGameVC.m */,
|
||||||
E8EEB90426FC5772007C6EBA /* XPMineUserInfoEditViewController.h */,
|
E8EEB90426FC5772007C6EBA /* XPMineUserInfoEditViewController.h */,
|
||||||
E8EEB90526FC5772007C6EBA /* XPMineUserInfoEditViewController.m */,
|
E8EEB90526FC5772007C6EBA /* XPMineUserInfoEditViewController.m */,
|
||||||
E8EEB91226FC7786007C6EBA /* XPMineUserInfoNickViewController.h */,
|
E8EEB91226FC7786007C6EBA /* XPMineUserInfoNickViewController.h */,
|
||||||
@@ -7679,12 +7813,20 @@
|
|||||||
E8EEB8FD26FC2DF8007C6EBA /* XPMineUserInfoCustomNavView.m */,
|
E8EEB8FD26FC2DF8007C6EBA /* XPMineUserInfoCustomNavView.m */,
|
||||||
E88B5CC326FB42B000DA9178 /* XPMineUserInfoHeaderView.h */,
|
E88B5CC326FB42B000DA9178 /* XPMineUserInfoHeaderView.h */,
|
||||||
E88B5CC426FB42B000DA9178 /* XPMineUserInfoHeaderView.m */,
|
E88B5CC426FB42B000DA9178 /* XPMineUserInfoHeaderView.m */,
|
||||||
|
237B89E02A935701005DB380 /* XPMinePlaceOrderView.h */,
|
||||||
|
237B89E12A935701005DB380 /* XPMinePlaceOrderView.m */,
|
||||||
|
237B89E62A93574C005DB380 /* XPMinePlaceOrderCell.h */,
|
||||||
|
237B89E72A93574C005DB380 /* XPMinePlaceOrderCell.m */,
|
||||||
E8EEB91B26FC9D58007C6EBA /* XPMineUserInfoDateView.h */,
|
E8EEB91B26FC9D58007C6EBA /* XPMineUserInfoDateView.h */,
|
||||||
E8EEB91C26FC9D58007C6EBA /* XPMineUserInfoDateView.m */,
|
E8EEB91C26FC9D58007C6EBA /* XPMineUserInfoDateView.m */,
|
||||||
E873EB07280960990071030D /* XPMineUserInfoVoiceCardView.h */,
|
E873EB07280960990071030D /* XPMineUserInfoVoiceCardView.h */,
|
||||||
E873EB08280960990071030D /* XPMineUserInfoVoiceCardView.m */,
|
E873EB08280960990071030D /* XPMineUserInfoVoiceCardView.m */,
|
||||||
E8998D832859B4FA00C68558 /* XPMineUserInfoGiftView.h */,
|
E8998D832859B4FA00C68558 /* XPMineUserInfoGiftView.h */,
|
||||||
E8998D842859B4FA00C68558 /* XPMineUserInfoGiftView.m */,
|
E8998D842859B4FA00C68558 /* XPMineUserInfoGiftView.m */,
|
||||||
|
237B89DD2A933F52005DB380 /* XPMineUserGameCell.h */,
|
||||||
|
237B89DE2A933F52005DB380 /* XPMineUserGameCell.m */,
|
||||||
|
237B89EC2A945F81005DB380 /* XPMineUserGameTypeCell.h */,
|
||||||
|
237B89ED2A945F81005DB380 /* XPMineUserGameTypeCell.m */,
|
||||||
);
|
);
|
||||||
path = MineInfo;
|
path = MineInfo;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -9225,6 +9367,7 @@
|
|||||||
E8E70D7126F2EB4900F03460 /* View */ = {
|
E8E70D7126F2EB4900F03460 /* View */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
237B89FE2A94C9EE005DB380 /* GameOrder */,
|
||||||
9BCB999D28F5716E00466D64 /* CollectRoom */,
|
9BCB999D28F5716E00466D64 /* CollectRoom */,
|
||||||
E83A2A2F282F4E06002AD58F /* EnterpriseRecharge */,
|
E83A2A2F282F4E06002AD58F /* EnterpriseRecharge */,
|
||||||
E8E20BDF281695430033B688 /* Setting */,
|
E8E20BDF281695430033B688 /* Setting */,
|
||||||
@@ -9575,13 +9718,13 @@
|
|||||||
E8EEB8EA26FC2050007C6EBA /* SDPhotoBrowser */ = {
|
E8EEB8EA26FC2050007C6EBA /* SDPhotoBrowser */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
E8EEB8EB26FC2050007C6EBA /* SDPhotoBrowserConfig.h */,
|
|
||||||
E8EEB8EC26FC2050007C6EBA /* SDPhotoBrowser.m */,
|
|
||||||
E8EEB8ED26FC2050007C6EBA /* SDWaitingView.m */,
|
|
||||||
E8EEB8EE26FC2050007C6EBA /* SDBrowserImageView.m */,
|
|
||||||
E8EEB8EF26FC2050007C6EBA /* SDWaitingView.h */,
|
|
||||||
E8EEB8F026FC2050007C6EBA /* SDPhotoBrowser.h */,
|
|
||||||
E8EEB8F126FC2050007C6EBA /* SDBrowserImageView.h */,
|
E8EEB8F126FC2050007C6EBA /* SDBrowserImageView.h */,
|
||||||
|
E8EEB8EE26FC2050007C6EBA /* SDBrowserImageView.m */,
|
||||||
|
E8EEB8F026FC2050007C6EBA /* SDPhotoBrowser.h */,
|
||||||
|
E8EEB8EC26FC2050007C6EBA /* SDPhotoBrowser.m */,
|
||||||
|
E8EEB8EB26FC2050007C6EBA /* SDPhotoBrowserConfig.h */,
|
||||||
|
E8EEB8EF26FC2050007C6EBA /* SDWaitingView.h */,
|
||||||
|
E8EEB8ED26FC2050007C6EBA /* SDWaitingView.m */,
|
||||||
);
|
);
|
||||||
path = SDPhotoBrowser;
|
path = SDPhotoBrowser;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -10011,6 +10154,7 @@
|
|||||||
9B2A12E427846D7100CED41B /* NobleRechargeModel.m in Sources */,
|
9B2A12E427846D7100CED41B /* NobleRechargeModel.m in Sources */,
|
||||||
E88B5CBA26FB329C00DA9178 /* XPMineTeenagerPwdProtocol.h in Sources */,
|
E88B5CBA26FB329C00DA9178 /* XPMineTeenagerPwdProtocol.h in Sources */,
|
||||||
E87C54BE2823CC5B0051AA11 /* XPMineResetLoginPwdPresenter.m in Sources */,
|
E87C54BE2823CC5B0051AA11 /* XPMineResetLoginPwdPresenter.m in Sources */,
|
||||||
|
237B89DC2A931479005DB380 /* XPMineUserGameVC.m in Sources */,
|
||||||
E83953222769F33B00CF2F24 /* XPRoomFunctionContainerView.m in Sources */,
|
E83953222769F33B00CF2F24 /* XPRoomFunctionContainerView.m in Sources */,
|
||||||
E8D34D4A28080335009C4835 /* XPMineDataSkillCardTableViewCell.m in Sources */,
|
E8D34D4A28080335009C4835 /* XPMineDataSkillCardTableViewCell.m in Sources */,
|
||||||
E87C0AA027D9DE6400CB2241 /* RoomFaceSendInfoModel.m in Sources */,
|
E87C0AA027D9DE6400CB2241 /* RoomFaceSendInfoModel.m in Sources */,
|
||||||
@@ -10112,6 +10256,7 @@
|
|||||||
E80E2372299A1C380013FD40 /* XPStarredKitchenModel.m in Sources */,
|
E80E2372299A1C380013FD40 /* XPStarredKitchenModel.m in Sources */,
|
||||||
E84150BB27747BAF00A7F548 /* XPFirstRechargePresenter.m in Sources */,
|
E84150BB27747BAF00A7F548 /* XPFirstRechargePresenter.m in Sources */,
|
||||||
14A0CF4D29C0511200B2375A /* XPMineRechargeFooterReusableView.m in Sources */,
|
14A0CF4D29C0511200B2375A /* XPMineRechargeFooterReusableView.m in Sources */,
|
||||||
|
237B89E22A935701005DB380 /* XPMinePlaceOrderView.m in Sources */,
|
||||||
E800806B27FD42B00055A8AB /* XPClanRoomCollectionViewCell.m in Sources */,
|
E800806B27FD42B00055A8AB /* XPClanRoomCollectionViewCell.m in Sources */,
|
||||||
E8A88D2D27E81E8700CA8837 /* RoomPKChooseUserModel.m in Sources */,
|
E8A88D2D27E81E8700CA8837 /* RoomPKChooseUserModel.m in Sources */,
|
||||||
9BEE3D1727858E5700C83219 /* XPNobleAuthorityDescView.m in Sources */,
|
9BEE3D1727858E5700C83219 /* XPNobleAuthorityDescView.m in Sources */,
|
||||||
@@ -10158,6 +10303,7 @@
|
|||||||
9B86D88328192DC000494FCD /* XPRoomRankEntranceView.m in Sources */,
|
9B86D88328192DC000494FCD /* XPRoomRankEntranceView.m in Sources */,
|
||||||
18F404B7276095D700A6C548 /* SessionChatLimitView.m in Sources */,
|
18F404B7276095D700A6C548 /* SessionChatLimitView.m in Sources */,
|
||||||
E8788942273A55AD00BF1D57 /* XPGiftUsersView.m in Sources */,
|
E8788942273A55AD00BF1D57 /* XPGiftUsersView.m in Sources */,
|
||||||
|
237B94C32A98B46E007853E3 /* XPSessionMessageGameInfoView.m in Sources */,
|
||||||
9B8585D3278837CE00D7D5C6 /* NobleLevelUpModel.m in Sources */,
|
9B8585D3278837CE00D7D5C6 /* NobleLevelUpModel.m in Sources */,
|
||||||
9BD9A17927A0EC57004186FE /* XPMineVisitorPresenter.m in Sources */,
|
9BD9A17927A0EC57004186FE /* XPMineVisitorPresenter.m in Sources */,
|
||||||
E8BD0F8828A9E9E400DE050D /* RoomSailingPrizeModel.m in Sources */,
|
E8BD0F8828A9E9E400DE050D /* RoomSailingPrizeModel.m in Sources */,
|
||||||
@@ -10281,6 +10427,7 @@
|
|||||||
E8C1672D2806BD8B00ECB15C /* XPGuildSuperAdminRoomCollectionViewCell.m in Sources */,
|
E8C1672D2806BD8B00ECB15C /* XPGuildSuperAdminRoomCollectionViewCell.m in Sources */,
|
||||||
230496F02A6E1F1F006D1F0C /* XPPrivilegeCardPresenter.m in Sources */,
|
230496F02A6E1F1F006D1F0C /* XPPrivilegeCardPresenter.m in Sources */,
|
||||||
E8EEB8F226FC2050007C6EBA /* SDPhotoBrowser.m in Sources */,
|
E8EEB8F226FC2050007C6EBA /* SDPhotoBrowser.m in Sources */,
|
||||||
|
237B89EE2A945F81005DB380 /* XPMineUserGameTypeCell.m in Sources */,
|
||||||
E81C27AB26EF2D920031E639 /* ThirdUserInfo.m in Sources */,
|
E81C27AB26EF2D920031E639 /* ThirdUserInfo.m in Sources */,
|
||||||
E8788950273A699900BF1D57 /* ThemeColor+SendGift.m in Sources */,
|
E8788950273A699900BF1D57 /* ThemeColor+SendGift.m in Sources */,
|
||||||
E81C279D26EEEC620031E639 /* XPConstant.m in Sources */,
|
E81C279D26EEEC620031E639 /* XPConstant.m in Sources */,
|
||||||
@@ -10346,6 +10493,7 @@
|
|||||||
E877A7F127842B2F00EFACED /* XPRoomDatingWebAlertView.m in Sources */,
|
E877A7F127842B2F00EFACED /* XPRoomDatingWebAlertView.m in Sources */,
|
||||||
E80016382804140D00D6D17A /* XPMineGuildIncomeStatisViewController.m in Sources */,
|
E80016382804140D00D6D17A /* XPMineGuildIncomeStatisViewController.m in Sources */,
|
||||||
E8E859C728264C2300EE4857 /* HTTPRedirectResponse.m in Sources */,
|
E8E859C728264C2300EE4857 /* HTTPRedirectResponse.m in Sources */,
|
||||||
|
237B8A1A2A973C54005DB380 /* Api+GameOrder.m in Sources */,
|
||||||
E8E70D8326F2F51A00F03460 /* XPMineHeadView.m in Sources */,
|
E8E70D8326F2F51A00F03460 /* XPMineHeadView.m in Sources */,
|
||||||
E80EC81128ACD84000D133C5 /* QEmotionHelper.m in Sources */,
|
E80EC81128ACD84000D133C5 /* QEmotionHelper.m in Sources */,
|
||||||
E8B825D026EA3825009E8E9F /* LoginPasswordViewController.m in Sources */,
|
E8B825D026EA3825009E8E9F /* LoginPasswordViewController.m in Sources */,
|
||||||
@@ -10355,6 +10503,7 @@
|
|||||||
E83ABEF6280E9AD800322EE4 /* MessageContentUnSupportView.m in Sources */,
|
E83ABEF6280E9AD800322EE4 /* MessageContentUnSupportView.m in Sources */,
|
||||||
E8AC721326F46ADD007D6E91 /* XPMineSettingViewController.m in Sources */,
|
E8AC721326F46ADD007D6E91 /* XPMineSettingViewController.m in Sources */,
|
||||||
18E7B32126F098650064BC9B /* UserInfoSkillVo.m in Sources */,
|
18E7B32126F098650064BC9B /* UserInfoSkillVo.m in Sources */,
|
||||||
|
237B8A062A94CA11005DB380 /* XPMineGameOrderVC.m in Sources */,
|
||||||
14F9797429B75C5F004BBFEB /* XPCycleView.m in Sources */,
|
14F9797429B75C5F004BBFEB /* XPCycleView.m in Sources */,
|
||||||
E8AC722726F482A4007D6E91 /* XPMineFeedbackPresenter.m in Sources */,
|
E8AC722726F482A4007D6E91 /* XPMineFeedbackPresenter.m in Sources */,
|
||||||
E86B911A28102AF90007DEE7 /* SessionToolbarView.m in Sources */,
|
E86B911A28102AF90007DEE7 /* SessionToolbarView.m in Sources */,
|
||||||
@@ -10378,6 +10527,7 @@
|
|||||||
E8950180282CAC49007E459A /* XPMonentsUserInfoView.m in Sources */,
|
E8950180282CAC49007E459A /* XPMonentsUserInfoView.m in Sources */,
|
||||||
9B92C02227E0BD040044C5EA /* XPNobleTrumpetModel.m in Sources */,
|
9B92C02227E0BD040044C5EA /* XPNobleTrumpetModel.m in Sources */,
|
||||||
230497012A6E5A60006D1F0C /* XPPrivilegeCardProduceView.m in Sources */,
|
230497012A6E5A60006D1F0C /* XPPrivilegeCardProduceView.m in Sources */,
|
||||||
|
237B8A162A973B7E005DB380 /* XPMineGameOrderItemPresenter.m in Sources */,
|
||||||
14F9797129B75B8C004BBFEB /* XPCycleVerticalView.m in Sources */,
|
14F9797129B75B8C004BBFEB /* XPCycleVerticalView.m in Sources */,
|
||||||
18F404C927609A4300A6C548 /* MessagePresenter.m in Sources */,
|
18F404C927609A4300A6C548 /* MessagePresenter.m in Sources */,
|
||||||
9BC9DAEF27E33B3F009EE409 /* XPRoomGiftAnimationParser.m in Sources */,
|
9BC9DAEF27E33B3F009EE409 /* XPRoomGiftAnimationParser.m in Sources */,
|
||||||
@@ -10413,6 +10563,7 @@
|
|||||||
E8664ED927E4355C000171BA /* XPRoomPKRecordTableViewCell.m in Sources */,
|
E8664ED927E4355C000171BA /* XPRoomPKRecordTableViewCell.m in Sources */,
|
||||||
E8C6FFD027548256004DC9F0 /* XPHomeListCollectionViewCell.m in Sources */,
|
E8C6FFD027548256004DC9F0 /* XPHomeListCollectionViewCell.m in Sources */,
|
||||||
E8A1F794290642500099C952 /* XPRoomMorePlayViewController.m in Sources */,
|
E8A1F794290642500099C952 /* XPRoomMorePlayViewController.m in Sources */,
|
||||||
|
237B8A132A95DCBC005DB380 /* UserGameInfoVo.m in Sources */,
|
||||||
E84BF7DD277C765400EF8877 /* XPRoomRoleEmptyTableViewCell.m in Sources */,
|
E84BF7DD277C765400EF8877 /* XPRoomRoleEmptyTableViewCell.m in Sources */,
|
||||||
E8F6135C291E26BD00E12650 /* NSMutableDictionary+Saft.m in Sources */,
|
E8F6135C291E26BD00E12650 /* NSMutableDictionary+Saft.m in Sources */,
|
||||||
E8E859C428264C2300EE4857 /* HTTPDynamicFileResponse.m in Sources */,
|
E8E859C428264C2300EE4857 /* HTTPDynamicFileResponse.m in Sources */,
|
||||||
@@ -10430,6 +10581,7 @@
|
|||||||
E8B846C226FD82DC00A777FE /* XPMineUserInfoAlbumCollectionViewCell.m in Sources */,
|
E8B846C226FD82DC00A777FE /* XPMineUserInfoAlbumCollectionViewCell.m in Sources */,
|
||||||
E816C11527608A7500C84014 /* XPRoomMiniManager.m in Sources */,
|
E816C11527608A7500C84014 /* XPRoomMiniManager.m in Sources */,
|
||||||
E8EEB91726FC7B35007C6EBA /* XPMineUserInfoDesViewController.m in Sources */,
|
E8EEB91726FC7B35007C6EBA /* XPMineUserInfoDesViewController.m in Sources */,
|
||||||
|
237B89F72A949BDC005DB380 /* XPSessionMessageGameCell.m in Sources */,
|
||||||
9B1B72AC280031DB003FACE9 /* XPAnchorPKViewController.m in Sources */,
|
9B1B72AC280031DB003FACE9 /* XPAnchorPKViewController.m in Sources */,
|
||||||
E80CBDED27D0D899001E1EC2 /* XPHomeLikeEmptyTableViewCell.m in Sources */,
|
E80CBDED27D0D899001E1EC2 /* XPHomeLikeEmptyTableViewCell.m in Sources */,
|
||||||
9BEBBF4329384BB20024E0B4 /* HomeSearchHijackBaseModel.m in Sources */,
|
9BEBBF4329384BB20024E0B4 /* HomeSearchHijackBaseModel.m in Sources */,
|
||||||
@@ -10473,6 +10625,7 @@
|
|||||||
E8A03DF0276303D40098D9EA /* XPCandyTreeRankTableViewCell.m in Sources */,
|
E8A03DF0276303D40098D9EA /* XPCandyTreeRankTableViewCell.m in Sources */,
|
||||||
14A0CF5029C0542D00B2375A /* XPMinePayHeaderReusableView.m in Sources */,
|
14A0CF5029C0542D00B2375A /* XPMinePayHeaderReusableView.m in Sources */,
|
||||||
E801274E27E3280000BAC3F2 /* XPRoomPKVoteTableViewCell.m in Sources */,
|
E801274E27E3280000BAC3F2 /* XPRoomPKVoteTableViewCell.m in Sources */,
|
||||||
|
237B89E82A93574C005DB380 /* XPMinePlaceOrderCell.m in Sources */,
|
||||||
9BCF58532798FDA1008401A4 /* XPSkillCardModel.m in Sources */,
|
9BCF58532798FDA1008401A4 /* XPSkillCardModel.m in Sources */,
|
||||||
18E7B1B726E8B2D10064BC9B /* Api+Main.m in Sources */,
|
18E7B1B726E8B2D10064BC9B /* Api+Main.m in Sources */,
|
||||||
E8B846D326FDDBE600A777FE /* XPMineRechargeTableViewCell.m in Sources */,
|
E8B846D326FDDBE600A777FE /* XPMineRechargeTableViewCell.m in Sources */,
|
||||||
@@ -10520,6 +10673,7 @@
|
|||||||
186A534726FC6ED900D67B2C /* TTAlertConfig.m in Sources */,
|
186A534726FC6ED900D67B2C /* TTAlertConfig.m in Sources */,
|
||||||
14566F2629BACBC500C73AE5 /* XPNewHomeFilterView.m in Sources */,
|
14566F2629BACBC500C73AE5 /* XPNewHomeFilterView.m in Sources */,
|
||||||
18F403EE2758CF2F00A6C548 /* MessageContentImage.m in Sources */,
|
18F403EE2758CF2F00A6C548 /* MessageContentImage.m in Sources */,
|
||||||
|
237B89DF2A933F52005DB380 /* XPMineUserGameCell.m in Sources */,
|
||||||
18E7B31E26F0984C0064BC9B /* UserLevelVo.m in Sources */,
|
18E7B31E26F0984C0064BC9B /* UserLevelVo.m in Sources */,
|
||||||
E8DBB70127B6501200AA285D /* XPLittleGameMiniStageView.m in Sources */,
|
E8DBB70127B6501200AA285D /* XPLittleGameMiniStageView.m in Sources */,
|
||||||
E851E46227FF1314002F3ACB /* XPMineGuildEmptyTableViewCell.m in Sources */,
|
E851E46227FF1314002F3ACB /* XPMineGuildEmptyTableViewCell.m in Sources */,
|
||||||
@@ -10753,6 +10907,7 @@
|
|||||||
9B9DFD9A27DB2194000F95B3 /* XPSessionMessageHeadView.m in Sources */,
|
9B9DFD9A27DB2194000F95B3 /* XPSessionMessageHeadView.m in Sources */,
|
||||||
E8901CF628B38D89001E9A92 /* XPGraffitiGiftView.m in Sources */,
|
E8901CF628B38D89001E9A92 /* XPGraffitiGiftView.m in Sources */,
|
||||||
E81A6546283519CA00F55894 /* MonentsTopicModel.m in Sources */,
|
E81A6546283519CA00F55894 /* MonentsTopicModel.m in Sources */,
|
||||||
|
237B89FA2A94A7B6005DB380 /* XPSessionMessageGamePageControl.m in Sources */,
|
||||||
E8C1672A2806B1E500ECB15C /* XPGuildSuperAdminSetTableViewCell.m in Sources */,
|
E8C1672A2806B1E500ECB15C /* XPGuildSuperAdminSetTableViewCell.m in Sources */,
|
||||||
14973CAE29C1BD9E008E93E0 /* XPRoomRankListModel.m in Sources */,
|
14973CAE29C1BD9E008E93E0 /* XPRoomRankListModel.m in Sources */,
|
||||||
E8834E4528003A8F0029CCC1 /* XPMineMangerListViewController.m in Sources */,
|
E8834E4528003A8F0029CCC1 /* XPMineMangerListViewController.m in Sources */,
|
||||||
@@ -10842,9 +10997,12 @@
|
|||||||
E884C3722743AEDE00E1EBED /* CustomAttachmentDecoder.m in Sources */,
|
E884C3722743AEDE00E1EBED /* CustomAttachmentDecoder.m in Sources */,
|
||||||
18EE3FEE2750CE6D00A452BF /* NIMMessageUtils.m in Sources */,
|
18EE3FEE2750CE6D00A452BF /* NIMMessageUtils.m in Sources */,
|
||||||
E81A65372834E5D200F55894 /* XPMonentsAttentionPresenter.m in Sources */,
|
E81A65372834E5D200F55894 /* XPMonentsAttentionPresenter.m in Sources */,
|
||||||
|
237B89FD2A94C062005DB380 /* MessageContentGameView.m in Sources */,
|
||||||
E8DEC9AC2764A6CD0078CB70 /* XPRoomMoreMenuCollectionViewCell.m in Sources */,
|
E8DEC9AC2764A6CD0078CB70 /* XPRoomMoreMenuCollectionViewCell.m in Sources */,
|
||||||
E81DCCD0282B63FD0039E5C5 /* XPMonentsRecommendViewController.m in Sources */,
|
E81DCCD0282B63FD0039E5C5 /* XPMonentsRecommendViewController.m in Sources */,
|
||||||
9B7D804A2753783D003DAC0C /* SessionViewController.m in Sources */,
|
9B7D804A2753783D003DAC0C /* SessionViewController.m in Sources */,
|
||||||
|
237B8A0D2A95A5E8005DB380 /* XPMineGameOrderItemCell.m in Sources */,
|
||||||
|
237B8A092A95A52B005DB380 /* XPMineGameOrderItemVC.m in Sources */,
|
||||||
E839533F276A0CDB00CF2F24 /* XPMineNameplateTableViewCell.m in Sources */,
|
E839533F276A0CDB00CF2F24 /* XPMineNameplateTableViewCell.m in Sources */,
|
||||||
9B73CD11279AE99B006AF255 /* XPSkillCardListCell.m in Sources */,
|
9B73CD11279AE99B006AF255 /* XPSkillCardListCell.m in Sources */,
|
||||||
E8B846BC26FD7C1200A777FE /* UploadImage.m in Sources */,
|
E8B846BC26FD7C1200A777FE /* UploadImage.m in Sources */,
|
||||||
@@ -10991,12 +11149,14 @@
|
|||||||
E88B5CB826FB325200DA9178 /* XPMineTeenagerPwdPresenter.m in Sources */,
|
E88B5CB826FB325200DA9178 /* XPMineTeenagerPwdPresenter.m in Sources */,
|
||||||
9B92A3472797EECD00AD168F /* XPMatchManageViewController.m in Sources */,
|
9B92A3472797EECD00AD168F /* XPMatchManageViewController.m in Sources */,
|
||||||
E84B0E462727EF9D008818C6 /* XPRoomMessageParser.m in Sources */,
|
E84B0E462727EF9D008818C6 /* XPRoomMessageParser.m in Sources */,
|
||||||
|
237B8A102A95ACAA005DB380 /* XPMineGameOrderDetailsView.m in Sources */,
|
||||||
E838D9A0275E1BF60079E0B5 /* XPRoomAnimationView.m in Sources */,
|
E838D9A0275E1BF60079E0B5 /* XPRoomAnimationView.m in Sources */,
|
||||||
9B0086C627BA392B0032BD2B /* AnchorStageView.m in Sources */,
|
9B0086C627BA392B0032BD2B /* AnchorStageView.m in Sources */,
|
||||||
9BCD02C72796C02800F396AA /* MicroNobleWaveView.m in Sources */,
|
9BCD02C72796C02800F396AA /* MicroNobleWaveView.m in Sources */,
|
||||||
E887532329BB29BA0017A41A /* XPCandyTreeRuleView.m in Sources */,
|
E887532329BB29BA0017A41A /* XPCandyTreeRuleView.m in Sources */,
|
||||||
9B73CD09279A9AA2006AF255 /* XPSkillCardUpdatePropModel.m in Sources */,
|
9B73CD09279A9AA2006AF255 /* XPSkillCardUpdatePropModel.m in Sources */,
|
||||||
E874B88827215D39003954B9 /* MicroStateModel.m in Sources */,
|
E874B88827215D39003954B9 /* MicroStateModel.m in Sources */,
|
||||||
|
237B89F12A948E60005DB380 /* XPRoomGameInviteBannerView.m in Sources */,
|
||||||
E877A7F427842EF800EFACED /* XPRoomDatingVipUpMicView.m in Sources */,
|
E877A7F427842EF800EFACED /* XPRoomDatingVipUpMicView.m in Sources */,
|
||||||
14E9019B29CC546000B57C22 /* XPRoomWelcomeModel.m in Sources */,
|
14E9019B29CC546000B57C22 /* XPRoomWelcomeModel.m in Sources */,
|
||||||
E896EF9F2771AE7B00AD2CC1 /* XPMineAttentionViewController.m in Sources */,
|
E896EF9F2771AE7B00AD2CC1 /* XPMineAttentionViewController.m in Sources */,
|
||||||
@@ -11197,7 +11357,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.2.1;
|
MARKETING_VERSION = 1.3.0;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = cn.nnbc123.voice;
|
PRODUCT_BUNDLE_IDENTIFIER = cn.nnbc123.voice;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
@@ -11230,7 +11390,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.2.1;
|
MARKETING_VERSION = 1.3.0;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = cn.nnbc123.voice;
|
PRODUCT_BUNDLE_IDENTIFIER = cn.nnbc123.voice;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
|
@@ -5,12 +5,12 @@
|
|||||||
"scale" : "1x"
|
"scale" : "1x"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "message_session_nav_like@2x.png",
|
"filename" : "王者@2x.png",
|
||||||
"idiom" : "universal",
|
"idiom" : "universal",
|
||||||
"scale" : "2x"
|
"scale" : "2x"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "message_session_nav_like@3x.png",
|
"filename" : "王者@3x.png",
|
||||||
"idiom" : "universal",
|
"idiom" : "universal",
|
||||||
"scale" : "3x"
|
"scale" : "3x"
|
||||||
}
|
}
|
BIN
xplan-ios/Assets.xcassets/Home/home_game_type.imageset/王者@2x.png
vendored
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
xplan-ios/Assets.xcassets/Home/home_game_type.imageset/王者@3x.png
vendored
Normal file
After Width: | Height: | Size: 4.0 KiB |
22
xplan-ios/Assets.xcassets/Home/home_gamge_icon.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "home_gamge_icon@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "home_gamge_icon@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
xplan-ios/Assets.xcassets/Home/home_gamge_icon.imageset/home_gamge_icon@2x.png
vendored
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
xplan-ios/Assets.xcassets/Home/home_gamge_icon.imageset/home_gamge_icon@3x.png
vendored
Normal file
After Width: | Height: | Size: 4.1 KiB |
22
xplan-ios/Assets.xcassets/Mine/mine_game_copy.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "mine_game_copy@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "mine_game_copy@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
xplan-ios/Assets.xcassets/Mine/mine_game_copy.imageset/mine_game_copy@2x.png
vendored
Normal file
After Width: | Height: | Size: 294 B |
BIN
xplan-ios/Assets.xcassets/Mine/mine_game_copy.imageset/mine_game_copy@3x.png
vendored
Normal file
After Width: | Height: | Size: 400 B |
22
xplan-ios/Assets.xcassets/Mine/mine_game_diamond.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "mine_game_diamond@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "mine_game_diamond@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
xplan-ios/Assets.xcassets/Mine/mine_game_diamond.imageset/mine_game_diamond@2x.png
vendored
Normal file
After Width: | Height: | Size: 913 B |
BIN
xplan-ios/Assets.xcassets/Mine/mine_game_diamond.imageset/mine_game_diamond@3x.png
vendored
Normal file
After Width: | Height: | Size: 1.4 KiB |
22
xplan-ios/Assets.xcassets/Mine/mine_game_new_diamond.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "mine_game_new_diamond@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "mine_game_new_diamond@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
xplan-ios/Assets.xcassets/Mine/mine_game_new_diamond.imageset/mine_game_new_diamond@2x.png
vendored
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
xplan-ios/Assets.xcassets/Mine/mine_game_new_diamond.imageset/mine_game_new_diamond@3x.png
vendored
Normal file
After Width: | Height: | Size: 1.9 KiB |
22
xplan-ios/Assets.xcassets/Mine/mine_green_protection_icon.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "mine_green_protection_icon@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "mine_green_protection_icon@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
xplan-ios/Assets.xcassets/Mine/mine_green_protection_icon.imageset/mine_green_protection_icon@2x.png
vendored
Normal file
After Width: | Height: | Size: 502 B |
BIN
xplan-ios/Assets.xcassets/Mine/mine_green_protection_icon.imageset/mine_green_protection_icon@3x.png
vendored
Normal file
After Width: | Height: | Size: 792 B |
22
xplan-ios/Assets.xcassets/Mine/mine_user_game_cell_bg.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "mine_user_game_cell_bg@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "mine_user_game_cell_bg@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
xplan-ios/Assets.xcassets/Mine/mine_user_game_cell_bg.imageset/mine_user_game_cell_bg@2x.png
vendored
Normal file
After Width: | Height: | Size: 900 B |
BIN
xplan-ios/Assets.xcassets/Mine/mine_user_game_cell_bg.imageset/mine_user_game_cell_bg@3x.png
vendored
Normal file
After Width: | Height: | Size: 1.4 KiB |
22
xplan-ios/Assets.xcassets/Mine/mine_user_game_cell_pay_bg.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "mine_user_game_cell_pay_bg@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "mine_user_game_cell_pay_bg@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
xplan-ios/Assets.xcassets/Mine/mine_user_game_cell_pay_bg.imageset/mine_user_game_cell_pay_bg@2x.png
vendored
Normal file
After Width: | Height: | Size: 434 B |
BIN
xplan-ios/Assets.xcassets/Mine/mine_user_game_cell_pay_bg.imageset/mine_user_game_cell_pay_bg@3x.png
vendored
Normal file
After Width: | Height: | Size: 711 B |
22
xplan-ios/Assets.xcassets/Mine/mine_user_info_bottom_ban_normal.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "mine_user_info_bottom_ban_normal@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "mine_user_info_bottom_ban_normal@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 428 B |
After Width: | Height: | Size: 659 B |
22
xplan-ios/Assets.xcassets/Mine/mine_user_info_bottom_new_attention_select.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "mine_user_info_bottom_new_attention_select@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "mine_user_info_bottom_new_attention_select@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 423 B |
After Width: | Height: | Size: 687 B |
22
xplan-ios/Assets.xcassets/Room/Activity/room_game_invite_banner_back.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "room_game_invite_banner_back@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "room_game_invite_banner_back@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 276 B |
After Width: | Height: | Size: 412 B |
22
xplan-ios/Assets.xcassets/Room/Activity/room_game_invite_banner_bg.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "room_game_invite_banner_bg@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "room_game_invite_banner_bg@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 10 KiB |
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "room_game_invite_banner_inspectView@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "room_game_invite_banner_inspectView@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 2.7 KiB |
22
xplan-ios/Assets.xcassets/Room/Activity/room_game_invite_banner_top.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "room_game_invite_banner_top@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "room_game_invite_banner_top@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 9.7 KiB |
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Session_Message_Game_InfoView_arrow@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Session_Message_Game_InfoView_arrow@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 169 B |
After Width: | Height: | Size: 243 B |
22
xplan-ios/Assets.xcassets/SessionMessage/message_session_game_Invite_bg.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "message_session_game_Invite_bg@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "message_session_game_Invite_bg@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 568 B |
Before Width: | Height: | Size: 902 B |
Before Width: | Height: | Size: 418 B After Width: | Height: | Size: 193 B |
Before Width: | Height: | Size: 776 B After Width: | Height: | Size: 263 B |
53
xplan-ios/Base/MVP/Model/UserGameInfoVo.h
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
//
|
||||||
|
// UserGameInfoVo.h
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by duoban on 2023/8/23.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
@class UserGameTagInfo;
|
||||||
|
@interface UserGameInfoVo : NSObject
|
||||||
|
@property(nonatomic,copy) NSString *firstGameName;
|
||||||
|
@property(nonatomic,copy) NSString *firstLogo;
|
||||||
|
@property(nonatomic,copy) NSString *secondGameName;
|
||||||
|
@property(nonatomic,copy) NSArray<UserGameTagInfo *> *tags;
|
||||||
|
@property(nonatomic,copy) NSString *finishNum;
|
||||||
|
@property(nonatomic,copy) NSString *gameId;
|
||||||
|
@property(nonatomic,copy) NSString *gameName;
|
||||||
|
@property(nonatomic,copy) NSString *logo;
|
||||||
|
@property(nonatomic,copy) NSString *gameLogo;
|
||||||
|
@property(nonatomic,copy) NSString *price;
|
||||||
|
@property(nonatomic,copy) NSString *seq;
|
||||||
|
@property(nonatomic,copy) NSString *uid;
|
||||||
|
@property(nonatomic,copy) NSString *background;
|
||||||
|
@property(nonatomic,copy) NSString *tier;
|
||||||
|
@property(nonatomic,copy) NSString *amount;
|
||||||
|
@property(nonatomic,copy) NSString *orderNo;
|
||||||
|
@property(nonatomic,copy) NSString *inning;
|
||||||
|
@property(nonatomic,copy) NSString *toErBanNo;
|
||||||
|
@property(nonatomic,copy) NSString *toNick;
|
||||||
|
@property(nonatomic,copy) NSString *toAvatar;
|
||||||
|
@property(nonatomic,copy) NSString *fromNick;
|
||||||
|
@property(nonatomic,copy) NSString *fromAvatar;
|
||||||
|
@property(nonatomic,copy) NSString *createTime;
|
||||||
|
@property(nonatomic,copy) NSString *orderTime;
|
||||||
|
@property(nonatomic,copy) NSString *toUid;
|
||||||
|
@property(nonatomic,copy) NSString *fromUid;
|
||||||
|
@property(nonatomic,copy) NSString *tagRgb;
|
||||||
|
@property(nonatomic,copy) NSString *tagBg;
|
||||||
|
@property(nonatomic,copy) NSString *btnRgb;
|
||||||
|
@property(nonatomic,copy) NSString *btnBg;
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@interface UserGameTagInfo : NSObject
|
||||||
|
@property(nonatomic,copy) NSString *seq;
|
||||||
|
@property(nonatomic,copy) NSString *tagName;
|
||||||
|
@property(nonatomic,copy) NSString *tagVal;
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
24
xplan-ios/Base/MVP/Model/UserGameInfoVo.m
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
//
|
||||||
|
// UserGameInfoVo.m
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by duoban on 2023/8/23.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "UserGameInfoVo.h"
|
||||||
|
|
||||||
|
@implementation UserGameInfoVo
|
||||||
|
+ (NSDictionary *)objectClassInArray {
|
||||||
|
return @{
|
||||||
|
@"tags":UserGameTagInfo.class,
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@implementation UserGameTagInfo
|
||||||
|
|
||||||
|
@end
|
@@ -14,6 +14,7 @@
|
|||||||
#import "UserGiftWallInfoModel.h"
|
#import "UserGiftWallInfoModel.h"
|
||||||
#import "XPEnum.h"
|
#import "XPEnum.h"
|
||||||
#import "MonentsInfoModel.h"
|
#import "MonentsInfoModel.h"
|
||||||
|
#import "UserGameInfoVo.h"
|
||||||
NS_ASSUME_NONNULL_BEGIN
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
|
||||||
@@ -137,8 +138,10 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
@property (nonatomic,assign) BOOL banAccount;
|
@property (nonatomic,assign) BOOL banAccount;
|
||||||
///用户的动态
|
///用户的动态
|
||||||
@property (nonatomic,strong) NSArray<MonentsInfoModel *> *dynamicInfo;
|
@property (nonatomic,strong) NSArray<MonentsInfoModel *> *dynamicInfo;
|
||||||
|
///首页点单游戏信息
|
||||||
|
@property(nonatomic,strong) UserGameInfoVo *userGamePartnerVo;
|
||||||
|
///个人详情资料的点单游戏信息
|
||||||
|
@property(nonatomic,strong) NSArray<UserGameInfoVo *> *userGamePartner;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_END
|
NS_ASSUME_NONNULL_END
|
||||||
|
@@ -14,7 +14,8 @@
|
|||||||
@"privatePhoto":UserPhoto.class,
|
@"privatePhoto":UserPhoto.class,
|
||||||
@"userGiftWall":UserGiftWallInfoModel.class,
|
@"userGiftWall":UserGiftWallInfoModel.class,
|
||||||
@"userLuckyBagGiftWall":UserGiftWallInfoModel.class,
|
@"userLuckyBagGiftWall":UserGiftWallInfoModel.class,
|
||||||
@"dynamicInfo":MonentsInfoModel.class
|
@"dynamicInfo":MonentsInfoModel.class,
|
||||||
|
@"userGamePartner":UserGameInfoVo.class
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -8,9 +8,9 @@
|
|||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
#import <UIKit/UIKit.h>
|
||||||
#import "SDWaitingView.h"
|
#import "SDWaitingView.h"
|
||||||
|
#import <SDWebImageFLPlugin/SDWebImageFLPlugin.h>
|
||||||
|
|
||||||
|
@interface SDBrowserImageView : FLAnimatedImageView <UIGestureRecognizerDelegate>
|
||||||
@interface SDBrowserImageView : UIImageView <UIGestureRecognizerDelegate>
|
|
||||||
|
|
||||||
@property (nonatomic, assign) CGFloat progress;
|
@property (nonatomic, assign) CGFloat progress;
|
||||||
@property (nonatomic, assign, readonly) BOOL isScaled;
|
@property (nonatomic, assign, readonly) BOOL isScaled;
|
||||||
|
@@ -9,11 +9,12 @@
|
|||||||
#import "SDPhotoBrowser.h"
|
#import "SDPhotoBrowser.h"
|
||||||
#import "UIImageView+WebCache.h"
|
#import "UIImageView+WebCache.h"
|
||||||
#import "SDBrowserImageView.h"
|
#import "SDBrowserImageView.h"
|
||||||
|
#import <AssetsLibrary/AssetsLibrary.h>
|
||||||
|
#import <Photos/Photos.h>
|
||||||
#define iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO) //判断是否iPhoneX
|
#define iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO) //判断是否iPhoneX
|
||||||
|
|
||||||
#define iPhoneX_NavSafeArea ([[UIScreen mainScreen] bounds].size.height >= 812.0 ? 24 : 0) // 如果是iphoneX 顶部安全区域 24
|
#define iPhoneX_NavSafeArea ([[UIScreen mainScreen] bounds].size.height >= 812.0 ? 24 : 0) // 如果是iphoneX 顶部安全区域 24
|
||||||
|
|
||||||
// ============在这里方便配置样式相关设置===========
|
// ============在这里方便配置样式相关设置===========
|
||||||
|
|
||||||
// ||
|
// ||
|
||||||
@@ -95,10 +96,22 @@
|
|||||||
- (void)saveImage
|
- (void)saveImage
|
||||||
{
|
{
|
||||||
int index = _scrollView.contentOffset.x / _scrollView.bounds.size.width;
|
int index = _scrollView.contentOffset.x / _scrollView.bounds.size.width;
|
||||||
UIImageView *currentImageView = _scrollView.subviews[index];
|
SDBrowserImageView *currentImageView = _scrollView.subviews[index];
|
||||||
|
NSData *imageData = currentImageView.animatedImage.data;
|
||||||
UIImageWriteToSavedPhotosAlbum(currentImageView.image, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);
|
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
|
||||||
|
if(imageData != nil){
|
||||||
|
[PHAssetCreationRequest.creationRequestForAsset addResourceWithType:PHAssetResourceTypePhoto data:imageData options:nil];
|
||||||
|
}else{
|
||||||
|
[PHAssetCreationRequest creationRequestForAssetFromImage:currentImageView.image];
|
||||||
|
}
|
||||||
|
} completionHandler:^(BOOL success, NSError * _Nullable error) {
|
||||||
|
//保存之后需要做的事情
|
||||||
|
dispatch_async(dispatch_get_main_queue(), ^{
|
||||||
|
// 需要在主线程执行的代码
|
||||||
|
[self saveImageFinishWithError:error];
|
||||||
|
});
|
||||||
|
|
||||||
|
}];
|
||||||
if (_indicatorView == nil) {
|
if (_indicatorView == nil) {
|
||||||
_indicatorView = [[UIActivityIndicatorView alloc] init];
|
_indicatorView = [[UIActivityIndicatorView alloc] init];
|
||||||
_indicatorView.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
|
_indicatorView.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
|
||||||
@@ -108,9 +121,7 @@
|
|||||||
|
|
||||||
[_indicatorView startAnimating];
|
[_indicatorView startAnimating];
|
||||||
}
|
}
|
||||||
|
-(void)saveImageFinishWithError:(NSError *)error{
|
||||||
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo;
|
|
||||||
{
|
|
||||||
[_indicatorView stopAnimating];
|
[_indicatorView stopAnimating];
|
||||||
|
|
||||||
UILabel *label = [[UILabel alloc] init];
|
UILabel *label = [[UILabel alloc] init];
|
||||||
@@ -132,6 +143,7 @@
|
|||||||
[label performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:1.0];
|
[label performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:1.0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
- (void)setupScrollView
|
- (void)setupScrollView
|
||||||
{
|
{
|
||||||
_scrollView = [[UIScrollView alloc] init];
|
_scrollView = [[UIScrollView alloc] init];
|
||||||
@@ -144,7 +156,7 @@
|
|||||||
for (int i = 0; i < self.imageCount; i++) {
|
for (int i = 0; i < self.imageCount; i++) {
|
||||||
SDBrowserImageView *imageView = [[SDBrowserImageView alloc] init];
|
SDBrowserImageView *imageView = [[SDBrowserImageView alloc] init];
|
||||||
imageView.tag = i;
|
imageView.tag = i;
|
||||||
|
|
||||||
// 单击图片
|
// 单击图片
|
||||||
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(photoClick:)];
|
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(photoClick:)];
|
||||||
|
|
||||||
@@ -199,7 +211,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CGRect targetTemp = (!CGRectEqualToRect(self.sourceImagesFrame, CGRectZero)) ? self.sourceImagesFrame : [self.sourceImagesContainerView convertRect:sourceView.frame toView:self];
|
CGRect targetTemp = (!CGRectEqualToRect(self.sourceImagesFrame, CGRectZero)) ? self.sourceImagesFrame : [self.sourceImagesContainerView convertRect:sourceView.frame toView:self];
|
||||||
UIImageView *tempView = [[UIImageView alloc] init];
|
UIImageView *tempView = [[UIImageView alloc] init];
|
||||||
tempView.contentMode = sourceView.contentMode;
|
tempView.contentMode = sourceView.contentMode;
|
||||||
tempView.clipsToBounds = YES;
|
tempView.clipsToBounds = YES;
|
||||||
@@ -214,7 +226,7 @@
|
|||||||
tempView.center = self.center;
|
tempView.center = self.center;
|
||||||
|
|
||||||
[self addSubview:tempView];
|
[self addSubview:tempView];
|
||||||
|
|
||||||
_saveButton.hidden = YES;
|
_saveButton.hidden = YES;
|
||||||
|
|
||||||
[UIView animateWithDuration:SDPhotoBrowserHideImageAnimationDuration animations:^{
|
[UIView animateWithDuration:SDPhotoBrowserHideImageAnimationDuration animations:^{
|
||||||
@@ -237,7 +249,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
SDBrowserImageView *view = (SDBrowserImageView *)recognizer.view;
|
SDBrowserImageView *view = (SDBrowserImageView *)recognizer.view;
|
||||||
|
|
||||||
[view doubleTapToZommWithScale:scale];
|
[view doubleTapToZommWithScale:scale];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -305,7 +317,7 @@
|
|||||||
sourceView = [view cellForItemAtIndexPath:path];
|
sourceView = [view cellForItemAtIndexPath:path];
|
||||||
} else {
|
} else {
|
||||||
NSIndexPath *path = [NSIndexPath indexPathForItem:self.currentImageIndex inSection:0];
|
NSIndexPath *path = [NSIndexPath indexPathForItem:self.currentImageIndex inSection:0];
|
||||||
sourceView = [view cellForItemAtIndexPath:path];
|
sourceView = [view cellForItemAtIndexPath:path];
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
if (self.currentImageIndex<self.sourceImagesContainerView.subviews.count) {
|
if (self.currentImageIndex<self.sourceImagesContainerView.subviews.count) {
|
||||||
|
@@ -21,6 +21,17 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
token:(NSString *)token
|
token:(NSString *)token
|
||||||
success:(void (^)(NSString *key, NSDictionary *resp))success
|
success:(void (^)(NSString *key, NSDictionary *resp))success
|
||||||
failure:(void (^)(NSNumber *resCode, NSString *message))failure;
|
failure:(void (^)(NSNumber *resCode, NSString *message))failure;
|
||||||
|
/// 上传一个gif图片
|
||||||
|
/// @param data 图片
|
||||||
|
/// @param imageName 图片的名字
|
||||||
|
/// @param token token
|
||||||
|
/// @param success 成功
|
||||||
|
/// @param failure 失败
|
||||||
|
+ (void)uploadGifImageData:(NSData *)data
|
||||||
|
named:(NSString *)imageName
|
||||||
|
token:(NSString *)token
|
||||||
|
success:(void (^)(NSString *key, NSDictionary *resp))success
|
||||||
|
failure:(void (^)(NSNumber *resCode, NSString *message))failure;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_END
|
NS_ASSUME_NONNULL_END
|
||||||
|
@@ -35,4 +35,29 @@
|
|||||||
}
|
}
|
||||||
} option:nil];
|
} option:nil];
|
||||||
}
|
}
|
||||||
|
/// 上传一个gif图片
|
||||||
|
/// @param data 图片
|
||||||
|
/// @param imageName 图片的名字
|
||||||
|
/// @param token token
|
||||||
|
/// @param success 成功
|
||||||
|
/// @param failure 失败
|
||||||
|
+ (void)uploadGifImageData:(NSData *)data
|
||||||
|
named:(NSString *)imageName
|
||||||
|
token:(NSString *)token
|
||||||
|
success:(void (^)(NSString *key, NSDictionary *resp))success
|
||||||
|
failure:(void (^)(NSNumber *resCode, NSString *message))failure{
|
||||||
|
QNConfiguration *config = [QNConfiguration build:^(QNConfigurationBuilder *builder) {
|
||||||
|
builder.zone = [QNFixedZone zone2];
|
||||||
|
|
||||||
|
}];
|
||||||
|
QNUploadManager *upManager = [[QNUploadManager alloc] initWithConfiguration:config];
|
||||||
|
|
||||||
|
[upManager putData:data key:imageName token:token complete:^(QNResponseInfo *info, NSString *key, NSDictionary *resp) {
|
||||||
|
if (resp) {
|
||||||
|
success(key,resp);
|
||||||
|
}else{
|
||||||
|
failure(@(info.statusCode),info.error.localizedDescription);
|
||||||
|
}
|
||||||
|
} option:nil];
|
||||||
|
}
|
||||||
@end
|
@end
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
#import <UIKit/UIKit.h>
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
@interface UIButton (EnlargeTouchArea)
|
@interface UIButton (EnlargeTouchArea)
|
||||||
|
@property (nonatomic, assign) NSTimeInterval yn_acceptEventInterval; // 重复点击的间隔
|
||||||
|
|
||||||
//图片frmae
|
//图片frmae
|
||||||
@property (strong, nonatomic) NSValue *imageFrame;
|
@property (strong, nonatomic) NSValue *imageFrame;
|
||||||
@@ -33,4 +34,7 @@
|
|||||||
*/
|
*/
|
||||||
- (void)enlargeTouchArea:(UIEdgeInsets)insets;
|
- (void)enlargeTouchArea:(UIEdgeInsets)insets;
|
||||||
|
|
||||||
|
|
||||||
|
+(UIButton *)buttonInitWithText:(NSString *)text font:(UIFont *)font textColor:(UIColor *)textColor image:(UIImage *)image bgImage:(UIImage *)bgImage;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@@ -9,8 +9,18 @@
|
|||||||
#import "UIButton+EnlargeTouchArea.h"
|
#import "UIButton+EnlargeTouchArea.h"
|
||||||
#import <objc/runtime.h>
|
#import <objc/runtime.h>
|
||||||
|
|
||||||
|
#define defaultInterval 0.0003 //默认时间间隔,不能太长,以免影响系统拍照等功能
|
||||||
|
@interface UIButton ()
|
||||||
|
/**
|
||||||
|
* bool YES 忽略点击事件 NO 允许点击事件
|
||||||
|
*/
|
||||||
|
@property (nonatomic, assign) BOOL isIgnoreEvent;
|
||||||
|
@end
|
||||||
|
|
||||||
@implementation UIButton (EnlargeTouchArea)
|
@implementation UIButton (EnlargeTouchArea)
|
||||||
|
|
||||||
|
static const char *UIControl_acceptEventInterval = "UIControl_acceptEventInterval";
|
||||||
|
static const char *UIControl_enventIsIgnoreEvent = "UIControl_enventIsIgnoreEvent";
|
||||||
|
|
||||||
//定义常量 必须是C语言字符串
|
//定义常量 必须是C语言字符串
|
||||||
static const char *imageFrameStr = "imageFrame";
|
static const char *imageFrameStr = "imageFrame";
|
||||||
@@ -26,9 +36,54 @@ static const char *titleFrameStr = "titleFrame";
|
|||||||
Method newTitleMethod = class_getInstanceMethod(self, @selector(new_titleRectForContentRect:));
|
Method newTitleMethod = class_getInstanceMethod(self, @selector(new_titleRectForContentRect:));
|
||||||
Method oldTitleMethod = class_getInstanceMethod(self, @selector(titleRectForContentRect:));
|
Method oldTitleMethod = class_getInstanceMethod(self, @selector(titleRectForContentRect:));
|
||||||
method_exchangeImplementations(newTitleMethod, oldTitleMethod);
|
method_exchangeImplementations(newTitleMethod, oldTitleMethod);
|
||||||
|
|
||||||
|
|
||||||
|
//根据selector查找Method
|
||||||
|
SEL selA = @selector(sendAction:to:forEvent:);
|
||||||
|
SEL selB = @selector(new_sendAction:to:forEvent:);
|
||||||
|
Method methodA = class_getInstanceMethod(self,selA);
|
||||||
|
Method methodB = class_getInstanceMethod(self, selB);
|
||||||
|
//添加自定义方法
|
||||||
|
BOOL isAdd = class_addMethod(self, selA, method_getImplementation(methodB), method_getTypeEncoding(methodB));
|
||||||
|
|
||||||
|
if (isAdd) {//添加成功->替换
|
||||||
|
class_replaceMethod(self, selB, method_getImplementation(methodA), method_getTypeEncoding(methodA));
|
||||||
|
}else{//添加不成功->交换
|
||||||
|
//添加失败了 说明本类中有methodB的实现,此时只需要将methodA和methodB的IMP互换一下即可。
|
||||||
|
method_exchangeImplementations(methodA, methodB);
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
- (void)new_sendAction:(SEL)action to:(id)target forEvent:(UIEvent *)event {
|
||||||
|
self.yn_acceptEventInterval = self.yn_acceptEventInterval == 0 ? defaultInterval : self.yn_acceptEventInterval;
|
||||||
|
if (self.isIgnoreEvent){//默认可以响应点击事件
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (self.yn_acceptEventInterval > 0){//第一次点击,设定eventTimeInterval后,可以响应点击事件
|
||||||
|
[self performSelector:@selector(setNoIgnoreEvent) withObject:nil afterDelay:self.yn_acceptEventInterval];
|
||||||
|
}
|
||||||
|
self.isIgnoreEvent = YES;//设置不可以响应点击事件
|
||||||
|
[self new_sendAction:action to:target forEvent:event];
|
||||||
|
}
|
||||||
|
|
||||||
|
// runtime 动态绑定 属性
|
||||||
|
- (BOOL)isIgnoreEvent{
|
||||||
|
return [objc_getAssociatedObject(self, UIControl_enventIsIgnoreEvent) boolValue];
|
||||||
|
}
|
||||||
|
-(void)setNoIgnoreEvent{
|
||||||
|
self.isIgnoreEvent = NO;
|
||||||
|
}
|
||||||
|
- (void)setIsIgnoreEvent:(BOOL)isIgnoreEvent {
|
||||||
|
objc_setAssociatedObject(self, UIControl_enventIsIgnoreEvent, @(isIgnoreEvent), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
||||||
|
}
|
||||||
|
|
||||||
|
-(void)setYn_acceptEventInterval:(NSTimeInterval)yn_acceptEventInterval{
|
||||||
|
objc_setAssociatedObject(self, UIControl_acceptEventInterval, @(yn_acceptEventInterval), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
||||||
|
}
|
||||||
|
-(NSTimeInterval)yn_acceptEventInterval{
|
||||||
|
return [objc_getAssociatedObject(self, UIControl_acceptEventInterval) doubleValue];
|
||||||
|
}
|
||||||
- (void)setImageFrame:(NSValue *)imageFrame{
|
- (void)setImageFrame:(NSValue *)imageFrame{
|
||||||
objc_setAssociatedObject(self, imageFrameStr, imageFrame, OBJC_ASSOCIATION_RETAIN);
|
objc_setAssociatedObject(self, imageFrameStr, imageFrame, OBJC_ASSOCIATION_RETAIN);
|
||||||
}
|
}
|
||||||
@@ -111,5 +166,27 @@ static char leftNameKey;
|
|||||||
}
|
}
|
||||||
return CGRectContainsPoint(rect, point) ? self : nil;
|
return CGRectContainsPoint(rect, point) ? self : nil;
|
||||||
}
|
}
|
||||||
|
+(UIButton *)buttonInitWithText:(NSString *)text font:(UIFont *)font textColor:(UIColor *)textColor image:(UIImage *)image bgImage:(UIImage *)bgImage{
|
||||||
|
UIButton *button = [[UIButton alloc]initWithFrame:CGRectZero];
|
||||||
|
if(text.length > 0){
|
||||||
|
[button setTitle:text forState:UIControlStateNormal];
|
||||||
|
}
|
||||||
|
if(font != nil){
|
||||||
|
button.titleLabel.font = font;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(textColor != nil){
|
||||||
|
[button setTitleColor:textColor forState:UIControlStateNormal];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (image != nil){
|
||||||
|
[button setImage:image forState:UIControlStateNormal];
|
||||||
|
}
|
||||||
|
|
||||||
|
if(bgImage != nil){
|
||||||
|
[button setBackgroundImage:bgImage forState:UIControlStateNormal];
|
||||||
|
}
|
||||||
|
|
||||||
|
return button;
|
||||||
|
}
|
||||||
@end
|
@end
|
||||||
|
@@ -48,4 +48,6 @@ typedef NS_ENUM(NSUInteger, GradientType) {
|
|||||||
|
|
||||||
///裁剪图片
|
///裁剪图片
|
||||||
- (UIImage *)cutImage:(CGSize)newSize;
|
- (UIImage *)cutImage:(CGSize)newSize;
|
||||||
|
///判断是否为gif图片
|
||||||
|
+ (BOOL)isGifWithImageData: (NSData *)data;
|
||||||
@end
|
@end
|
||||||
|
@@ -377,5 +377,59 @@
|
|||||||
return scaledImage;
|
return scaledImage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
+ (BOOL)isGifWithImageData: (NSData *)data {
|
||||||
|
if ([[self contentTypeWithImageData:data] isEqualToString:@"gif"]) {
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (NSString *)contentTypeWithImageData: (NSData *)data {
|
||||||
|
|
||||||
|
uint8_t c;
|
||||||
|
|
||||||
|
[data getBytes:&c length:1];
|
||||||
|
|
||||||
|
switch (c) {
|
||||||
|
|
||||||
|
case 0xFF:
|
||||||
|
|
||||||
|
return @"jpeg";
|
||||||
|
|
||||||
|
case 0x89:
|
||||||
|
|
||||||
|
return @"png";
|
||||||
|
|
||||||
|
case 0x47:
|
||||||
|
|
||||||
|
return @"gif";
|
||||||
|
|
||||||
|
case 0x49:
|
||||||
|
|
||||||
|
case 0x4D:
|
||||||
|
|
||||||
|
return @"tiff";
|
||||||
|
|
||||||
|
case 0x52:
|
||||||
|
|
||||||
|
if ([data length] < 12) {
|
||||||
|
|
||||||
|
return nil;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0, 12)] encoding:NSASCIIStringEncoding];
|
||||||
|
|
||||||
|
if ([testString hasPrefix:@"RIFF"] && [testString hasSuffix:@"WEBP"]) {
|
||||||
|
|
||||||
|
return @"webp";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
@end
|
@end
|
||||||
|
@@ -16,7 +16,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
@end
|
@end
|
||||||
|
|
||||||
@interface XPHomePartyNavView : UIView
|
@interface XPHomePartyNavView : UIView
|
||||||
|
@property(nonatomic,copy) NSString *title;
|
||||||
@property (nonatomic, weak) id<XPHomePartyNavViewDelegate> delegate;
|
@property (nonatomic, weak) id<XPHomePartyNavViewDelegate> delegate;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@@ -55,7 +55,10 @@
|
|||||||
[self.delegate xPHomePartyNavViewDidClickBack];
|
[self.delegate xPHomePartyNavViewDidClickBack];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
-(void)setTitle:(NSString *)title{
|
||||||
|
_title = title;
|
||||||
|
_titleLabel.text = _title;
|
||||||
|
}
|
||||||
#pragma mark - Getters And Setters
|
#pragma mark - Getters And Setters
|
||||||
- (UILabel *)titleLabel {
|
- (UILabel *)titleLabel {
|
||||||
if(!_titleLabel) {
|
if(!_titleLabel) {
|
||||||
@@ -72,6 +75,7 @@
|
|||||||
_backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
_backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||||
[_backBtn setImage:[UIImage imageNamed:@"common_nav_back"] forState:UIControlStateNormal];
|
[_backBtn setImage:[UIImage imageNamed:@"common_nav_back"] forState:UIControlStateNormal];
|
||||||
[_backBtn addTarget:self action:@selector(backButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
[_backBtn addTarget:self action:@selector(backButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||||
|
[_backBtn setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
|
||||||
}
|
}
|
||||||
return _backBtn;
|
return _backBtn;
|
||||||
}
|
}
|
||||||
|
@@ -43,6 +43,15 @@
|
|||||||
@property (nonatomic, strong) UILabel *statusLabel;
|
@property (nonatomic, strong) UILabel *statusLabel;
|
||||||
|
|
||||||
@property (nonatomic, strong) UIStackView *statusStackView;
|
@property (nonatomic, strong) UIStackView *statusStackView;
|
||||||
|
///陪玩标签
|
||||||
|
@property(nonatomic,strong) UIImageView *gameIconView;
|
||||||
|
///陪玩背景
|
||||||
|
@property(nonatomic,strong) UIView *gameBgView;
|
||||||
|
///陪玩类型
|
||||||
|
@property(nonatomic,strong) UILabel *gameView;
|
||||||
|
///陪玩类型图标
|
||||||
|
@property(nonatomic,strong) NetImageView *gameImageView;
|
||||||
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@@ -84,6 +93,7 @@
|
|||||||
- (void)initSubViews {
|
- (void)initSubViews {
|
||||||
[self.contentView addSubview:self.bgView];
|
[self.contentView addSubview:self.bgView];
|
||||||
[self.bgView addSubview:self.avatarImageView];
|
[self.bgView addSubview:self.avatarImageView];
|
||||||
|
[self.bgView addSubview:self.gameIconView];
|
||||||
[self.bgView addSubview:self.onlineImageView];
|
[self.bgView addSubview:self.onlineImageView];
|
||||||
[self.bgView addSubview:self.nameStackView];
|
[self.bgView addSubview:self.nameStackView];
|
||||||
[self.bgView addSubview:self.constellationStackView];
|
[self.bgView addSubview:self.constellationStackView];
|
||||||
@@ -91,6 +101,10 @@
|
|||||||
[self.bgView addSubview:self.livingView];
|
[self.bgView addSubview:self.livingView];
|
||||||
[self.bgView addSubview:self.chatImageView];
|
[self.bgView addSubview:self.chatImageView];
|
||||||
[self.bgView addSubview:self.statusLabel];
|
[self.bgView addSubview:self.statusLabel];
|
||||||
|
[self.bgView addSubview:self.gameBgView];
|
||||||
|
[self.gameBgView addSubview:self.gameImageView];
|
||||||
|
[self.gameBgView addSubview:self.gameView];
|
||||||
|
|
||||||
|
|
||||||
[self.nameStackView addArrangedSubview:self.nobleImageView];
|
[self.nameStackView addArrangedSubview:self.nobleImageView];
|
||||||
[self.nameStackView addArrangedSubview:self.nickLabel];
|
[self.nameStackView addArrangedSubview:self.nickLabel];
|
||||||
@@ -102,28 +116,53 @@
|
|||||||
|
|
||||||
- (void)initSubViewConstraints {
|
- (void)initSubViewConstraints {
|
||||||
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
|
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
make.left.mas_equalTo(25);
|
make.left.mas_equalTo(22);
|
||||||
make.right.mas_equalTo(-15);
|
make.right.mas_equalTo(-14);
|
||||||
make.top.mas_equalTo(6);
|
make.top.mas_equalTo(0);
|
||||||
make.bottom.mas_equalTo(-6);
|
make.bottom.mas_equalTo(-10);
|
||||||
}];
|
}];
|
||||||
|
|
||||||
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
make.left.mas_equalTo(-10);
|
make.left.mas_equalTo(-8);
|
||||||
make.centerY.mas_equalTo(self.bgView);
|
make.centerY.mas_equalTo(self.bgView);
|
||||||
make.size.mas_equalTo(CGSizeMake(72, 72));
|
make.size.mas_equalTo(CGSizeMake(64, 64));
|
||||||
}];
|
}];
|
||||||
|
|
||||||
|
[self.gameIconView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.width.mas_equalTo(48);
|
||||||
|
make.height.mas_equalTo(16);
|
||||||
|
make.centerX.equalTo(self.avatarImageView);
|
||||||
|
make.centerY.equalTo(self.avatarImageView.mas_bottom);
|
||||||
|
}];
|
||||||
|
|
||||||
[self.onlineImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
[self.onlineImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
make.right.mas_equalTo(self.avatarImageView.mas_right).offset(-3);
|
make.right.mas_equalTo(self.avatarImageView.mas_right).offset(-6);
|
||||||
make.bottom.mas_equalTo(self.avatarImageView.mas_bottom).offset(-6);
|
make.top.mas_equalTo(self.avatarImageView.mas_top).offset(2);
|
||||||
make.size.mas_equalTo(CGSizeMake(12, 12));
|
make.size.mas_equalTo(CGSizeMake(11, 11));
|
||||||
|
}];
|
||||||
|
|
||||||
|
|
||||||
|
[self.gameBgView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.right.mas_equalTo(-10);
|
||||||
|
make.top.mas_equalTo(self.avatarImageView.mas_top).offset(5);
|
||||||
|
make.height.mas_equalTo(20);
|
||||||
|
make.width.mas_greaterThanOrEqualTo(kGetScaleWidth(10));
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self.gameView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.right.mas_equalTo(-8);
|
||||||
|
make.left.mas_equalTo(26);
|
||||||
|
make.centerY.equalTo(self.gameBgView);
|
||||||
|
}];
|
||||||
|
[self.gameImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.width.height.mas_equalTo(14);
|
||||||
|
make.centerY.equalTo(self.gameBgView);
|
||||||
|
make.left.mas_equalTo(10);
|
||||||
}];
|
}];
|
||||||
|
|
||||||
[self.nameStackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
[self.nameStackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
make.left.mas_equalTo(self.avatarImageView.mas_right).offset(12);
|
make.left.mas_equalTo(self.avatarImageView.mas_right).offset(12);
|
||||||
make.top.mas_equalTo(self.avatarImageView.mas_top).offset(4);
|
make.top.mas_equalTo(self.avatarImageView.mas_top).offset(4);
|
||||||
make.right.mas_lessThanOrEqualTo(self.livingView.mas_left).offset(-10);
|
make.right.mas_lessThanOrEqualTo(self.gameBgView.mas_left).offset(-2);
|
||||||
make.height.mas_equalTo(21);
|
make.height.mas_equalTo(21);
|
||||||
}];
|
}];
|
||||||
|
|
||||||
@@ -132,7 +171,7 @@
|
|||||||
}];
|
}];
|
||||||
|
|
||||||
[self.constellationStackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
[self.constellationStackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
make.centerY.mas_equalTo(self.avatarImageView);
|
make.centerY.mas_equalTo(self.avatarImageView).mas_offset(5);
|
||||||
make.left.mas_equalTo(self.nameStackView);
|
make.left.mas_equalTo(self.nameStackView);
|
||||||
}];
|
}];
|
||||||
|
|
||||||
@@ -148,13 +187,13 @@
|
|||||||
|
|
||||||
[self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
[self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
make.left.mas_equalTo(self.nameStackView);
|
make.left.mas_equalTo(self.nameStackView);
|
||||||
make.bottom.mas_equalTo(self.avatarImageView.mas_bottom).offset(-4);
|
make.top.equalTo(self.constellationStackView.mas_bottom).mas_offset(10);
|
||||||
make.right.mas_equalTo(self.livingView.mas_left).offset(-10);
|
make.right.mas_equalTo(self.livingView.mas_left).offset(-10);
|
||||||
}];
|
}];
|
||||||
|
|
||||||
[self.livingView mas_makeConstraints:^(MASConstraintMaker *make) {
|
[self.livingView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
make.right.mas_equalTo(-15);
|
make.right.mas_equalTo(-15);
|
||||||
make.centerY.mas_equalTo(self.bgView).mas_offset(-8);
|
make.top.equalTo(self.gameBgView.mas_bottom).mas_offset(12);
|
||||||
make.size.mas_equalTo(CGSizeMake(20, 20));
|
make.size.mas_equalTo(CGSizeMake(20, 20));
|
||||||
}];
|
}];
|
||||||
|
|
||||||
@@ -251,7 +290,11 @@
|
|||||||
- (void)setRoomInfo:(UserInfoModel *)roomInfo {
|
- (void)setRoomInfo:(UserInfoModel *)roomInfo {
|
||||||
_roomInfo = roomInfo;
|
_roomInfo = roomInfo;
|
||||||
self.avatarImageView.imageUrl = roomInfo.avatar;
|
self.avatarImageView.imageUrl = roomInfo.avatar;
|
||||||
self.nickLabel.text = roomInfo.nick;
|
NSString *nick = roomInfo.nick;
|
||||||
|
if(nick.length > 7){
|
||||||
|
nick = [NSString stringWithFormat:@"%@...",[nick substringToIndex:7]];
|
||||||
|
}
|
||||||
|
self.nickLabel.text = nick;
|
||||||
if (roomInfo.gender == GenderType_Female) {
|
if (roomInfo.gender == GenderType_Female) {
|
||||||
[self.sexBtn setImage:[UIImage imageNamed:@"home_sex_female"] forState:UIControlStateNormal];
|
[self.sexBtn setImage:[UIImage imageNamed:@"home_sex_female"] forState:UIControlStateNormal];
|
||||||
self.sexBtn.backgroundColor = [ThemeColor colorWithHexString:@"#FF9CCE"];
|
self.sexBtn.backgroundColor = [ThemeColor colorWithHexString:@"#FF9CCE"];
|
||||||
@@ -288,6 +331,22 @@
|
|||||||
self.nobleImageView.hidden = YES;
|
self.nobleImageView.hidden = YES;
|
||||||
self.nickLabel.textColor = [ThemeColor mainTextColor];
|
self.nickLabel.textColor = [ThemeColor mainTextColor];
|
||||||
}
|
}
|
||||||
|
_gameIconView.hidden = YES;
|
||||||
|
_gameBgView.hidden = YES;
|
||||||
|
if(_roomInfo.userGamePartnerVo){
|
||||||
|
_gameIconView.hidden = NO;
|
||||||
|
_gameBgView.hidden = NO;
|
||||||
|
_gameImageView.imageUrl = _roomInfo.userGamePartnerVo.firstLogo;
|
||||||
|
NSString *gameName = @"";
|
||||||
|
if(_roomInfo.userGamePartnerVo.firstGameName.length > 0 && _roomInfo.userGamePartnerVo.secondGameName.length > 0){
|
||||||
|
gameName = [NSString stringWithFormat:@"%@|%@",_roomInfo.userGamePartnerVo.firstGameName,_roomInfo.userGamePartnerVo.secondGameName];
|
||||||
|
}else if(_roomInfo.userGamePartnerVo.firstGameName.length > 0){
|
||||||
|
gameName = _roomInfo.userGamePartnerVo.firstGameName;
|
||||||
|
}else if(_roomInfo.userGamePartnerVo.secondGameName.length > 0){
|
||||||
|
gameName = _roomInfo.userGamePartnerVo.secondGameName;
|
||||||
|
}
|
||||||
|
_gameView.text = gameName;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (UIView *)bgView {
|
- (UIView *)bgView {
|
||||||
@@ -307,7 +366,7 @@
|
|||||||
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
|
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
|
||||||
_avatarImageView.userInteractionEnabled = YES;
|
_avatarImageView.userInteractionEnabled = YES;
|
||||||
_avatarImageView.layer.masksToBounds = YES;
|
_avatarImageView.layer.masksToBounds = YES;
|
||||||
_avatarImageView.layer.cornerRadius = 36;
|
_avatarImageView.layer.cornerRadius = 32;
|
||||||
_avatarImageView.contentMode = UIViewContentModeScaleAspectFill;
|
_avatarImageView.contentMode = UIViewContentModeScaleAspectFill;
|
||||||
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapAvatarGuest)];
|
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapAvatarGuest)];
|
||||||
[_avatarImageView addGestureRecognizer:tap];
|
[_avatarImageView addGestureRecognizer:tap];
|
||||||
@@ -319,7 +378,7 @@
|
|||||||
if (!_onlineImageView) {
|
if (!_onlineImageView) {
|
||||||
_onlineImageView = [[UIImageView alloc] init];
|
_onlineImageView = [[UIImageView alloc] init];
|
||||||
_onlineImageView.backgroundColor = [ThemeColor colorWithHexString:@"#6CE19A"];
|
_onlineImageView.backgroundColor = [ThemeColor colorWithHexString:@"#6CE19A"];
|
||||||
_onlineImageView.layer.cornerRadius = 6;
|
_onlineImageView.layer.cornerRadius = 5.5;
|
||||||
_onlineImageView.layer.borderWidth = 2;
|
_onlineImageView.layer.borderWidth = 2;
|
||||||
_onlineImageView.layer.borderColor = UIColor.whiteColor.CGColor;
|
_onlineImageView.layer.borderColor = UIColor.whiteColor.CGColor;
|
||||||
_onlineImageView.clipsToBounds = YES;
|
_onlineImageView.clipsToBounds = YES;
|
||||||
@@ -439,5 +498,41 @@
|
|||||||
}
|
}
|
||||||
return _statusStackView;
|
return _statusStackView;
|
||||||
}
|
}
|
||||||
|
-(UIImageView *)gameIconView{
|
||||||
|
if(!_gameIconView){
|
||||||
|
_gameIconView = [UIImageView new];
|
||||||
|
_gameIconView.image = kImage(@"home_gamge_icon");
|
||||||
|
_gameIconView.hidden = YES;
|
||||||
|
}
|
||||||
|
return _gameIconView;
|
||||||
|
}
|
||||||
|
- (UIView *)gameBgView{
|
||||||
|
if(!_gameBgView){
|
||||||
|
_gameBgView = [UIView new];
|
||||||
|
_gameBgView.backgroundColor = UIColorFromRGB(0xF8F8FA);
|
||||||
|
_gameBgView.layer.cornerRadius = kGetScaleWidth(10);
|
||||||
|
_gameBgView.layer.masksToBounds = YES;
|
||||||
|
_gameBgView.hidden = YES;
|
||||||
|
}
|
||||||
|
return _gameBgView;
|
||||||
|
}
|
||||||
|
- (UILabel *)gameView{
|
||||||
|
if(!_gameView){
|
||||||
|
_gameView = [UILabel new];
|
||||||
|
_gameView.font = [UIFont systemFontOfSize:10 weight:UIFontWeightRegular];
|
||||||
|
_gameView.text = @"";
|
||||||
|
_gameView.textColor = UIColorFromRGB(0x696D7A);
|
||||||
|
}
|
||||||
|
return _gameView;
|
||||||
|
}
|
||||||
|
- (NetImageView *)gameImageView{
|
||||||
|
if(!_gameImageView){
|
||||||
|
NetImageConfig *config = [[NetImageConfig alloc]init];
|
||||||
|
config.placeHolder = [UIImageConstant defaultEmptyAvatarPlaceholder];
|
||||||
|
_gameImageView = [[NetImageView alloc]initWithConfig:config];
|
||||||
|
_gameImageView.layer.cornerRadius = 7;
|
||||||
|
_gameImageView.layer.masksToBounds = YES;
|
||||||
|
}
|
||||||
|
return _gameImageView;
|
||||||
|
}
|
||||||
@end
|
@end
|
||||||
|
@@ -130,9 +130,12 @@
|
|||||||
for (HomePlayRoomModel *model in array) {
|
for (HomePlayRoomModel *model in array) {
|
||||||
if (model.isBanner) {
|
if (model.isBanner) {
|
||||||
self.headerView.bannerList = model.bannerVoList;
|
self.headerView.bannerList = model.bannerVoList;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
[self hideHUD];
|
||||||
|
[self.pagingView reloadData];
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -202,10 +205,12 @@
|
|||||||
|
|
||||||
#pragma mark - JXCategoryViewDelegate
|
#pragma mark - JXCategoryViewDelegate
|
||||||
- (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)pagerView {
|
- (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)pagerView {
|
||||||
|
if(self.headerView.bannerList.count == 0)return 0;
|
||||||
return [XPPartyHeaderView getPartyHeaderViewHeight];
|
return [XPPartyHeaderView getPartyHeaderViewHeight];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (UIView *)tableHeaderViewInPagerView:(JXPagerView *)pagerView {
|
- (UIView *)tableHeaderViewInPagerView:(JXPagerView *)pagerView {
|
||||||
|
|
||||||
return self.headerView;
|
return self.headerView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -104,6 +104,8 @@ typedef NS_ENUM(NSUInteger, CustomMessageType) {
|
|||||||
CustomMessageType_Starred_Kitchen = 96,
|
CustomMessageType_Starred_Kitchen = 96,
|
||||||
///特权卡
|
///特权卡
|
||||||
CustomMessageType_Privilege_Card = 102,
|
CustomMessageType_Privilege_Card = 102,
|
||||||
|
///发起邀请
|
||||||
|
CustomMessageType_Initiat_Invitation = 103,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -546,7 +548,14 @@ typedef NS_ENUM(NSInteger, CustomMessageStarredKitchen) {
|
|||||||
///星级厨房礼物房间飘屏通知动态)
|
///星级厨房礼物房间飘屏通知动态)
|
||||||
Custom_Message_Sub_Starred_Kitchen_Banner_Dynamic = 961 ,
|
Custom_Message_Sub_Starred_Kitchen_Banner_Dynamic = 961 ,
|
||||||
};
|
};
|
||||||
|
///发起邀请 CustomMessageType_Initiat_Invitation
|
||||||
|
|
||||||
|
typedef NS_ENUM(NSInteger, CustomMessageTypeInitiatInvitation) {
|
||||||
|
///发起用户或接单用户
|
||||||
|
Custom_Message_Sub_Initiat_Invitation_Initiating_User = 1030,
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
@interface AttachmentModel : NSObject<NIMCustomAttachment>
|
@interface AttachmentModel : NSObject<NIMCustomAttachment>
|
||||||
@property (nonatomic,assign) int first;
|
@property (nonatomic,assign) int first;
|
||||||
@property (nonatomic,assign) int second;
|
@property (nonatomic,assign) int second;
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
NS_ASSUME_NONNULL_BEGIN
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
@interface ChatLimitModel : NSObject
|
@interface ChatLimitModel : NSObject
|
||||||
|
@property(nonatomic,assign) int model;
|
||||||
@property (nonatomic, assign) BOOL chat;
|
@property (nonatomic, assign) BOOL chat;
|
||||||
@property (nonatomic, copy) NSString * message;
|
@property (nonatomic, copy) NSString * message;
|
||||||
@property (nonatomic, copy) NSString * wealthLevel;
|
@property (nonatomic, copy) NSString * wealthLevel;
|
||||||
|
@@ -21,6 +21,8 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
/// 关注用户
|
/// 关注用户
|
||||||
/// @param targetUid 目标用户的uid
|
/// @param targetUid 目标用户的uid
|
||||||
- (void)attentionUser:(NSString *)targetUid;
|
- (void)attentionUser:(NSString *)targetUid;
|
||||||
|
///用户的游戏配置信息
|
||||||
|
-(void)getGamePartnerInfoListWithUid:(NSString *)uid;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_END
|
NS_ASSUME_NONNULL_END
|
||||||
|
@@ -12,6 +12,7 @@
|
|||||||
#import "Api+Mine.h"
|
#import "Api+Mine.h"
|
||||||
#import "UserInfoModel.h"
|
#import "UserInfoModel.h"
|
||||||
#import "AccountInfoStorage.h"
|
#import "AccountInfoStorage.h"
|
||||||
|
#import "UserGameInfoVo.h"
|
||||||
|
|
||||||
@implementation MessagePresenter
|
@implementation MessagePresenter
|
||||||
|
|
||||||
@@ -28,6 +29,8 @@
|
|||||||
[Api userDetailInfoCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
[Api userDetailInfoCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||||
UserInfoModel * infoModel = [UserInfoModel modelWithDictionary:data.data];
|
UserInfoModel * infoModel = [UserInfoModel modelWithDictionary:data.data];
|
||||||
[[self getView] onGetSessionUserInfoSuccess:infoModel];
|
[[self getView] onGetSessionUserInfoSuccess:infoModel];
|
||||||
|
}fail:^(NSInteger code, NSString * _Nullable msg) {
|
||||||
|
[[self getView]onGetSessionUserInfoFail];
|
||||||
}] uid:uid page:@"1" pageSize:@"20"];
|
}] uid:uid page:@"1" pageSize:@"20"];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,7 +51,17 @@
|
|||||||
NSString * type = @"1";
|
NSString * type = @"1";
|
||||||
[Api attentionCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
[Api attentionCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||||
[[self getView] attentionUserSuccess:targetUid];
|
[[self getView] attentionUserSuccess:targetUid];
|
||||||
|
[[NSNotificationCenter defaultCenter]postNotificationName:@"kAttentionUserNotification" object:nil];
|
||||||
} showLoading:YES] uid:uid likedUid:targetUid ticket:ticket type:type];
|
} showLoading:YES] uid:uid likedUid:targetUid ticket:ticket type:type];
|
||||||
}
|
}
|
||||||
|
///用户的游戏配置信息
|
||||||
|
-(void)getGamePartnerInfoListWithUid:(NSString *)uid{
|
||||||
|
if(uid.length == 0)return;
|
||||||
|
[Api requestGamePartnerInfoList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||||
|
NSArray *list = [UserGameInfoVo modelsWithArray:data.data];
|
||||||
|
[[self getView]getGamePartnerInfoList:list];
|
||||||
|
} fail:^(NSInteger code, NSString * _Nullable msg) {
|
||||||
|
|
||||||
|
}] uid:uid];
|
||||||
|
}
|
||||||
@end
|
@end
|
||||||
|
@@ -17,10 +17,14 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
|
|
||||||
///获取用户信息成功
|
///获取用户信息成功
|
||||||
- (void)onGetSessionUserInfoSuccess:(UserInfoModel *)userInfo;
|
- (void)onGetSessionUserInfoSuccess:(UserInfoModel *)userInfo;
|
||||||
|
///获取用户信息失败
|
||||||
|
- (void)onGetSessionUserInfoFail;
|
||||||
///获取粉丝喜欢成功
|
///获取粉丝喜欢成功
|
||||||
- (void)getFansLikeSuccess:(BOOL)isLike;
|
- (void)getFansLikeSuccess:(BOOL)isLike;
|
||||||
///关注成功
|
///关注成功
|
||||||
- (void)attentionUserSuccess:(NSString *)uid;
|
- (void)attentionUserSuccess:(NSString *)uid;
|
||||||
|
///获取用户的游戏配置信息
|
||||||
|
-(void)getGamePartnerInfoList:(NSArray *)list;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_END
|
NS_ASSUME_NONNULL_END
|
||||||
|
@@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
#import "NIMMessageUtils.h"
|
#import "NIMMessageUtils.h"
|
||||||
#import "AttachmentModel.h"
|
#import "AttachmentModel.h"
|
||||||
|
#import "UserGameInfoVo.h"
|
||||||
|
|
||||||
@implementation NIMMessageUtils
|
@implementation NIMMessageUtils
|
||||||
|
|
||||||
@@ -66,6 +67,9 @@
|
|||||||
return @"[分享了一条动态]";
|
return @"[分享了一条动态]";
|
||||||
} else if(attachment.first == CustomMessageType_RedPacket && attachment.second == Custom_Message_Sub_AllDiamandRedPacket) {
|
} else if(attachment.first == CustomMessageType_RedPacket && attachment.second == Custom_Message_Sub_AllDiamandRedPacket) {
|
||||||
return @"[你收到一个全服红包]";
|
return @"[你收到一个全服红包]";
|
||||||
|
}else if(attachment.first == CustomMessageType_Initiat_Invitation && attachment.second == Custom_Message_Sub_Initiat_Invitation_Initiating_User) {
|
||||||
|
UserGameInfoVo *gameInfo = [UserGameInfoVo modelWithDictionary:attachment.data];
|
||||||
|
return [gameInfo.fromUid isEqualToString:[AccountInfoStorage instance].getUid] ? @"你发送一条开黑邀请":@"你收到一条开黑邀请";
|
||||||
} else {
|
} else {
|
||||||
text = @"[消息]";
|
text = @"[消息]";
|
||||||
}
|
}
|
||||||
|
@@ -14,7 +14,8 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
@protocol MessageContentCustomViewDelegate <NSObject>
|
@protocol MessageContentCustomViewDelegate <NSObject>
|
||||||
|
|
||||||
- (void)updateMessageSuccess:(NIMMessage *)message;
|
- (void)updateMessageSuccess:(NIMMessage *)message;
|
||||||
|
///查看点单信息
|
||||||
|
- (void)checkGameListInfo:(NIMMessage *)message;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@interface MessageContentCustomView : UIView <MessageContentProtocol>
|
@interface MessageContentCustomView : UIView <MessageContentProtocol>
|
||||||
|
@@ -0,0 +1,16 @@
|
|||||||
|
//
|
||||||
|
// MessageContentGameView.h
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by duoban on 2023/8/22.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MessageContentCustomView.h"
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface MessageContentGameView : MessageContentCustomView
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,160 @@
|
|||||||
|
//
|
||||||
|
// MessageContentGameView.m
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by duoban on 2023/8/22.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MessageContentGameView.h"
|
||||||
|
#import "UserGameInfoVo.h"
|
||||||
|
@interface MessageContentGameView()
|
||||||
|
///背景图片
|
||||||
|
@property(nonatomic,strong) NetImageView *bgImageView;
|
||||||
|
///开黑邀请
|
||||||
|
@property(nonatomic,strong) UILabel *titleView;
|
||||||
|
///副标题
|
||||||
|
@property(nonatomic,strong) UILabel *subTitleView;
|
||||||
|
///游戏背景
|
||||||
|
@property(nonatomic,strong) UIView *gameBgView;
|
||||||
|
///游戏logo
|
||||||
|
@property(nonatomic,strong) NetImageView *gameIcomView;
|
||||||
|
///游戏名
|
||||||
|
@property(nonatomic,strong) UILabel *gameNameView;
|
||||||
|
///游戏局数
|
||||||
|
@property(nonatomic,strong) UILabel *gameNumView;
|
||||||
|
@property(nonatomic,strong) NIMMessage *msg;
|
||||||
|
@end
|
||||||
|
@implementation MessageContentGameView
|
||||||
|
|
||||||
|
+ (CGFloat)measureHeight:(NIMMessage *)message {
|
||||||
|
return (CONTENT_PADDING_V_TOTAL + kGetScaleWidth(136));
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)initSubViews {
|
||||||
|
[super initSubViews];
|
||||||
|
[self addSubview:self.backView];
|
||||||
|
[self.backView addSubview:self.bgImageView];
|
||||||
|
[self.bgImageView addSubview:self.titleView];
|
||||||
|
[self.bgImageView addSubview:self.subTitleView];
|
||||||
|
[self.bgImageView addSubview:self.gameBgView];
|
||||||
|
[self.gameBgView addSubview:self.gameIcomView];
|
||||||
|
[self.gameBgView addSubview:self.gameNameView];
|
||||||
|
[self.gameBgView addSubview:self.gameNumView];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)initSubViewConstraints {
|
||||||
|
[super initSubViewConstraints];
|
||||||
|
[self.backView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.size.mas_equalTo(CGSizeMake(kGetScaleWidth(239), kGetScaleWidth(136)));
|
||||||
|
}];
|
||||||
|
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.width.mas_equalTo(kGetScaleWidth(239));
|
||||||
|
make.height.mas_equalTo(kGetScaleWidth(136));
|
||||||
|
make.top.leading.mas_equalTo(self.backView);
|
||||||
|
|
||||||
|
}];
|
||||||
|
[self.titleView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.leading.mas_equalTo(kGetScaleWidth(16));
|
||||||
|
make.top.mas_equalTo(kGetScaleWidth(12));
|
||||||
|
make.height.mas_equalTo(kGetScaleWidth(22));
|
||||||
|
|
||||||
|
}];
|
||||||
|
[self.subTitleView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.leading.mas_equalTo(kGetScaleWidth(16));
|
||||||
|
make.top.equalTo(self.titleView.mas_bottom).mas_offset(kGetScaleWidth(1));
|
||||||
|
make.height.mas_equalTo(kGetScaleWidth(17));
|
||||||
|
}];
|
||||||
|
[self.gameBgView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.leading.mas_equalTo(kGetScaleWidth(10));
|
||||||
|
make.top.equalTo(self.subTitleView.mas_bottom).mas_offset(kGetScaleWidth(6));
|
||||||
|
make.width.mas_equalTo(kGetScaleWidth(219));
|
||||||
|
make.height.mas_equalTo(kGetScaleWidth(68));
|
||||||
|
}];
|
||||||
|
[self.gameIcomView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.height.width.mas_equalTo(kGetScaleWidth(44));
|
||||||
|
make.leading.mas_equalTo(kGetScaleWidth(16));
|
||||||
|
make.top.mas_equalTo(kGetScaleWidth(12));
|
||||||
|
|
||||||
|
}];
|
||||||
|
[self.gameNameView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.top.mas_equalTo(kGetScaleWidth(12));
|
||||||
|
make.leading.mas_equalTo(kGetScaleWidth(70));
|
||||||
|
make.height.mas_equalTo(kGetScaleWidth(22));
|
||||||
|
}];
|
||||||
|
[self.gameNumView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.top.equalTo(self.gameNameView.mas_bottom).mas_offset(kGetScaleWidth(2));
|
||||||
|
make.leading.mas_equalTo(kGetScaleWidth(70));
|
||||||
|
make.height.mas_equalTo(kGetScaleWidth(20));
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)render:(NIMMessage *)message {
|
||||||
|
self.msg = message;
|
||||||
|
NIMCustomObject *obj = (NIMCustomObject *)message.messageObject;
|
||||||
|
AttachmentModel * attach = obj.attachment;
|
||||||
|
UserGameInfoVo *gameInfo = [UserGameInfoVo modelWithDictionary:attach.data];
|
||||||
|
_gameIcomView.imageUrl = gameInfo.gameLogo;
|
||||||
|
_gameNameView.text = gameInfo.gameName;
|
||||||
|
_gameNumView.text = [NSString stringWithFormat:@"%@ 局",gameInfo.inning];
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
-(void)checkGameAction{
|
||||||
|
if(self.delegate && [self.delegate respondsToSelector:@selector(checkGameListInfo:)]){
|
||||||
|
[self.delegate checkGameListInfo:self.msg];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- (NetImageView *)bgImageView{
|
||||||
|
if(!_bgImageView){
|
||||||
|
_bgImageView = [NetImageView new];
|
||||||
|
_bgImageView.image = kImage(@"message_session_game_Invite_bg");
|
||||||
|
_bgImageView.userInteractionEnabled = YES;
|
||||||
|
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(checkGameAction)];
|
||||||
|
[_bgImageView addGestureRecognizer:tap];
|
||||||
|
}
|
||||||
|
return _bgImageView;
|
||||||
|
}
|
||||||
|
- (UILabel *)titleView{
|
||||||
|
if(!_titleView){
|
||||||
|
_titleView = [UILabel labelInitWithText:@"开黑邀请" font:kFontMedium(16) textColor:[UIColor whiteColor]];
|
||||||
|
}
|
||||||
|
return _titleView;
|
||||||
|
}
|
||||||
|
-(UILabel *)subTitleView{
|
||||||
|
if(!_subTitleView){
|
||||||
|
_subTitleView = [UILabel labelInitWithText:@"和我一起玩游戏吧~" font:kFontRegular(12) textColor:UIColorFromRGB(0xCED1DB)];
|
||||||
|
}
|
||||||
|
return _subTitleView;
|
||||||
|
}
|
||||||
|
- (UIView *)gameBgView{
|
||||||
|
if(!_gameBgView){
|
||||||
|
_gameBgView = [UIView new];
|
||||||
|
_gameBgView.backgroundColor = [UIColor colorWithWhite:1 alpha:0.1];
|
||||||
|
_gameBgView.layer.cornerRadius = kGetScaleWidth(6);
|
||||||
|
_gameBgView.layer.masksToBounds = YES;
|
||||||
|
}
|
||||||
|
return _gameBgView;
|
||||||
|
}
|
||||||
|
- (NetImageView *)gameIcomView{
|
||||||
|
if(!_gameIcomView){
|
||||||
|
NetImageConfig *config = [[NetImageConfig alloc]init];
|
||||||
|
config.placeHolder = [UIImageConstant defaultEmptyAvatarPlaceholder];
|
||||||
|
_gameIcomView = [[NetImageView alloc]initWithConfig:config];
|
||||||
|
_gameIcomView.userInteractionEnabled = YES;
|
||||||
|
}
|
||||||
|
return _gameIcomView;
|
||||||
|
}
|
||||||
|
- (UILabel *)gameNameView{
|
||||||
|
if(!_gameNameView){
|
||||||
|
_gameNameView = [UILabel labelInitWithText:@"" font:kFontMedium(16) textColor:[UIColor whiteColor]];
|
||||||
|
}
|
||||||
|
return _gameNameView;
|
||||||
|
}
|
||||||
|
- (UILabel *)gameNumView{
|
||||||
|
if(!_gameNumView){
|
||||||
|
_gameNumView = [UILabel labelInitWithText:@"" font:kFontRegular(14) textColor:[UIColor colorWithWhite:1 alpha:0.8]];
|
||||||
|
}
|
||||||
|
return _gameNumView;
|
||||||
|
}
|
||||||
|
@end
|
@@ -18,7 +18,8 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
- (void)didTapAvatar:(NSString *)uid;
|
- (void)didTapAvatar:(NSString *)uid;
|
||||||
///发送失败点击了重试
|
///发送失败点击了重试
|
||||||
- (void)didFailRetry:(NIMMessage *)message;
|
- (void)didFailRetry:(NIMMessage *)message;
|
||||||
|
///查看点单信息
|
||||||
|
- (void)checkGameListInfo:(NIMMessage *)message;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@interface MessageCell : UITableViewCell
|
@interface MessageCell : UITableViewCell
|
||||||
|
@@ -25,6 +25,7 @@
|
|||||||
#import "MessageContentMonentsView.h"
|
#import "MessageContentMonentsView.h"
|
||||||
#import "MessageContentMonentsAutoView.h"
|
#import "MessageContentMonentsAutoView.h"
|
||||||
#import "MessageContentRedPacketView.h"
|
#import "MessageContentRedPacketView.h"
|
||||||
|
#import "MessageContentGameView.h"
|
||||||
|
|
||||||
#import "AttachmentModel.h"
|
#import "AttachmentModel.h"
|
||||||
#import "NetImageView.h"
|
#import "NetImageView.h"
|
||||||
@@ -267,7 +268,9 @@
|
|||||||
return @"MessageContentMonentsAutoView";
|
return @"MessageContentMonentsAutoView";
|
||||||
} else if (attachment.first == CustomMessageType_RedPacket && attachment.second == Custom_Message_Sub_AllDiamandRedPacket) {
|
} else if (attachment.first == CustomMessageType_RedPacket && attachment.second == Custom_Message_Sub_AllDiamandRedPacket) {
|
||||||
return @"MessageContentRedPacketView";
|
return @"MessageContentRedPacketView";
|
||||||
} else {
|
}else if(attachment.first == CustomMessageType_Initiat_Invitation && attachment.second == Custom_Message_Sub_Initiat_Invitation_Initiating_User){
|
||||||
|
return @"MessageContentGameView";
|
||||||
|
}else {
|
||||||
return @"MessageContentUnSupportView";
|
return @"MessageContentUnSupportView";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -318,6 +321,8 @@
|
|||||||
return [MessageContentMonentsAutoView measureHeight:message];
|
return [MessageContentMonentsAutoView measureHeight:message];
|
||||||
} else if (attachment.first == CustomMessageType_RedPacket && attachment.second == Custom_Message_Sub_AllDiamandRedPacket){
|
} else if (attachment.first == CustomMessageType_RedPacket && attachment.second == Custom_Message_Sub_AllDiamandRedPacket){
|
||||||
return [MessageContentRedPacketView measureHeight:message];
|
return [MessageContentRedPacketView measureHeight:message];
|
||||||
|
}else if(attachment.first == CustomMessageType_Initiat_Invitation && attachment.second == Custom_Message_Sub_Initiat_Invitation_Initiating_User){
|
||||||
|
return [MessageContentGameView measureHeight:message];
|
||||||
} else {
|
} else {
|
||||||
return [MessageContentUnSupportView measureHeight:message];
|
return [MessageContentUnSupportView measureHeight:message];
|
||||||
}
|
}
|
||||||
@@ -399,7 +404,14 @@
|
|||||||
return self.messageContent;
|
return self.messageContent;
|
||||||
}
|
}
|
||||||
return [[MessageContentRedPacketView alloc] init];
|
return [[MessageContentRedPacketView alloc] init];
|
||||||
} else {
|
} else if(attachment.first == CustomMessageType_Initiat_Invitation && attachment.second == Custom_Message_Sub_Initiat_Invitation_Initiating_User){
|
||||||
|
if ([self.messageContent isKindOfClass:[MessageContentGameView class]]) {
|
||||||
|
return self.messageContent;
|
||||||
|
}
|
||||||
|
MessageContentGameView*gameView = [[MessageContentGameView alloc] init];
|
||||||
|
gameView.delegate = self;
|
||||||
|
return gameView;
|
||||||
|
}else {
|
||||||
if ([self.messageContent isKindOfClass:[MessageContentUnSupportView class]]) {
|
if ([self.messageContent isKindOfClass:[MessageContentUnSupportView class]]) {
|
||||||
return self.messageContent;
|
return self.messageContent;
|
||||||
}
|
}
|
||||||
@@ -413,7 +425,11 @@
|
|||||||
[self.delegate updateMessageSuccess:message];
|
[self.delegate updateMessageSuccess:message];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
- (void)checkGameListInfo:(NIMMessage *)message{
|
||||||
|
if(self.delegate && [self.delegate respondsToSelector:@selector(checkGameListInfo:)]){
|
||||||
|
[self.delegate checkGameListInfo:message];
|
||||||
|
}
|
||||||
|
}
|
||||||
#pragma mark - Event Response
|
#pragma mark - Event Response
|
||||||
- (void)rightAvatarTapRecognizer {
|
- (void)rightAvatarTapRecognizer {
|
||||||
if (self.delegate && [self.delegate respondsToSelector:@selector(didTapAvatar:)]) {
|
if (self.delegate && [self.delegate respondsToSelector:@selector(didTapAvatar:)]) {
|
||||||
|
@@ -36,12 +36,17 @@
|
|||||||
make.top.left.right.bottom.mas_equalTo(self.bgView).insets(UIEdgeInsetsMake(10, 10, 10, 10));
|
make.top.left.right.bottom.mas_equalTo(self.bgView).insets(UIEdgeInsetsMake(10, 10, 10, 10));
|
||||||
}];
|
}];
|
||||||
|
|
||||||
[self initLabel:chatLimit.charmLevel.integerValue wealthLevel:chatLimit.wealthLevel.integerValue];
|
[self initLabel:chatLimit.charmLevel.integerValue wealthLevel:chatLimit.wealthLevel.integerValue model:chatLimit.model];
|
||||||
}
|
}
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)initLabel:(NSInteger)charmLevel wealthLevel:(NSInteger)wealthLevel {
|
- (void)initLabel:(NSInteger)charmLevel wealthLevel:(NSInteger)wealthLevel model:(int)model{
|
||||||
|
if(model == 2){
|
||||||
|
NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:@"互相关注成为好友可发起聊天" attributes:@{NSFontAttributeName: [UIFont systemFontOfSize: 12],NSForegroundColorAttributeName: ThemeColor.mainTextColor}];
|
||||||
|
self.textLabel.attributedText = attStr;
|
||||||
|
return;
|
||||||
|
}
|
||||||
NSInteger charm = charmLevel > 0 ? charmLevel : 3;
|
NSInteger charm = charmLevel > 0 ? charmLevel : 3;
|
||||||
NSInteger wealth = wealthLevel > 0 ? wealthLevel : 3;
|
NSInteger wealth = wealthLevel > 0 ? wealthLevel : 3;
|
||||||
UIColor *highlightColor = ThemeColor.appMainColor;
|
UIColor *highlightColor = ThemeColor.appMainColor;
|
||||||
|
@@ -16,6 +16,8 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
- (void)sessionNavView:(SessionNavView *)view didClickLike:(UIButton *)sender;
|
- (void)sessionNavView:(SessionNavView *)view didClickLike:(UIButton *)sender;
|
||||||
///点击了返回
|
///点击了返回
|
||||||
- (void)sessionNavView:(SessionNavView *)view didClickBack:(UIButton *)sender;
|
- (void)sessionNavView:(SessionNavView *)view didClickBack:(UIButton *)sender;
|
||||||
|
///跟随房间
|
||||||
|
- (void)sessionNavView:(SessionNavView *)view didClickToRoom:(UIButton *)sender;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@interface SessionNavView : UIView
|
@interface SessionNavView : UIView
|
||||||
@@ -28,6 +30,9 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
@property (nonatomic,weak) id<SessionNavViewDelegate> delegate;
|
@property (nonatomic,weak) id<SessionNavViewDelegate> delegate;
|
||||||
///是否在房间中
|
///是否在房间中
|
||||||
@property (nonatomic,assign) BOOL isInRoom;
|
@property (nonatomic,assign) BOOL isInRoom;
|
||||||
|
///是否显示直播中
|
||||||
|
@property(nonatomic,assign) BOOL isShowLive;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_END
|
NS_ASSUME_NONNULL_END
|
||||||
|
@@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
#import "SessionNavView.h"
|
#import "SessionNavView.h"
|
||||||
///Third
|
///Third
|
||||||
|
#import <SVGA.h>
|
||||||
#import <Masonry/Masonry.h>
|
#import <Masonry/Masonry.h>
|
||||||
#import <NIMSDK/NIMSDK.h>
|
#import <NIMSDK/NIMSDK.h>
|
||||||
///Tool
|
///Tool
|
||||||
@@ -21,8 +22,7 @@
|
|||||||
@property (nonatomic,strong) UIButton *backButton;
|
@property (nonatomic,strong) UIButton *backButton;
|
||||||
///用户信息的容器
|
///用户信息的容器
|
||||||
@property (nonatomic,strong) UIStackView *infoStackView;
|
@property (nonatomic,strong) UIStackView *infoStackView;
|
||||||
///名字的容器
|
|
||||||
@property (nonatomic,strong) UIStackView *nickStackView;
|
|
||||||
///标题
|
///标题
|
||||||
@property (nonatomic,strong) UILabel *nickLabel;
|
@property (nonatomic,strong) UILabel *nickLabel;
|
||||||
///是否关注
|
///是否关注
|
||||||
@@ -31,7 +31,10 @@
|
|||||||
@property (nonatomic,strong) UILabel *subTitleLabel;
|
@property (nonatomic,strong) UILabel *subTitleLabel;
|
||||||
///举报
|
///举报
|
||||||
@property (nonatomic,strong) UIButton *reportButton;
|
@property (nonatomic,strong) UIButton *reportButton;
|
||||||
|
///直播中
|
||||||
|
@property (nonatomic, strong) SVGAPlayer *livingView;
|
||||||
|
@property(nonatomic,strong) UILabel *livingTitleView;
|
||||||
|
@property(nonatomic,strong) UIButton *livingBtn;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation SessionNavView
|
@implementation SessionNavView
|
||||||
@@ -40,6 +43,13 @@
|
|||||||
if (self) {
|
if (self) {
|
||||||
[self initSubViews];
|
[self initSubViews];
|
||||||
[self initSubViewConstraints];
|
[self initSubViewConstraints];
|
||||||
|
SVGAParser *parser = [[SVGAParser alloc] init];
|
||||||
|
[parser parseWithNamed:@"home_living" inBundle:nil completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
|
||||||
|
if (videoItem != nil) {
|
||||||
|
self.livingView.videoItem = videoItem;
|
||||||
|
[self.livingView startAnimation];
|
||||||
|
}
|
||||||
|
} failureBlock:nil];
|
||||||
}
|
}
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
@@ -50,12 +60,16 @@
|
|||||||
[self addSubview:self.backButton];
|
[self addSubview:self.backButton];
|
||||||
[self addSubview:self.infoStackView];
|
[self addSubview:self.infoStackView];
|
||||||
[self addSubview:self.reportButton];
|
[self addSubview:self.reportButton];
|
||||||
|
[self addSubview:self.likeButton];
|
||||||
[self.infoStackView addArrangedSubview:self.nickStackView];
|
[self addSubview:self.nickLabel];
|
||||||
|
|
||||||
|
|
||||||
|
[self.infoStackView addArrangedSubview:self.livingView];
|
||||||
|
[self.infoStackView addArrangedSubview:self.livingTitleView];
|
||||||
[self.infoStackView addArrangedSubview:self.subTitleLabel];
|
[self.infoStackView addArrangedSubview:self.subTitleLabel];
|
||||||
|
[self addSubview:self.livingBtn];
|
||||||
[self.nickStackView addArrangedSubview:self.nickLabel];
|
|
||||||
[self.nickStackView addArrangedSubview:self.likeButton];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)initSubViewConstraints {
|
- (void)initSubViewConstraints {
|
||||||
@@ -65,20 +79,36 @@
|
|||||||
make.top.mas_equalTo(statusbarHeight + 14);
|
make.top.mas_equalTo(statusbarHeight + 14);
|
||||||
}];
|
}];
|
||||||
|
|
||||||
[self.infoStackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
||||||
make.centerX.mas_equalTo(self);
|
|
||||||
make.centerY.mas_equalTo(self.backButton);
|
|
||||||
}];
|
|
||||||
|
|
||||||
[self.likeButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
||||||
make.size.mas_equalTo(CGSizeMake(22, 22));
|
|
||||||
}];
|
|
||||||
|
|
||||||
|
[self.nickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.centerX.mas_equalTo(self);
|
||||||
|
make.top.mas_equalTo(statusbarHeight + 4);
|
||||||
|
make.height.mas_equalTo(22);
|
||||||
|
}];
|
||||||
|
[self.infoStackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.centerX.mas_equalTo(self);
|
||||||
|
make.top.equalTo(self.nickLabel.mas_bottom).mas_offset(3);
|
||||||
|
}];
|
||||||
[self.reportButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
[self.reportButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
make.size.mas_equalTo(CGSizeMake(30, 30 ));
|
make.size.mas_equalTo(CGSizeMake(30, 30 ));
|
||||||
make.right.mas_equalTo(self).offset(-15);
|
make.right.mas_equalTo(self).offset(-15);
|
||||||
make.centerY.mas_equalTo(self.backButton);
|
make.centerY.mas_equalTo(self.backButton);
|
||||||
}];
|
}];
|
||||||
|
[self.likeButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.width.mas_equalTo(48);
|
||||||
|
make.height.mas_equalTo(21);
|
||||||
|
make.centerY.equalTo(self.reportButton);
|
||||||
|
make.right.equalTo(self.reportButton.mas_left).mas_offset(-14);
|
||||||
|
}];
|
||||||
|
[self.livingView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.width.mas_equalTo(13);
|
||||||
|
make.height.mas_equalTo(9);
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self.livingBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.left.top.bottom.equalTo(self.infoStackView);
|
||||||
|
make.width.mas_equalTo(57);
|
||||||
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (BOOL)isSystemAccount {
|
- (BOOL)isSystemAccount {
|
||||||
@@ -117,7 +147,11 @@
|
|||||||
self.reportButton.hidden = [self isSystemAccount] || self.isInRoom;
|
self.reportButton.hidden = [self isSystemAccount] || self.isInRoom;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
-(void)livingBtnAction{
|
||||||
|
if(self.delegate && [self.delegate respondsToSelector:@selector(sessionNavView:didClickToRoom:)]){
|
||||||
|
[self.delegate sessionNavView:self didClickToRoom:self.livingBtn];
|
||||||
|
}
|
||||||
|
}
|
||||||
- (void)setTitle:(NSString *)title {
|
- (void)setTitle:(NSString *)title {
|
||||||
_title = title;
|
_title = title;
|
||||||
if (_title) {
|
if (_title) {
|
||||||
@@ -141,15 +175,24 @@
|
|||||||
[self.backButton mas_updateConstraints:^(MASConstraintMaker *make) {
|
[self.backButton mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||||
make.top.mas_equalTo(self).offset(11);
|
make.top.mas_equalTo(self).offset(11);
|
||||||
}];
|
}];
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
-(void)setIsShowLive:(BOOL)isShowLive{
|
||||||
|
_isShowLive = isShowLive;
|
||||||
|
if(_isShowLive){
|
||||||
|
self.livingView.hidden = NO;
|
||||||
|
self.livingBtn.hidden = NO;
|
||||||
|
self.livingTitleView.hidden = NO;
|
||||||
|
}
|
||||||
|
}
|
||||||
- (UIButton *)backButton {
|
- (UIButton *)backButton {
|
||||||
if (!_backButton) {
|
if (!_backButton) {
|
||||||
_backButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
_backButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||||
[_backButton setImage:[UIImage imageNamed:@"common_nav_back"] forState:UIControlStateNormal];
|
[_backButton setImage:[UIImage imageNamed:@"common_nav_back"] forState:UIControlStateNormal];
|
||||||
[_backButton setImage:[UIImage imageNamed:@"common_nav_back"] forState:UIControlStateSelected];
|
[_backButton setImage:[UIImage imageNamed:@"common_nav_back"] forState:UIControlStateSelected];
|
||||||
[_backButton addTarget:self action:@selector(backButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
[_backButton addTarget:self action:@selector(backButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||||
|
[_backButton setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
|
||||||
}
|
}
|
||||||
return _backButton;
|
return _backButton;
|
||||||
}
|
}
|
||||||
@@ -157,29 +200,20 @@
|
|||||||
- (UIStackView *)infoStackView {
|
- (UIStackView *)infoStackView {
|
||||||
if (!_infoStackView) {
|
if (!_infoStackView) {
|
||||||
_infoStackView = [[UIStackView alloc] init];
|
_infoStackView = [[UIStackView alloc] init];
|
||||||
_infoStackView.axis = UILayoutConstraintAxisVertical;
|
_infoStackView.axis = UILayoutConstraintAxisHorizontal;
|
||||||
_infoStackView.distribution = UIStackViewDistributionFill;
|
_infoStackView.distribution = UIStackViewDistributionFill;
|
||||||
_infoStackView.alignment = UIStackViewAlignmentFill;
|
_infoStackView.alignment = UIStackViewAlignmentFill;
|
||||||
_infoStackView.spacing = 3;
|
_infoStackView.spacing = 4;
|
||||||
}
|
}
|
||||||
return _infoStackView;
|
return _infoStackView;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (UIStackView *)nickStackView {
|
|
||||||
if (!_nickStackView) {
|
|
||||||
_nickStackView = [[UIStackView alloc] init];
|
|
||||||
_nickStackView.axis = UILayoutConstraintAxisHorizontal;
|
|
||||||
_nickStackView.distribution = UIStackViewDistributionFill;
|
|
||||||
_nickStackView.alignment = UIStackViewAlignmentFill;
|
|
||||||
_nickStackView.spacing = 3;
|
|
||||||
}
|
|
||||||
return _nickStackView;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UILabel *)nickLabel {
|
- (UILabel *)nickLabel {
|
||||||
if (!_nickLabel) {
|
if (!_nickLabel) {
|
||||||
_nickLabel = [[UILabel alloc] init];
|
_nickLabel = [[UILabel alloc] init];
|
||||||
_nickLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium];
|
_nickLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium];
|
||||||
_nickLabel.textColor = [ThemeColor mainTextColor];
|
_nickLabel.textColor = [ThemeColor mainTextColor];
|
||||||
_nickLabel.textAlignment = NSTextAlignmentCenter;
|
_nickLabel.textAlignment = NSTextAlignmentCenter;
|
||||||
}
|
}
|
||||||
@@ -189,8 +223,13 @@
|
|||||||
- (UIButton *)likeButton {
|
- (UIButton *)likeButton {
|
||||||
if (!_likeButton) {
|
if (!_likeButton) {
|
||||||
_likeButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
_likeButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||||
[_likeButton setImage:[UIImage imageNamed:@"message_session_nav_like"] forState:UIControlStateNormal];
|
[_likeButton setTitle:@"关注" forState:UIControlStateNormal];
|
||||||
[_likeButton setImage:[UIImage imageNamed:@"message_session_nav_like"] forState:UIControlStateSelected];
|
_likeButton.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
|
||||||
|
_likeButton.layer.cornerRadius = 21/2;
|
||||||
|
_likeButton.layer.masksToBounds = YES;
|
||||||
|
[_likeButton setTitleColor:UIColorFromRGB(0xFFDA24) forState:UIControlStateNormal];
|
||||||
|
_likeButton.layer.borderWidth = 0.5;
|
||||||
|
_likeButton.layer.borderColor = UIColorFromRGB(0xFFDA24).CGColor;
|
||||||
[_likeButton addTarget:self action:@selector(likeButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
[_likeButton addTarget:self action:@selector(likeButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||||
_likeButton.hidden = NO;
|
_likeButton.hidden = NO;
|
||||||
}
|
}
|
||||||
@@ -218,6 +257,25 @@
|
|||||||
}
|
}
|
||||||
return _reportButton;
|
return _reportButton;
|
||||||
}
|
}
|
||||||
|
- (SVGAPlayer *)livingView {
|
||||||
|
if (!_livingView) {
|
||||||
|
_livingView = [[SVGAPlayer alloc] init];
|
||||||
|
_livingView.hidden = YES;
|
||||||
|
}
|
||||||
|
return _livingView;
|
||||||
|
}
|
||||||
|
- (UILabel *)livingTitleView{
|
||||||
|
if(!_livingTitleView){
|
||||||
|
_livingTitleView = [UILabel labelInitWithText:@"直播中 >" font:[UIFont systemFontOfSize:10 weight:UIFontWeightRegular] textColor:UIColorFromRGB(0xA2A7B8)];
|
||||||
|
_livingTitleView.hidden = YES;
|
||||||
|
}
|
||||||
|
return _livingTitleView;
|
||||||
|
}
|
||||||
|
-(UIButton *)livingBtn{
|
||||||
|
if(!_livingBtn){
|
||||||
|
_livingBtn = [UIButton new];
|
||||||
|
[_livingBtn addTarget:self action:@selector(livingBtnAction) forControlEvents:UIControlEventTouchUpInside];
|
||||||
|
}
|
||||||
|
return _livingBtn;
|
||||||
|
}
|
||||||
@end
|
@end
|
||||||
|
@@ -20,6 +20,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
@interface SessionToolbarView : UIView
|
@interface SessionToolbarView : UIView
|
||||||
///代理
|
///代理
|
||||||
@property (nonatomic,weak) id<SessionToolbarViewDelegate> delegate;
|
@property (nonatomic,weak) id<SessionToolbarViewDelegate> delegate;
|
||||||
|
@property(nonatomic,assign) int model;
|
||||||
@property (nonatomic, assign, getter=isSendDisabled) BOOL sendDisabled;
|
@property (nonatomic, assign, getter=isSendDisabled) BOOL sendDisabled;
|
||||||
///折叠 菜单view
|
///折叠 菜单view
|
||||||
- (void)foldMenuView;
|
- (void)foldMenuView;
|
||||||
|
@@ -331,7 +331,7 @@
|
|||||||
self.userInteractionEnabled = !sendDisabled;
|
self.userInteractionEnabled = !sendDisabled;
|
||||||
if (sendDisabled) {
|
if (sendDisabled) {
|
||||||
self.inputView.text = @"";
|
self.inputView.text = @"";
|
||||||
NSAttributedString * attribute = [[NSAttributedString alloc] initWithString:@"暂时无法私聊" attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:15], NSForegroundColorAttributeName : [ThemeColor secondTextColor]}];
|
NSAttributedString * attribute = [[NSAttributedString alloc] initWithString:_model == 2 ? @"互相关注成为好友可发起聊天" : @"暂时无法私聊" attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:15], NSForegroundColorAttributeName : [ThemeColor secondTextColor]}];
|
||||||
self.inputView.attributedPlaceholder = attribute;
|
self.inputView.attributedPlaceholder = attribute;
|
||||||
} else {
|
} else {
|
||||||
NSAttributedString * attribute = [[NSAttributedString alloc] initWithString:@"请输入消息" attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:15], NSForegroundColorAttributeName : [ThemeColor secondTextColor]}];
|
NSAttributedString * attribute = [[NSAttributedString alloc] initWithString:@"请输入消息" attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:15], NSForegroundColorAttributeName : [ThemeColor secondTextColor]}];
|
||||||
|
@@ -12,9 +12,10 @@
|
|||||||
NS_ASSUME_NONNULL_BEGIN
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
@interface SessionViewController : MvpViewController
|
@interface SessionViewController : MvpViewController
|
||||||
|
@property (nonatomic, strong,readonly) NIMSession * session;
|
||||||
- (instancetype)initWithSession:(NIMSession *)session;
|
@property(nonatomic,assign) BOOL isFormGame;
|
||||||
@property (nonatomic, assign) SessionListOpenType openType;
|
@property (nonatomic, assign) SessionListOpenType openType;
|
||||||
|
- (instancetype)initWithSession:(NIMSession *)session;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_END
|
NS_ASSUME_NONNULL_END
|
||||||
|
@@ -0,0 +1,33 @@
|
|||||||
|
//
|
||||||
|
// XPSessionMessageGameCell.h
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by duoban on 2023/8/22.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#import "UserGameInfoVo.h"
|
||||||
|
#import "UserInfoModel.h"
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@class XPSessionMessageGameCell;
|
||||||
|
@protocol XPSessionMessageGameCellDelegate <NSObject>
|
||||||
|
///点击头像
|
||||||
|
- (void)xpSessionMessageGameCell:(XPSessionMessageGameCell *)cell onAvatarClick:(NSInteger)uid;
|
||||||
|
///跟随房间
|
||||||
|
- (void)xpSessionMessageGameCell:(XPSessionMessageGameCell *)cell onFollowInRoom:(NSString *)roomUid;
|
||||||
|
///下单
|
||||||
|
- (void)xpSessionMessageGameCell:(XPSessionMessageGameCell *)cell onPlaceOrder:(NSString *)uid;
|
||||||
|
///跳到游戏下单
|
||||||
|
- (void)xpSessionMessageGameCell:(XPSessionMessageGameCell *)cell chooseGame:(NSString *)uid;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface XPSessionMessageGameCell : UICollectionViewCell
|
||||||
|
@property(nonatomic,weak) id<XPSessionMessageGameCellDelegate>delegate;
|
||||||
|
@property(nonatomic,strong) UserInfoModel *userInfo;
|
||||||
|
@property(nonatomic,strong) UserGameInfoVo *gameInfo;
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
306
xplan-ios/Main/Message/View/Session/XPSessionMessageGameCell.m
Normal file
@@ -0,0 +1,306 @@
|
|||||||
|
//
|
||||||
|
// XPSessionMessageGameCell.m
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by duoban on 2023/8/22.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "XPSessionMessageGameCell.h"
|
||||||
|
#import "XPSessionMessageHeadView.h"
|
||||||
|
|
||||||
|
@interface XPSessionMessageGameCell ()<XPSessionMessageHeadViewDelegate>
|
||||||
|
///背景
|
||||||
|
@property(nonatomic,strong) NetImageView *bgImageView;
|
||||||
|
///游戏logo
|
||||||
|
@property(nonatomic,strong) NetImageView *iconView;
|
||||||
|
///游戏名
|
||||||
|
@property(nonatomic,strong) UILabel *titleView;
|
||||||
|
///段位背景
|
||||||
|
@property(nonatomic,strong) UIView *tierBgView;
|
||||||
|
///段位
|
||||||
|
@property(nonatomic,strong) UILabel *tierView;
|
||||||
|
///抖音次数
|
||||||
|
@property(nonatomic,strong) UILabel *numView;
|
||||||
|
///价格
|
||||||
|
@property(nonatomic,strong) UILabel *priceView;
|
||||||
|
///支付
|
||||||
|
@property(nonatomic,strong) NetImageView *payBtn;
|
||||||
|
@property(nonatomic,strong) UIButton *payTitleBnt;
|
||||||
|
///跟随进房卡片
|
||||||
|
@property (nonatomic, strong) XPSessionMessageHeadView *followInRoomView;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
||||||
|
@implementation XPSessionMessageGameCell
|
||||||
|
-(instancetype)initWithFrame:(CGRect)frame{
|
||||||
|
self = [super initWithFrame:frame];
|
||||||
|
if(self){
|
||||||
|
[self installUI];
|
||||||
|
[self installConstraints];
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
-(void)installUI{
|
||||||
|
self.backgroundColor = [UIColor clearColor];
|
||||||
|
self.contentView.backgroundColor = [UIColor clearColor];
|
||||||
|
[self.contentView addSubview:self.bgImageView];
|
||||||
|
[self.contentView addSubview:self.followInRoomView];
|
||||||
|
|
||||||
|
[self.bgImageView addSubview:self.iconView];
|
||||||
|
[self.bgImageView addSubview:self.titleView];
|
||||||
|
[self.bgImageView addSubview:self.tierBgView];
|
||||||
|
[self.tierBgView addSubview:self.tierView];
|
||||||
|
[self.bgImageView addSubview:self.numView];
|
||||||
|
|
||||||
|
[self.bgImageView addSubview:self.priceView];
|
||||||
|
[self.bgImageView addSubview:self.payBtn];
|
||||||
|
[self.bgImageView addSubview:self.payTitleBnt];
|
||||||
|
}
|
||||||
|
-(void)installConstraints{
|
||||||
|
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.top.mas_equalTo(kGetScaleWidth(0));
|
||||||
|
make.bottom.mas_equalTo(-kGetScaleWidth(0));
|
||||||
|
make.leading.trailing.equalTo(self.contentView).inset(kGetScaleWidth(16));
|
||||||
|
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self.followInRoomView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.left.right.mas_equalTo(self.contentView);
|
||||||
|
make.top.mas_equalTo(0);
|
||||||
|
make.bottom.mas_equalTo(0);
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self.iconView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.width.height.mas_equalTo(kGetScaleWidth(48));
|
||||||
|
make.top.mas_equalTo(kGetScaleWidth(14));
|
||||||
|
make.leading.mas_equalTo(kGetScaleWidth(18));
|
||||||
|
}];
|
||||||
|
[self.priceView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.trailing.mas_equalTo(-kGetScaleWidth(18));
|
||||||
|
make.height.mas_equalTo(kGetScaleWidth(21));
|
||||||
|
make.width.mas_greaterThanOrEqualTo(10);
|
||||||
|
make.top.mas_equalTo(kGetScaleWidth(11));
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self.titleView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.leading.equalTo(self.iconView.mas_trailing).mas_offset(kGetScaleWidth(10));
|
||||||
|
make.top.mas_equalTo(kGetScaleWidth(15));
|
||||||
|
make.height.mas_equalTo(kGetScaleWidth(22));
|
||||||
|
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self.tierBgView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.height.mas_equalTo(kGetScaleWidth(16));
|
||||||
|
make.width.mas_equalTo(kGetScaleWidth(52));
|
||||||
|
make.centerY.equalTo(self.titleView);
|
||||||
|
make.leading.equalTo(self.titleView.mas_trailing).mas_offset(kGetScaleWidth(4));
|
||||||
|
make.trailing.equalTo(self.priceView.mas_leading).mas_offset(-kGetScaleWidth(2));
|
||||||
|
}];
|
||||||
|
[self.tierView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.leading.trailing.equalTo(self.tierBgView).inset(kGetScaleWidth(6));
|
||||||
|
make.centerY.equalTo(self.tierBgView);
|
||||||
|
}];
|
||||||
|
[self.numView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.top.equalTo(self.titleView.mas_bottom).mas_offset(kGetScaleWidth(3));
|
||||||
|
make.height.mas_equalTo(kGetScaleWidth(21));
|
||||||
|
make.leading.equalTo(self.iconView.mas_trailing).mas_offset(kGetScaleWidth(10));
|
||||||
|
}];
|
||||||
|
[self.payBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.width.mas_equalTo(kGetScaleWidth(72));
|
||||||
|
make.height.mas_equalTo(kGetScaleWidth(28));
|
||||||
|
make.trailing.mas_equalTo(-kGetScaleWidth(18));
|
||||||
|
make.top.mas_equalTo(kGetScaleWidth(36));
|
||||||
|
}];
|
||||||
|
[self.payTitleBnt mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.width.mas_equalTo(kGetScaleWidth(72));
|
||||||
|
make.height.mas_equalTo(kGetScaleWidth(28));
|
||||||
|
make.trailing.mas_equalTo(-kGetScaleWidth(18));
|
||||||
|
make.top.mas_equalTo(kGetScaleWidth(36));
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark - XPSessionMessageHeadViewDelegate
|
||||||
|
- (void)onAvatarClick:(NSInteger)uid{
|
||||||
|
if(self.delegate && [self.delegate respondsToSelector:@selector(xpSessionMessageGameCell:onAvatarClick:)]){
|
||||||
|
[self.delegate xpSessionMessageGameCell:self onAvatarClick:uid];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)onFollowInRoom:(NSString *)roomUid{
|
||||||
|
if(self.delegate && [self.delegate respondsToSelector:@selector(xpSessionMessageGameCell:onFollowInRoom:)]){
|
||||||
|
[self.delegate xpSessionMessageGameCell:self onFollowInRoom:roomUid];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
-(void)payAtion{
|
||||||
|
if(self.delegate && [self.delegate respondsToSelector:@selector(xpSessionMessageGameCell:onPlaceOrder:)]){
|
||||||
|
[self.delegate xpSessionMessageGameCell:self onPlaceOrder:@""];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
-(void)setUserInfo:(UserInfoModel *)userInfo{
|
||||||
|
_userInfo = userInfo;
|
||||||
|
self.followInRoomView.userInfo = _userInfo;
|
||||||
|
self.followInRoomView.hidden = NO;
|
||||||
|
self.bgImageView.hidden = YES;
|
||||||
|
|
||||||
|
}
|
||||||
|
- (void)setGameInfo:(UserGameInfoVo *)gameInfo{
|
||||||
|
_gameInfo = gameInfo;
|
||||||
|
|
||||||
|
self.followInRoomView.hidden = YES;
|
||||||
|
self.bgImageView.hidden = NO;
|
||||||
|
|
||||||
|
_iconView.imageUrl = _gameInfo.logo;
|
||||||
|
_payBtn.imageUrl = _gameInfo.btnBg;
|
||||||
|
[_payTitleBnt setTitleColor:UIColorFromRGB(0xBBBCBD) forState:UIControlStateNormal];
|
||||||
|
self.tierView.textColor = UIColorFromRGB(0xBBBCBD);
|
||||||
|
self.tierBgView.backgroundColor = [UIColor colorWithWhite:1 alpha:0.6];;
|
||||||
|
[_bgImageView loadImageWithUrl:_gameInfo.background completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
|
||||||
|
self.tierView.textColor = [ThemeColor colorWithHexString:gameInfo.tagRgb];
|
||||||
|
self.tierBgView.backgroundColor = [ThemeColor colorWithHexString:gameInfo.tagBg];
|
||||||
|
self.bgImageView.image = image;
|
||||||
|
[self.payTitleBnt setTitleColor:[ThemeColor colorWithHexString:gameInfo.btnRgb] forState:UIControlStateNormal];
|
||||||
|
}];
|
||||||
|
|
||||||
|
_tierView.text = _gameInfo.tier;
|
||||||
|
CGFloat width = [UILabel getWidthWithText:_gameInfo.tier height:kGetScaleWidth(16) font:_tierView.font]+kGetScaleWidth(14);
|
||||||
|
if(width > kGetScaleWidth(72)){
|
||||||
|
width = kGetScaleWidth(72);
|
||||||
|
}
|
||||||
|
[_tierBgView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.height.mas_equalTo(kGetScaleWidth(16));
|
||||||
|
make.width.mas_equalTo(width);
|
||||||
|
make.centerY.equalTo(self.titleView);
|
||||||
|
make.leading.equalTo(self.titleView.mas_trailing).mas_offset(kGetScaleWidth(4));
|
||||||
|
}];
|
||||||
|
_tierBgView.hidden = _gameInfo.tier.length == 0;
|
||||||
|
if(_gameInfo.gameName.length > 6){
|
||||||
|
_gameInfo.gameName = [NSString stringWithFormat:@"%@...",[_gameInfo.gameName substringToIndex:6]];
|
||||||
|
}
|
||||||
|
_titleView.text = _gameInfo.gameName;
|
||||||
|
|
||||||
|
NSMutableAttributedString *gameNameAtt = [[NSMutableAttributedString alloc]initWithString:_gameInfo.gameName attributes:@{NSFontAttributeName:kFontMedium(16),NSForegroundColorAttributeName:[UIColor whiteColor]}];
|
||||||
|
NSString *gameName = @"";
|
||||||
|
if(_gameInfo.gameName.length > 5 ){
|
||||||
|
gameName = [_gameInfo.gameName substringWithRange:NSMakeRange(4, _gameInfo.gameName.length-4)];
|
||||||
|
[gameNameAtt addAttributes:@{NSFontAttributeName:kFontMedium(12),NSForegroundColorAttributeName:[UIColor whiteColor]} range:[_gameInfo.gameName rangeOfString:gameName]];
|
||||||
|
_titleView.attributedText = gameNameAtt;
|
||||||
|
}else{
|
||||||
|
_titleView.attributedText = gameNameAtt;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
NSMutableAttributedString *textAtt = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"%@ 钻/局",_gameInfo.price] attributes:@{NSFontAttributeName:kFontMedium(16),NSForegroundColorAttributeName:[UIColor whiteColor]}];
|
||||||
|
[textAtt addAttributes:@{NSFontAttributeName:kFontRegular(10),NSForegroundColorAttributeName:[UIColor colorWithWhite:1 alpha:0.8]} range:[textAtt.string rangeOfString:@"钻/局"]];
|
||||||
|
UIImage *iconImage = kImage(@"mine_game_diamond");
|
||||||
|
NSTextAttachment * attachment = [[NSTextAttachment alloc] init];
|
||||||
|
attachment.bounds = CGRectMake(0, roundf(_priceView.font.capHeight - iconImage.size.height)/2.f, iconImage.size.width, iconImage.size.height);;
|
||||||
|
attachment.image = iconImage;
|
||||||
|
[textAtt insertAttributedString:[NSMutableAttributedString attributedStringWithAttachment:attachment] atIndex:0];
|
||||||
|
_priceView.textAlignment = NSTextAlignmentRight;
|
||||||
|
_priceView.attributedText = textAtt;
|
||||||
|
_gameInfo.finishNum = _gameInfo.finishNum ?: @"0";
|
||||||
|
NSMutableAttributedString *numAtt = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"接单 %@ 次>",_gameInfo.finishNum] attributes:@{NSFontAttributeName:kFontRegular(12),NSForegroundColorAttributeName:[UIColor whiteColor]}];
|
||||||
|
[numAtt addAttributes:@{NSFontAttributeName:kFontMedium(16),NSForegroundColorAttributeName:UIColorFromRGB(0xFFDA24)} range:[numAtt.string rangeOfString:_gameInfo.finishNum]];
|
||||||
|
_numView.attributedText = numAtt;
|
||||||
|
}
|
||||||
|
-(void)jumToChooseGameVC{
|
||||||
|
if(self.delegate && [self.delegate respondsToSelector:@selector(xpSessionMessageGameCell:chooseGame:)]){
|
||||||
|
[self.delegate xpSessionMessageGameCell:self chooseGame:@""];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#pragma mark - 懒加载
|
||||||
|
- (NetImageView *)bgImageView{
|
||||||
|
if(!_bgImageView){
|
||||||
|
NetImageConfig *config = [[NetImageConfig alloc]init];
|
||||||
|
config.placeHolder = kImage(@"mine_user_game_cell_bg");
|
||||||
|
_bgImageView = [[NetImageView alloc]initWithConfig:config];
|
||||||
|
_bgImageView.layer.cornerRadius = kGetScaleWidth(12);
|
||||||
|
_bgImageView.layer.masksToBounds = YES;
|
||||||
|
_bgImageView.userInteractionEnabled = YES;
|
||||||
|
}
|
||||||
|
return _bgImageView;
|
||||||
|
}
|
||||||
|
-(NetImageView *)iconView{
|
||||||
|
if(!_iconView){
|
||||||
|
NetImageConfig *config = [NetImageConfig new];
|
||||||
|
config.placeHolder = [UIImageConstant defaultEmptyAvatarPlaceholder];
|
||||||
|
_iconView = [[NetImageView alloc]initWithConfig:config];
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
return _iconView;
|
||||||
|
}
|
||||||
|
- (UILabel *)titleView{
|
||||||
|
if(!_titleView){
|
||||||
|
_titleView = [UILabel labelInitWithText:@"" font:kFontMedium(16) textColor:[UIColor whiteColor]];
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
return _titleView;
|
||||||
|
}
|
||||||
|
- (UIView *)tierBgView{
|
||||||
|
if(!_tierBgView){
|
||||||
|
_tierBgView = [UIView new];
|
||||||
|
_tierBgView.backgroundColor = UIColorFromRGB(0xFFF8ED);
|
||||||
|
_tierBgView.layer.cornerRadius = kGetScaleWidth(16)/2;
|
||||||
|
_tierBgView.layer.masksToBounds = YES;
|
||||||
|
}
|
||||||
|
return _tierBgView;
|
||||||
|
}
|
||||||
|
- (UILabel *)tierView{
|
||||||
|
if(!_tierView){
|
||||||
|
_tierView = [UILabel labelInitWithText:@"" font:kFontRegular(10) textColor:UIColorFromRGB(0x764108)];
|
||||||
|
_tierView.textAlignment = NSTextAlignmentCenter;
|
||||||
|
}
|
||||||
|
return _tierView;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
- (UILabel *)priceView{
|
||||||
|
if(!_priceView){
|
||||||
|
_priceView = [UILabel new];
|
||||||
|
|
||||||
|
}
|
||||||
|
return _priceView;
|
||||||
|
}
|
||||||
|
- (NetImageView *)payBtn{
|
||||||
|
if(!_payBtn){
|
||||||
|
NetImageConfig *config = [[NetImageConfig alloc]init];
|
||||||
|
config.placeHolder = kImage(@"mine_user_game_cell_pay_bg");
|
||||||
|
_payBtn = [[NetImageView alloc]initWithConfig:config];
|
||||||
|
_payBtn.userInteractionEnabled = YES;
|
||||||
|
}
|
||||||
|
return _payBtn;
|
||||||
|
}
|
||||||
|
- (UIButton *)payTitleBnt{
|
||||||
|
if(!_payTitleBnt){
|
||||||
|
UIButton *payTitleBnt = [[UIButton alloc]init];
|
||||||
|
[payTitleBnt setTitleColor:UIColorFromRGB(0xBBBCBD) forState:UIControlStateNormal];
|
||||||
|
[payTitleBnt setTitle:@"下单" forState:UIControlStateNormal];
|
||||||
|
payTitleBnt.titleLabel.font = kFontMedium(12);
|
||||||
|
[payTitleBnt addTarget:self action:@selector(payAtion) forControlEvents:UIControlEventTouchUpInside];
|
||||||
|
_payTitleBnt = payTitleBnt;
|
||||||
|
}
|
||||||
|
return _payTitleBnt;
|
||||||
|
}
|
||||||
|
- (UILabel *)numView{
|
||||||
|
if(!_numView){
|
||||||
|
_numView = [UILabel new];
|
||||||
|
_numView.userInteractionEnabled = YES;
|
||||||
|
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(jumToChooseGameVC)];
|
||||||
|
[_numView addGestureRecognizer:tap];
|
||||||
|
|
||||||
|
}
|
||||||
|
return _numView;
|
||||||
|
}
|
||||||
|
- (XPSessionMessageHeadView *)followInRoomView {
|
||||||
|
if (!_followInRoomView) {
|
||||||
|
_followInRoomView = [[XPSessionMessageHeadView alloc] init];
|
||||||
|
_followInRoomView.delegate = self;
|
||||||
|
_followInRoomView.hidden = YES;
|
||||||
|
}
|
||||||
|
return _followInRoomView;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
@@ -0,0 +1,23 @@
|
|||||||
|
//
|
||||||
|
// XPSessionMessageGameInfoView.h
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by duoban on 2023/8/25.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@protocol XPSessionMessageGameInfoViewDelegate <NSObject>
|
||||||
|
|
||||||
|
-(void)clicTokMineUserInfo;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface XPSessionMessageGameInfoView : UICollectionReusableView
|
||||||
|
@property(nonatomic,copy) NSString *headUrl;
|
||||||
|
@property(nonatomic,weak) id<XPSessionMessageGameInfoViewDelegate>delegate;
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,106 @@
|
|||||||
|
//
|
||||||
|
// XPSessionMessageGameInfoView.m
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by duoban on 2023/8/25.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "XPSessionMessageGameInfoView.h"
|
||||||
|
@interface XPSessionMessageGameInfoView()
|
||||||
|
@property(nonatomic,strong) UIButton *tapBtn;
|
||||||
|
@property(nonatomic,strong) UIView *bgView;
|
||||||
|
@property(nonatomic,strong) NetImageView *headView;
|
||||||
|
@property(nonatomic,strong) UILabel *nameView;
|
||||||
|
@property(nonatomic,strong) UIImageView *arrowView;
|
||||||
|
@end
|
||||||
|
@implementation XPSessionMessageGameInfoView
|
||||||
|
|
||||||
|
-(instancetype)initWithFrame:(CGRect)frame{
|
||||||
|
self = [super initWithFrame:frame];
|
||||||
|
if(self){
|
||||||
|
[self installUI];
|
||||||
|
[self installConstraints];
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
-(void)installUI{
|
||||||
|
[self addSubview:self.bgView];
|
||||||
|
[self.bgView addSubview:self.headView];
|
||||||
|
[self.bgView addSubview:self.nameView];
|
||||||
|
[self.bgView addSubview:self.arrowView];
|
||||||
|
[self.bgView addSubview:self.tapBtn];
|
||||||
|
}
|
||||||
|
-(void)installConstraints{
|
||||||
|
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.width.mas_equalTo(kGetScaleWidth(88));
|
||||||
|
make.height.mas_equalTo(kGetScaleWidth(76));
|
||||||
|
make.top.leading.equalTo(self);
|
||||||
|
}];
|
||||||
|
[self.headView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.top.mas_equalTo(kGetScaleWidth(11));
|
||||||
|
make.width.height.mas_equalTo(kGetScaleWidth(34));
|
||||||
|
make.centerX.equalTo(self.bgView);
|
||||||
|
}];
|
||||||
|
[self.arrowView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.trailing.mas_equalTo(-kGetScaleWidth(5));
|
||||||
|
make.top.equalTo(self.headView.mas_bottom).mas_offset(kGetScaleWidth(9));
|
||||||
|
make.width.height.mas_equalTo(kGetScaleWidth(10));
|
||||||
|
}];
|
||||||
|
[self.nameView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.centerY.equalTo(self.arrowView);
|
||||||
|
make.trailing.equalTo(self.arrowView.mas_leading).mas_offset(-kGetScaleWidth(0));
|
||||||
|
}];
|
||||||
|
[self.tapBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.edges.equalTo(self.bgView);
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
-(void)setHeadUrl:(NSString *)headUrl{
|
||||||
|
_headUrl = headUrl;
|
||||||
|
_headView.imageUrl = _headUrl;
|
||||||
|
}
|
||||||
|
-(void)tapAction{
|
||||||
|
if(self.delegate && [self.delegate respondsToSelector:@selector(clicTokMineUserInfo)]){
|
||||||
|
[self.delegate clicTokMineUserInfo];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#pragma mark - 懒加载
|
||||||
|
- (UIView *)bgView{
|
||||||
|
if(!_bgView){
|
||||||
|
_bgView = [UIView new];
|
||||||
|
_bgView.backgroundColor = [UIColor whiteColor];
|
||||||
|
_bgView.layer.cornerRadius = kGetScaleWidth(10);
|
||||||
|
_bgView.layer.masksToBounds = YES;
|
||||||
|
}
|
||||||
|
return _bgView;
|
||||||
|
}
|
||||||
|
-(NetImageView *)headView{
|
||||||
|
if(!_headView){
|
||||||
|
NetImageConfig *config = [[NetImageConfig alloc]init];
|
||||||
|
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||||
|
_headView = [[NetImageView alloc]initWithConfig:config];
|
||||||
|
_headView.layer.cornerRadius = kGetScaleWidth(34)/2;
|
||||||
|
_headView.layer.masksToBounds = YES;
|
||||||
|
}
|
||||||
|
return _headView;
|
||||||
|
}
|
||||||
|
-(UILabel *)nameView{
|
||||||
|
if(!_nameView){
|
||||||
|
_nameView = [UILabel labelInitWithText:@"去TA的主页" font:kFontRegular(12) textColor:UIColorFromRGB(0x2B2D33)];
|
||||||
|
}
|
||||||
|
return _nameView;
|
||||||
|
}
|
||||||
|
-(UIImageView *)arrowView{
|
||||||
|
if(!_arrowView){
|
||||||
|
_arrowView = [UIImageView new];
|
||||||
|
_arrowView.image = kImage(@"Session_Message_Game_InfoView_arrow");
|
||||||
|
}
|
||||||
|
return _arrowView;
|
||||||
|
}
|
||||||
|
- (UIButton *)tapBtn{
|
||||||
|
if(!_tapBtn){
|
||||||
|
_tapBtn = [UIButton new];
|
||||||
|
[_tapBtn addTarget:self action:@selector(tapAction) forControlEvents:UIControlEventTouchUpInside];
|
||||||
|
}
|
||||||
|
return _tapBtn;
|
||||||
|
}
|
||||||
|
@end
|
@@ -0,0 +1,17 @@
|
|||||||
|
//
|
||||||
|
// XPSessionMessageGamePageControl.h
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by duoban on 2023/8/22.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface XPSessionMessageGamePageControl : UIView
|
||||||
|
@property(nonatomic,assign) NSInteger curPage;
|
||||||
|
@property(nonatomic,copy) NSArray *pageList;
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,78 @@
|
|||||||
|
//
|
||||||
|
// XPSessionMessageGamePageControl.m
|
||||||
|
// xplan-ios
|
||||||
|
//
|
||||||
|
// Created by duoban on 2023/8/22.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "XPSessionMessageGamePageControl.h"
|
||||||
|
@interface XPSessionMessageGamePageControl()
|
||||||
|
@property(nonatomic,strong) UIStackView *stackView;
|
||||||
|
@end
|
||||||
|
@implementation XPSessionMessageGamePageControl
|
||||||
|
|
||||||
|
-(instancetype)initWithFrame:(CGRect)frame{
|
||||||
|
self = [super initWithFrame:frame];
|
||||||
|
if(self){
|
||||||
|
[self installUI];
|
||||||
|
[self installConstraints];
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
-(void)installUI{
|
||||||
|
[self addSubview:self.stackView];
|
||||||
|
|
||||||
|
}
|
||||||
|
-(void)installConstraints{
|
||||||
|
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.top.centerX.height.equalTo(self);
|
||||||
|
|
||||||
|
}];
|
||||||
|
|
||||||
|
}
|
||||||
|
- (void)setCurPage:(NSInteger)curPage{
|
||||||
|
_curPage = curPage;
|
||||||
|
if(self.pageList.count < 2)return;
|
||||||
|
[self setItemUI];
|
||||||
|
}
|
||||||
|
-(void)setItemUI{
|
||||||
|
NSMutableArray *viewList = [NSMutableArray array];
|
||||||
|
NSInteger count = self.pageList.count - self.stackView.subviews.count;
|
||||||
|
if(self.pageList.count == 0)return;
|
||||||
|
for (int i = 0; i < self.pageList.count; i ++) {
|
||||||
|
UIView *view;
|
||||||
|
if(i < count){
|
||||||
|
view = [UIView new];
|
||||||
|
view.tag = 100 + i;
|
||||||
|
[viewList addObject:view];
|
||||||
|
}
|
||||||
|
view.layer.cornerRadius = kGetScaleWidth(4)/2;
|
||||||
|
view.layer.masksToBounds = YES;
|
||||||
|
}
|
||||||
|
[viewList addObjectsFromArray:self.stackView.subviews];
|
||||||
|
for (int i = 0; i < viewList.count; i++) {
|
||||||
|
UIView *view = viewList[i];
|
||||||
|
if(view.superview){
|
||||||
|
[view removeFromSuperview];
|
||||||
|
}
|
||||||
|
view.backgroundColor = self.curPage == i ? UIColorFromRGB(0xFFDA24):UIColorFromRGB(0xCED1DB);
|
||||||
|
CGFloat width = self.curPage == i ? kGetScaleWidth(8):kGetScaleWidth(4);
|
||||||
|
[self.stackView addArrangedSubview:view];
|
||||||
|
[view mas_remakeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.width.mas_equalTo(width);
|
||||||
|
make.height.mas_equalTo(kGetScaleWidth(4));
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#pragma mark - 懒加载
|
||||||
|
- (UIStackView *)stackView {
|
||||||
|
if (!_stackView) {
|
||||||
|
_stackView = [[UIStackView alloc] init];
|
||||||
|
_stackView.distribution = UIStackViewDistributionFill;
|
||||||
|
_stackView.alignment = UIStackViewAlignmentCenter;
|
||||||
|
_stackView.spacing = kGetScaleWidth(4);
|
||||||
|
}
|
||||||
|
return _stackView;
|
||||||
|
}
|
||||||
|
@end
|
@@ -46,7 +46,7 @@
|
|||||||
- (void)initContraints {
|
- (void)initContraints {
|
||||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
make.left.right.mas_equalTo(self).inset(15);
|
make.left.right.mas_equalTo(self).inset(15);
|
||||||
make.top.mas_equalTo(8);
|
make.top.mas_equalTo(0);
|
||||||
make.bottom.mas_equalTo(0);
|
make.bottom.mas_equalTo(0);
|
||||||
}];
|
}];
|
||||||
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
NS_ASSUME_NONNULL_BEGIN
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
@interface SessionListCell : UITableViewCell
|
@interface SessionListCell : UITableViewCell
|
||||||
|
@property(nonatomic,strong) NIMRecentSession *session;
|
||||||
- (void)renderWithSession:(NIMRecentSession*)recent;
|
- (void)renderWithSession:(NIMRecentSession*)recent;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@@ -49,6 +49,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (void)renderWithSession:(NIMRecentSession *)recent {
|
- (void)renderWithSession:(NIMRecentSession *)recent {
|
||||||
|
_session = recent;
|
||||||
NIMUser *user = [[NIMSDK sharedSDK].userManager userInfo:recent.session.sessionId];
|
NIMUser *user = [[NIMSDK sharedSDK].userManager userInfo:recent.session.sessionId];
|
||||||
NSString *avatarUrl = user.userInfo.avatarUrl;
|
NSString *avatarUrl = user.userInfo.avatarUrl;
|
||||||
self.avatarImageView.imageUrl = avatarUrl;
|
self.avatarImageView.imageUrl = avatarUrl;
|
||||||
|
@@ -220,21 +220,6 @@ NSString * const kMessageShowReadDotKey = @"kMessageShowReadDotKey";
|
|||||||
return 75.f;
|
return 75.f;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
||||||
UITableViewRowAction * deleteAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"置顶" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
|
|
||||||
NIMRecentSession * session = [self.recentSessions safeObjectAtIndex1:indexPath.row];
|
|
||||||
NIMDeleteMessagesOption * opt = [[NIMDeleteMessagesOption alloc] init];
|
|
||||||
opt.removeSession = YES;
|
|
||||||
[[NIMSDK sharedSDK].conversationManager deleteAllmessagesInSession:session.session option:opt];
|
|
||||||
}];
|
|
||||||
deleteAction.title = @"删除";
|
|
||||||
deleteAction.backgroundColor = [UIColor redColor];
|
|
||||||
return @[deleteAction];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - UITableViewDataSource
|
#pragma mark - UITableViewDataSource
|
||||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
|
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
|
||||||
@@ -246,10 +231,38 @@ NSString * const kMessageShowReadDotKey = @"kMessageShowReadDotKey";
|
|||||||
SessionListCell * cell = [tableView dequeueReusableCellWithIdentifier:cellId];
|
SessionListCell * cell = [tableView dequeueReusableCellWithIdentifier:cellId];
|
||||||
if (!cell) {
|
if (!cell) {
|
||||||
cell = [[SessionListCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];
|
cell = [[SessionListCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];
|
||||||
|
UILongPressGestureRecognizer *longPressPR = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPressAction:)];
|
||||||
|
longPressPR.minimumPressDuration = 1;
|
||||||
|
cell.tag = indexPath.row;
|
||||||
|
[cell addGestureRecognizer:longPressPR];
|
||||||
}
|
}
|
||||||
NIMRecentSession *recent = [self.recentSessions safeObjectAtIndex1:indexPath.row];
|
NIMRecentSession *recent = [self.recentSessions safeObjectAtIndex1:indexPath.row];
|
||||||
[cell renderWithSession:recent];
|
[cell renderWithSession:recent];
|
||||||
return cell;
|
return cell;
|
||||||
|
}
|
||||||
|
// ⑥长按手势的回调方法
|
||||||
|
- (void)longPressAction:(UILongPressGestureRecognizer *)sender{
|
||||||
|
if(sender.state == UIGestureRecognizerStateBegan){
|
||||||
|
TTAlertConfig *config = [[TTAlertConfig alloc] init];
|
||||||
|
config.title = @"提示";
|
||||||
|
config.message = @"确定删除该聊天吗?";
|
||||||
|
[TTPopup alertWithConfig:config confirmHandler:^{
|
||||||
|
SessionListCell * cell = (SessionListCell *)sender.view;
|
||||||
|
NIMRecentSession * session = cell.session;
|
||||||
|
|
||||||
|
NIMSessionDeleteAllRemoteMessagesOptions *option = [[NIMSessionDeleteAllRemoteMessagesOptions alloc]init];
|
||||||
|
|
||||||
|
[[NIMSDK sharedSDK].conversationManager deleteAllRemoteMessagesInSession:session.session options:option completion:^(NSError * _Nullable error) {
|
||||||
|
[[NIMSDK sharedSDK].conversationManager deleteRecentSession:session];
|
||||||
|
}];
|
||||||
|
} cancelHandler:^{
|
||||||
|
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
#pragma mark - NIMConversationManagerDelegate
|
#pragma mark - NIMConversationManagerDelegate
|
||||||
- (void)didLoadAllRecentSessionCompletion {
|
- (void)didLoadAllRecentSessionCompletion {
|
||||||
@@ -434,6 +447,7 @@ NSString * const kMessageShowReadDotKey = @"kMessageShowReadDotKey";
|
|||||||
_sessionListView.delegate = self;
|
_sessionListView.delegate = self;
|
||||||
_sessionListView.dataSource = self;
|
_sessionListView.dataSource = self;
|
||||||
_sessionListView.showsVerticalScrollIndicator = NO;
|
_sessionListView.showsVerticalScrollIndicator = NO;
|
||||||
|
|
||||||
}
|
}
|
||||||
return _sessionListView;
|
return _sessionListView;
|
||||||
}
|
}
|
||||||
|
@@ -284,7 +284,21 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
/// @param completion 完成
|
/// @param completion 完成
|
||||||
+ (void)requestAnchorGradeInfo:(HttpRequestHelperCompletion)completion;
|
+ (void)requestAnchorGradeInfo:(HttpRequestHelperCompletion)completion;
|
||||||
|
|
||||||
|
/// 发送邀请
|
||||||
|
/// @param gameId 游戏ID
|
||||||
|
/// @param gameUid 陪玩师UID
|
||||||
|
/// @param inning 局数
|
||||||
|
/// @param uid 用户UID
|
||||||
|
+(void)sendInitiateInvitationGame:(HttpRequestHelperCompletion)completion gameId:(NSString *)gameId gameUid:(NSString *)gameUid inning:(NSString *)inning uid:(NSString *)uid;
|
||||||
|
/// 咨询下单
|
||||||
|
/// @param gameId 游戏ID
|
||||||
|
/// @param gameUid 陪玩师UID
|
||||||
|
|
||||||
|
+(void)requestConsultingOrder:(HttpRequestHelperCompletion)completion gameId:(NSString *)gameId gameUid:(NSString *)gameUid uid:(NSString *)uid;
|
||||||
|
/// 用户的游戏配置信息
|
||||||
|
/// @param completion 完成
|
||||||
|
/// @param uid 用户id
|
||||||
|
+(void)requestGamePartnerInfoList:(HttpRequestHelperCompletion)completion uid:(NSString *)uid;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_END
|
NS_ASSUME_NONNULL_END
|
||||||
|