交友房初步完成

This commit is contained in:
启星
2025-08-22 19:02:44 +08:00
parent 4ab82fa98f
commit ddeec09ea5
147 changed files with 3566 additions and 363 deletions

View File

@@ -8,428 +8,306 @@
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>2</integer>
</dict> </dict>
<key>AgoraComponetLog.xcscheme</key> <key>AgoraComponetLog.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>3</integer>
</dict> </dict>
<key>AgoraInfra_iOS.xcscheme</key> <key>AgoraInfra_iOS.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>4</integer>
</dict> </dict>
<key>AgoraLyricsScore-AgoraLyricsScoreBundle.xcscheme</key> <key>AgoraLyricsScore-AgoraLyricsScoreBundle.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>6</integer>
</dict> </dict>
<key>AgoraLyricsScore.xcscheme</key> <key>AgoraLyricsScore.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>5</integer>
</dict> </dict>
<key>AgoraRtcEngine_iOS.xcscheme</key> <key>AgoraRtcEngine_iOS.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>7</integer>
</dict> </dict>
<key>AlipaySDK-iOS.xcscheme</key> <key>AlipaySDK-iOS.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>8</integer>
</dict> </dict>
<key>AliyunOSSiOS-AliyunOSSiOS_Privacy.xcscheme</key> <key>AliyunOSSiOS-AliyunOSSiOS_Privacy.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>10</integer>
</dict> </dict>
<key>AliyunOSSiOS.xcscheme</key> <key>AliyunOSSiOS.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>9</integer>
</dict> </dict>
<key>AvoidCrash.xcscheme</key> <key>AvoidCrash.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>11</integer>
</dict> </dict>
<key>BRPickerView-BRPickerView.Privacy.xcscheme</key> <key>BRPickerView-BRPickerView.Privacy.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>13</integer>
</dict> </dict>
<key>BRPickerView.xcscheme</key> <key>BRPickerView.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>12</integer>
</dict> </dict>
<key>Bugly.xcscheme</key> <key>Bugly.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>14</integer>
</dict> </dict>
<key>FMDB-FMDB_Privacy.xcscheme</key> <key>FMDB-FMDB_Privacy.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>16</integer>
</dict> </dict>
<key>FMDB.xcscheme</key> <key>FMDB.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>15</integer>
</dict> </dict>
<key>JXCategoryView-JXCategoryView.xcscheme</key> <key>JXCategoryView-JXCategoryView.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>18</integer>
</dict> </dict>
<key>JXCategoryView.xcscheme</key> <key>JXCategoryView.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>17</integer>
</dict> </dict>
<key>JXPagingView-JXPagerView.xcscheme</key> <key>JXPagingView-JXPagerView.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>20</integer>
</dict> </dict>
<key>JXPagingView.xcscheme</key> <key>JXPagingView.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>19</integer>
</dict> </dict>
<key>LLDebugTool.xcscheme</key> <key>LLDebugTool.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>22</integer>
</dict> </dict>
<key>MBProgressHUD.xcscheme</key> <key>MBProgressHUD.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>24</integer>
</dict> </dict>
<key>MJRefresh-MJRefresh.Privacy.xcscheme</key> <key>MJRefresh-MJRefresh.Privacy.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>26</integer>
</dict> </dict>
<key>MJRefresh.xcscheme</key> <key>MJRefresh.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>25</integer>
</dict> </dict>
<key>MQTTClient.xcscheme</key> <key>MQTTClient.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>27</integer>
</dict> </dict>
<key>Masonry.xcscheme</key> <key>Masonry.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>23</integer>
</dict> </dict>
<key>Pods-QXLive.xcscheme</key> <key>Pods-QXLive.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>28</integer>
</dict> </dict>
<key>Pods-QXLiveDev.xcscheme</key> <key>Pods-QXLiveDev.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>29</integer>
</dict> </dict>
<key>Protobuf-Protobuf_Privacy.xcscheme</key> <key>Protobuf-Protobuf_Privacy.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>31</integer>
</dict> </dict>
<key>Protobuf.xcscheme</key> <key>Protobuf.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>30</integer>
</dict> </dict>
<key>QGVAPlayer.xcscheme</key> <key>QGVAPlayer.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>32</integer>
</dict> </dict>
<key>ReactiveObjC.xcscheme</key> <key>ReactiveObjC.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>33</integer>
</dict> </dict>
<key>SDCycleScrollView.xcscheme</key> <key>SDCycleScrollView.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>34</integer>
</dict> </dict>
<key>SDWebImage-SDWebImage.xcscheme</key> <key>SDWebImage-SDWebImage.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>36</integer>
</dict> </dict>
<key>SDWebImage.xcscheme</key> <key>SDWebImage.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>35</integer>
</dict> </dict>
<key>SDWebImageWebPCoder.xcscheme</key> <key>SDWebImageWebPCoder.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>37</integer>
</dict> </dict>
<key>SSZipArchive.xcscheme</key> <key>SSZipArchive.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>38</integer>
</dict> </dict>
<key>SVGAPlayer.xcscheme</key> <key>SVGAPlayer.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>39</integer>
</dict> </dict>
<key>TIMCommon-TIMCommon_Privacy.xcscheme</key> <key>TIMCommon-TIMCommon_Privacy.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>42</integer>
</dict> </dict>
<key>TIMCommon.xcscheme</key> <key>TIMCommon.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>41</integer>
</dict> </dict>
<key>TIMPush-TIMPush_Privacy.xcscheme</key> <key>TIMPush-TIMPush_Privacy.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>44</integer>
</dict> </dict>
<key>TIMPush.xcscheme</key> <key>TIMPush.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>43</integer>
</dict> </dict>
<key>TUIChat-TUIChat_Privacy.xcscheme</key> <key>TUIChat-TUIChat_Privacy.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>46</integer>
</dict> </dict>
<key>TUIChat.xcscheme</key> <key>TUIChat.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>45</integer>
</dict> </dict>
<key>TUIConversation-TUIConversation_Privacy.xcscheme</key> <key>TUIConversation-TUIConversation_Privacy.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>48</integer>
</dict> </dict>
<key>TUIConversation.xcscheme</key> <key>TUIConversation.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>47</integer>
</dict> </dict>
<key>TUICore-TUICore_Privacy.xcscheme</key> <key>TUICore-TUICore_Privacy.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>50</integer>
</dict> </dict>
<key>TUICore.xcscheme</key> <key>TUICore.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>49</integer>
</dict> </dict>
<key>TXIMSDK_Plus_iOS_XCFramework-TXIMSDK_Plus_iOS_XCFramework_Privacy.xcscheme</key> <key>TXIMSDK_Plus_iOS_XCFramework-TXIMSDK_Plus_iOS_XCFramework_Privacy.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>52</integer>
</dict> </dict>
<key>TXIMSDK_Plus_iOS_XCFramework.xcscheme</key> <key>TXIMSDK_Plus_iOS_XCFramework.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>51</integer>
</dict> </dict>
<key>TZImagePickerController.xcscheme</key> <key>TZImagePickerController.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>53</integer>
</dict> </dict>
<key>TencentCloudHuiyanSDKFace_framework.xcscheme</key> <key>TencentCloudHuiyanSDKFace_framework.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>40</integer>
</dict> </dict>
<key>WechatOpenSDK-XCFramework.xcscheme</key> <key>WechatOpenSDK-XCFramework.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>54</integer>
</dict> </dict>
<key>YBImageBrowser.xcscheme</key> <key>YBImageBrowser.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>55</integer>
</dict> </dict>
<key>YYCache.xcscheme</key> <key>YYCache.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>56</integer>
</dict> </dict>
<key>YYCategories.xcscheme</key> <key>YYCategories.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>57</integer>
</dict> </dict>
<key>YYImage.xcscheme</key> <key>YYImage.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>58</integer>
</dict> </dict>
<key>YYModel.xcscheme</key> <key>YYModel.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>59</integer>
</dict> </dict>
<key>YYText.xcscheme</key> <key>YYText.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>60</integer>
</dict> </dict>
<key>YYWebImage.xcscheme</key> <key>YYWebImage.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>61</integer>
</dict> </dict>
<key>Zip.xcscheme</key> <key>Zip.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>62</integer>
</dict> </dict>
<key>libwebp.xcscheme</key> <key>libwebp.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key>
<integer>21</integer>
</dict> </dict>
</dict> </dict>
<key>SuppressBuildableAutocreation</key> <key>SuppressBuildableAutocreation</key>

View File

@@ -7,14 +7,15 @@
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
78070522CA904B290E0D5B8D /* (null) in Frameworks */ = {isa = PBXBuildFile; }; 95946C092E56B76F00ECFA94 /* Pods_QXLive.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95946C082E56B76F00ECFA94 /* Pods_QXLive.framework */; };
95946C0B2E56B78700ECFA94 /* Pods_QXLiveDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95946C0A2E56B78700ECFA94 /* Pods_QXLiveDev.framework */; };
95946C0C2E56B9FA00ECFA94 /* QXLiveScreenDev.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 95C3274A2E4C4068004B2D82 /* QXLiveScreenDev.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
95C29E9E2E19166700F2524D /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95C2925B2E18BBF800F2524D /* ReplayKit.framework */; }; 95C29E9E2E19166700F2524D /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95C2925B2E18BBF800F2524D /* ReplayKit.framework */; };
95C29EA62E19166700F2524D /* QXLiveScreen.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 95C29E9D2E19166700F2524D /* QXLiveScreen.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 95C29EA62E19166700F2524D /* QXLiveScreen.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 95C29E9D2E19166700F2524D /* QXLiveScreen.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
95C29EAB2E19173300F2524D /* AgoraReplayKitExtension.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95C292A42E18ED0C00F2524D /* AgoraReplayKitExtension.xcframework */; }; 95C29EAB2E19173300F2524D /* AgoraReplayKitExtension.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95C292A42E18ED0C00F2524D /* AgoraReplayKitExtension.xcframework */; };
95C29EAD2E191D6800F2524D /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95C2925B2E18BBF800F2524D /* ReplayKit.framework */; }; 95C29EAD2E191D6800F2524D /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95C2925B2E18BBF800F2524D /* ReplayKit.framework */; };
95C327442E4C4068004B2D82 /* AgoraReplayKitExtension.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95C292A42E18ED0C00F2524D /* AgoraReplayKitExtension.xcframework */; }; 95C327442E4C4068004B2D82 /* AgoraReplayKitExtension.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95C292A42E18ED0C00F2524D /* AgoraReplayKitExtension.xcframework */; };
95C327452E4C4068004B2D82 /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95C2925B2E18BBF800F2524D /* ReplayKit.framework */; }; 95C327452E4C4068004B2D82 /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95C2925B2E18BBF800F2524D /* ReplayKit.framework */; };
95C327502E4C40AB004B2D82 /* QXLiveScreenDev.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 95C3274A2E4C4068004B2D82 /* QXLiveScreenDev.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
95C3EFEF2E49F44A004B2D82 /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95C2925B2E18BBF800F2524D /* ReplayKit.framework */; }; 95C3EFEF2E49F44A004B2D82 /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95C2925B2E18BBF800F2524D /* ReplayKit.framework */; };
95C3EFF02E49F44A004B2D82 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F205062DEF0AD20031E710 /* libz.tbd */; }; 95C3EFF02E49F44A004B2D82 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F205062DEF0AD20031E710 /* libz.tbd */; };
95C3EFF12E49F44A004B2D82 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F205042DEF0AC20031E710 /* CoreTelephony.framework */; }; 95C3EFF12E49F44A004B2D82 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F205042DEF0AC20031E710 /* CoreTelephony.framework */; };
@@ -23,10 +24,6 @@
95C3EFF42E49F44A004B2D82 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F204FE2DEF0AB20031E710 /* SystemConfiguration.framework */; }; 95C3EFF42E49F44A004B2D82 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F204FE2DEF0AB20031E710 /* SystemConfiguration.framework */; };
95C3EFF52E49F44A004B2D82 /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F204FC2DEF0AAC0031E710 /* libiconv.tbd */; }; 95C3EFF52E49F44A004B2D82 /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F204FC2DEF0AAC0031E710 /* libiconv.tbd */; };
95C3EFF62E49F44A004B2D82 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F204FA2DEF0AA10031E710 /* Security.framework */; }; 95C3EFF62E49F44A004B2D82 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F204FA2DEF0AA10031E710 /* Security.framework */; };
95C3EFF72E49F44A004B2D82 /* (null) in Frameworks */ = {isa = PBXBuildFile; };
95C3EFF82E49F44A004B2D82 /* (null) in Frameworks */ = {isa = PBXBuildFile; };
95C3EFF92E49F44A004B2D82 /* Pods_QXLive.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 98CA0F917710DFFD98725970 /* Pods_QXLive.framework */; };
95C3F2602E49F6E7004B2D82 /* AgoraReplayKitExtension.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95C292A42E18ED0C00F2524D /* AgoraReplayKitExtension.xcframework */; };
95F204FB2DEF0AA10031E710 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F204FA2DEF0AA10031E710 /* Security.framework */; }; 95F204FB2DEF0AA10031E710 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F204FA2DEF0AA10031E710 /* Security.framework */; };
95F204FD2DEF0AAC0031E710 /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F204FC2DEF0AAC0031E710 /* libiconv.tbd */; }; 95F204FD2DEF0AAC0031E710 /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F204FC2DEF0AAC0031E710 /* libiconv.tbd */; };
95F204FF2DEF0AB20031E710 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F204FE2DEF0AB20031E710 /* SystemConfiguration.framework */; }; 95F204FF2DEF0AB20031E710 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F204FE2DEF0AB20031E710 /* SystemConfiguration.framework */; };
@@ -34,8 +31,6 @@
95F205032DEF0ABD0031E710 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F205022DEF0ABD0031E710 /* libsqlite3.tbd */; }; 95F205032DEF0ABD0031E710 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F205022DEF0ABD0031E710 /* libsqlite3.tbd */; };
95F205052DEF0AC20031E710 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F205042DEF0AC20031E710 /* CoreTelephony.framework */; }; 95F205052DEF0AC20031E710 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F205042DEF0AC20031E710 /* CoreTelephony.framework */; };
95F205072DEF0AD20031E710 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F205062DEF0AD20031E710 /* libz.tbd */; }; 95F205072DEF0AD20031E710 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 95F205062DEF0AD20031E710 /* libz.tbd */; };
A1B3F48CEADC04AE7D5AE48B /* Pods_QXLive.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 98CA0F917710DFFD98725970 /* Pods_QXLive.framework */; };
C5F9FD21F2F63A6022CAAF48 /* (null) in Frameworks */ = {isa = PBXBuildFile; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */ /* Begin PBXContainerItemProxy section */
@@ -53,6 +48,13 @@
remoteGlobalIDString = 9593D7162DB9C95C0082CA57; remoteGlobalIDString = 9593D7162DB9C95C0082CA57;
remoteInfo = QXLive; remoteInfo = QXLive;
}; };
95946C0D2E56BA0000ECFA94 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 9593D70F2DB9C95C0082CA57 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 95C327412E4C4068004B2D82;
remoteInfo = QXLiveScreenDev;
};
95C29EA42E19166700F2524D /* PBXContainerItemProxy */ = { 95C29EA42E19166700F2524D /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy; isa = PBXContainerItemProxy;
containerPortal = 9593D70F2DB9C95C0082CA57 /* Project object */; containerPortal = 9593D70F2DB9C95C0082CA57 /* Project object */;
@@ -60,13 +62,6 @@
remoteGlobalIDString = 95C29E9C2E19166700F2524D; remoteGlobalIDString = 95C29E9C2E19166700F2524D;
remoteInfo = QXLiveScreen; remoteInfo = QXLiveScreen;
}; };
95C3274E2E4C4099004B2D82 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 9593D70F2DB9C95C0082CA57 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 95C327412E4C4068004B2D82;
remoteInfo = QXLiveScreenDev;
};
/* End PBXContainerItemProxy section */ /* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */ /* Begin PBXCopyFilesBuildPhase section */
@@ -87,7 +82,7 @@
dstPath = ""; dstPath = "";
dstSubfolderSpec = 13; dstSubfolderSpec = 13;
files = ( files = (
95C327502E4C40AB004B2D82 /* QXLiveScreenDev.appex in Embed Foundation Extensions */, 95946C0C2E56B9FA00ECFA94 /* QXLiveScreenDev.appex in Embed Foundation Extensions */,
); );
name = "Embed Foundation Extensions"; name = "Embed Foundation Extensions";
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
@@ -97,9 +92,16 @@
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
2D163E917E90CDC07837F1A7 /* Pods_QXLiveDev.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_QXLiveDev.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 2D163E917E90CDC07837F1A7 /* Pods_QXLiveDev.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_QXLiveDev.framework; sourceTree = BUILT_PRODUCTS_DIR; };
7270179B583CF68223E0AC0A /* Pods-QXLiveDev.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-QXLiveDev.debug.xcconfig"; path = "Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev.debug.xcconfig"; sourceTree = "<group>"; }; 7270179B583CF68223E0AC0A /* Pods-QXLiveDev.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-QXLiveDev.debug.xcconfig"; path = "Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev.debug.xcconfig"; sourceTree = "<group>"; };
9537146C2E56B56C00569E1E /* CoreAudioTypes.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioTypes.framework; path = System/Library/Frameworks/CoreAudioTypes.framework; sourceTree = SDKROOT; };
9537146F2E56B59100569E1E /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
953714712E56B59B00569E1E /* CoreAudioKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; };
953714732E56B5BA00569E1E /* libswiftCoreAudio.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libswiftCoreAudio.tbd; path = usr/lib/swift/libswiftCoreAudio.tbd; sourceTree = SDKROOT; };
9593D7172DB9C95C0082CA57 /* QXLive.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = QXLive.app; sourceTree = BUILT_PRODUCTS_DIR; }; 9593D7172DB9C95C0082CA57 /* QXLive.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = QXLive.app; sourceTree = BUILT_PRODUCTS_DIR; };
9593D7322DB9C95E0082CA57 /* QXLiveTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = QXLiveTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 9593D7322DB9C95E0082CA57 /* QXLiveTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = QXLiveTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
9593D73C2DB9C95E0082CA57 /* QXLiveUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = QXLiveUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 9593D73C2DB9C95E0082CA57 /* QXLiveUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = QXLiveUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
959466212E56B6E500ECFA94 /* Pods_QXLiveDev.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Pods_QXLiveDev.framework; sourceTree = BUILT_PRODUCTS_DIR; };
95946C082E56B76F00ECFA94 /* Pods_QXLive.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Pods_QXLive.framework; sourceTree = BUILT_PRODUCTS_DIR; };
95946C0A2E56B78700ECFA94 /* Pods_QXLiveDev.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Pods_QXLiveDev.framework; sourceTree = BUILT_PRODUCTS_DIR; };
95C2925B2E18BBF800F2524D /* ReplayKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ReplayKit.framework; path = System/Library/Frameworks/ReplayKit.framework; sourceTree = SDKROOT; }; 95C2925B2E18BBF800F2524D /* ReplayKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ReplayKit.framework; path = System/Library/Frameworks/ReplayKit.framework; sourceTree = SDKROOT; };
95C292682E18BBF800F2524D /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 95C292682E18BBF800F2524D /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
95C292A42E18ED0C00F2524D /* AgoraReplayKitExtension.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = AgoraReplayKitExtension.xcframework; path = Pods/AgoraRtcEngine_iOS/AgoraReplayKitExtension.xcframework; sourceTree = "<group>"; }; 95C292A42E18ED0C00F2524D /* AgoraReplayKitExtension.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = AgoraReplayKitExtension.xcframework; path = Pods/AgoraRtcEngine_iOS/AgoraReplayKitExtension.xcframework; sourceTree = "<group>"; };
@@ -118,7 +120,6 @@
95F205022DEF0ABD0031E710 /* libsqlite3.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.tbd; path = usr/lib/libsqlite3.tbd; sourceTree = SDKROOT; }; 95F205022DEF0ABD0031E710 /* libsqlite3.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.tbd; path = usr/lib/libsqlite3.tbd; sourceTree = SDKROOT; };
95F205042DEF0AC20031E710 /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = System/Library/Frameworks/CoreTelephony.framework; sourceTree = SDKROOT; }; 95F205042DEF0AC20031E710 /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = System/Library/Frameworks/CoreTelephony.framework; sourceTree = SDKROOT; };
95F205062DEF0AD20031E710 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; 95F205062DEF0AD20031E710 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
98CA0F917710DFFD98725970 /* Pods_QXLive.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_QXLive.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C9712338C60B86BE40C57C07 /* Pods-QXLiveDev.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-QXLiveDev.release.xcconfig"; path = "Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev.release.xcconfig"; sourceTree = "<group>"; }; C9712338C60B86BE40C57C07 /* Pods-QXLiveDev.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-QXLiveDev.release.xcconfig"; path = "Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev.release.xcconfig"; sourceTree = "<group>"; };
DB46C80395B0DD337551A591 /* Pods-QXLive.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-QXLive.release.xcconfig"; path = "Target Support Files/Pods-QXLive/Pods-QXLive.release.xcconfig"; sourceTree = "<group>"; }; DB46C80395B0DD337551A591 /* Pods-QXLive.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-QXLive.release.xcconfig"; path = "Target Support Files/Pods-QXLive/Pods-QXLive.release.xcconfig"; sourceTree = "<group>"; };
F5E37D2ED830731B446A7058 /* Pods-QXLive.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-QXLive.debug.xcconfig"; path = "Target Support Files/Pods-QXLive/Pods-QXLive.debug.xcconfig"; sourceTree = "<group>"; }; F5E37D2ED830731B446A7058 /* Pods-QXLive.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-QXLive.debug.xcconfig"; path = "Target Support Files/Pods-QXLive/Pods-QXLive.debug.xcconfig"; sourceTree = "<group>"; };
@@ -152,14 +153,6 @@
membershipExceptions = ( membershipExceptions = (
Info.plist, Info.plist,
Other/Info.plist, Other/Info.plist,
Other/QXHelper.swift,
);
target = 95C3EFE92E49F44A004B2D82 /* QXLiveDev */;
};
95C3F25C2E49F646004B2D82 /* Exceptions for "QXLiveScreen" folder in "QXLiveDev" target */ = {
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
membershipExceptions = (
SampleHandler.m,
); );
target = 95C3EFE92E49F44A004B2D82 /* QXLiveDev */; target = 95C3EFE92E49F44A004B2D82 /* QXLiveDev */;
}; };
@@ -189,7 +182,6 @@
isa = PBXFileSystemSynchronizedRootGroup; isa = PBXFileSystemSynchronizedRootGroup;
exceptions = ( exceptions = (
95C29EAA2E19166700F2524D /* Exceptions for "QXLiveScreen" folder in "QXLiveScreen" target */, 95C29EAA2E19166700F2524D /* Exceptions for "QXLiveScreen" folder in "QXLiveScreen" target */,
95C3F25C2E49F646004B2D82 /* Exceptions for "QXLiveScreen" folder in "QXLiveDev" target */,
95C3274B2E4C4068004B2D82 /* Exceptions for "QXLiveScreen" folder in "QXLiveScreenDev" target */, 95C3274B2E4C4068004B2D82 /* Exceptions for "QXLiveScreen" folder in "QXLiveScreenDev" target */,
); );
path = QXLiveScreen; path = QXLiveScreen;
@@ -202,6 +194,7 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
95946C092E56B76F00ECFA94 /* Pods_QXLive.framework in Frameworks */,
95C29EAD2E191D6800F2524D /* ReplayKit.framework in Frameworks */, 95C29EAD2E191D6800F2524D /* ReplayKit.framework in Frameworks */,
95F205072DEF0AD20031E710 /* libz.tbd in Frameworks */, 95F205072DEF0AD20031E710 /* libz.tbd in Frameworks */,
95F205052DEF0AC20031E710 /* CoreTelephony.framework in Frameworks */, 95F205052DEF0AC20031E710 /* CoreTelephony.framework in Frameworks */,
@@ -210,9 +203,6 @@
95F204FF2DEF0AB20031E710 /* SystemConfiguration.framework in Frameworks */, 95F204FF2DEF0AB20031E710 /* SystemConfiguration.framework in Frameworks */,
95F204FD2DEF0AAC0031E710 /* libiconv.tbd in Frameworks */, 95F204FD2DEF0AAC0031E710 /* libiconv.tbd in Frameworks */,
95F204FB2DEF0AA10031E710 /* Security.framework in Frameworks */, 95F204FB2DEF0AA10031E710 /* Security.framework in Frameworks */,
78070522CA904B290E0D5B8D /* (null) in Frameworks */,
C5F9FD21F2F63A6022CAAF48 /* (null) in Frameworks */,
A1B3F48CEADC04AE7D5AE48B /* Pods_QXLive.framework in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@@ -252,7 +242,7 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
95C3F2602E49F6E7004B2D82 /* AgoraReplayKitExtension.xcframework in Frameworks */, 95946C0B2E56B78700ECFA94 /* Pods_QXLiveDev.framework in Frameworks */,
95C3EFEF2E49F44A004B2D82 /* ReplayKit.framework in Frameworks */, 95C3EFEF2E49F44A004B2D82 /* ReplayKit.framework in Frameworks */,
95C3EFF02E49F44A004B2D82 /* libz.tbd in Frameworks */, 95C3EFF02E49F44A004B2D82 /* libz.tbd in Frameworks */,
95C3EFF12E49F44A004B2D82 /* CoreTelephony.framework in Frameworks */, 95C3EFF12E49F44A004B2D82 /* CoreTelephony.framework in Frameworks */,
@@ -261,9 +251,6 @@
95C3EFF42E49F44A004B2D82 /* SystemConfiguration.framework in Frameworks */, 95C3EFF42E49F44A004B2D82 /* SystemConfiguration.framework in Frameworks */,
95C3EFF52E49F44A004B2D82 /* libiconv.tbd in Frameworks */, 95C3EFF52E49F44A004B2D82 /* libiconv.tbd in Frameworks */,
95C3EFF62E49F44A004B2D82 /* Security.framework in Frameworks */, 95C3EFF62E49F44A004B2D82 /* Security.framework in Frameworks */,
95C3EFF72E49F44A004B2D82 /* (null) in Frameworks */,
95C3EFF82E49F44A004B2D82 /* (null) in Frameworks */,
95C3EFF92E49F44A004B2D82 /* Pods_QXLive.framework in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@@ -284,6 +271,13 @@
4B6F40DB8328A2B2BB1BF79D /* Frameworks */ = { 4B6F40DB8328A2B2BB1BF79D /* Frameworks */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
95946C0A2E56B78700ECFA94 /* Pods_QXLiveDev.framework */,
95946C082E56B76F00ECFA94 /* Pods_QXLive.framework */,
959466212E56B6E500ECFA94 /* Pods_QXLiveDev.framework */,
953714732E56B5BA00569E1E /* libswiftCoreAudio.tbd */,
953714712E56B59B00569E1E /* CoreAudioKit.framework */,
9537146F2E56B59100569E1E /* CoreAudio.framework */,
9537146C2E56B56C00569E1E /* CoreAudioTypes.framework */,
95C292AE2E18ED6300F2524D /* Accelerate.framework */, 95C292AE2E18ED6300F2524D /* Accelerate.framework */,
95C292AB2E18ED4A00F2524D /* MetalKit.framework */, 95C292AB2E18ED4A00F2524D /* MetalKit.framework */,
95C292A92E18ED3C00F2524D /* libc++.tbd */, 95C292A92E18ED3C00F2524D /* libc++.tbd */,
@@ -299,7 +293,6 @@
2D163E917E90CDC07837F1A7 /* Pods_QXLiveDev.framework */, 2D163E917E90CDC07837F1A7 /* Pods_QXLiveDev.framework */,
95C2925B2E18BBF800F2524D /* ReplayKit.framework */, 95C2925B2E18BBF800F2524D /* ReplayKit.framework */,
95C292682E18BBF800F2524D /* UIKit.framework */, 95C292682E18BBF800F2524D /* UIKit.framework */,
98CA0F917710DFFD98725970 /* Pods_QXLive.framework */,
); );
name = Frameworks; name = Frameworks;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -456,7 +449,7 @@
buildRules = ( buildRules = (
); );
dependencies = ( dependencies = (
95C3274F2E4C4099004B2D82 /* PBXTargetDependency */, 95946C0E2E56BA0000ECFA94 /* PBXTargetDependency */,
); );
fileSystemSynchronizedGroups = ( fileSystemSynchronizedGroups = (
9593D7192DB9C95C0082CA57 /* QXLive */, 9593D7192DB9C95C0082CA57 /* QXLive */,
@@ -618,7 +611,7 @@
outputFileListPaths = ( outputFileListPaths = (
); );
outputPaths = ( outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-QXLive-checkManifestLockResult.txt", "$(DERIVED_FILE_DIR)/Pods-QXLiveDev-checkManifestLockResult.txt",
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
@@ -631,15 +624,15 @@
files = ( files = (
); );
inputFileListPaths = ( inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-QXLive/Pods-QXLive-frameworks-${CONFIGURATION}-input-files.xcfilelist", "${PODS_ROOT}/Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev-frameworks-${CONFIGURATION}-input-files.xcfilelist",
); );
name = "[CP] Embed Pods Frameworks"; name = "[CP] Embed Pods Frameworks";
outputFileListPaths = ( outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-QXLive/Pods-QXLive-frameworks-${CONFIGURATION}-output-files.xcfilelist", "${PODS_ROOT}/Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev-frameworks-${CONFIGURATION}-output-files.xcfilelist",
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-QXLive/Pods-QXLive-frameworks.sh\"\n"; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev-frameworks.sh\"\n";
showEnvVarsInLog = 0; showEnvVarsInLog = 0;
}; };
95C3EFFC2E49F44A004B2D82 /* [CP] Copy Pods Resources */ = { 95C3EFFC2E49F44A004B2D82 /* [CP] Copy Pods Resources */ = {
@@ -648,15 +641,15 @@
files = ( files = (
); );
inputFileListPaths = ( inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-QXLive/Pods-QXLive-resources-${CONFIGURATION}-input-files.xcfilelist", "${PODS_ROOT}/Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev-resources-${CONFIGURATION}-input-files.xcfilelist",
); );
name = "[CP] Copy Pods Resources"; name = "[CP] Copy Pods Resources";
outputFileListPaths = ( outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-QXLive/Pods-QXLive-resources-${CONFIGURATION}-output-files.xcfilelist", "${PODS_ROOT}/Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev-resources-${CONFIGURATION}-output-files.xcfilelist",
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-QXLive/Pods-QXLive-resources.sh\"\n"; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev-resources.sh\"\n";
showEnvVarsInLog = 0; showEnvVarsInLog = 0;
}; };
E69B725D5CF59CD6582C8AA8 /* [CP] Embed Pods Frameworks */ = { E69B725D5CF59CD6582C8AA8 /* [CP] Embed Pods Frameworks */ = {
@@ -734,16 +727,16 @@
target = 9593D7162DB9C95C0082CA57 /* QXLive */; target = 9593D7162DB9C95C0082CA57 /* QXLive */;
targetProxy = 9593D73D2DB9C95E0082CA57 /* PBXContainerItemProxy */; targetProxy = 9593D73D2DB9C95E0082CA57 /* PBXContainerItemProxy */;
}; };
95946C0E2E56BA0000ECFA94 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 95C327412E4C4068004B2D82 /* QXLiveScreenDev */;
targetProxy = 95946C0D2E56BA0000ECFA94 /* PBXContainerItemProxy */;
};
95C29EA52E19166700F2524D /* PBXTargetDependency */ = { 95C29EA52E19166700F2524D /* PBXTargetDependency */ = {
isa = PBXTargetDependency; isa = PBXTargetDependency;
target = 95C29E9C2E19166700F2524D /* QXLiveScreen */; target = 95C29E9C2E19166700F2524D /* QXLiveScreen */;
targetProxy = 95C29EA42E19166700F2524D /* PBXContainerItemProxy */; targetProxy = 95C29EA42E19166700F2524D /* PBXContainerItemProxy */;
}; };
95C3274F2E4C4099004B2D82 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 95C327412E4C4068004B2D82 /* QXLiveScreenDev */;
targetProxy = 95C3274E2E4C4099004B2D82 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */ /* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */ /* Begin XCBuildConfiguration section */
@@ -1158,7 +1151,7 @@
}; };
95C3F0002E49F44A004B2D82 /* Debug */ = { 95C3F0002E49F44A004B2D82 /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = F5E37D2ED830731B446A7058 /* Pods-QXLive.debug.xcconfig */; baseConfigurationReference = 7270179B583CF68223E0AC0A /* Pods-QXLiveDev.debug.xcconfig */;
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
@@ -1200,6 +1193,10 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(SDKROOT)/usr/lib/swift",
);
MARKETING_VERSION = 1.0.0; MARKETING_VERSION = 1.0.0;
PRODUCT_BUNDLE_IDENTIFIER = com.qxcm.qxlive.test; PRODUCT_BUNDLE_IDENTIFIER = com.qxcm.qxlive.test;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
@@ -1218,7 +1215,7 @@
}; };
95C3F0012E49F44A004B2D82 /* Release */ = { 95C3F0012E49F44A004B2D82 /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = DB46C80395B0DD337551A591 /* Pods-QXLive.release.xcconfig */; baseConfigurationReference = C9712338C60B86BE40C57C07 /* Pods-QXLiveDev.release.xcconfig */;
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
@@ -1260,6 +1257,10 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(SDKROOT)/usr/lib/swift",
);
MARKETING_VERSION = 1.0.0; MARKETING_VERSION = 1.0.0;
PRODUCT_BUNDLE_IDENTIFIER = com.qxcm.qxlive.test; PRODUCT_BUNDLE_IDENTIFIER = com.qxcm.qxlive.test;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";

View File

@@ -26,8 +26,8 @@
filePath = "QXLive/Config/QXRoomMessageManager.m" filePath = "QXLive/Config/QXRoomMessageManager.m"
startingColumnNumber = "9223372036854775807" startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "627" startingLineNumber = "680"
endingLineNumber = "627" endingLineNumber = "680"
landmarkName = "-sendC2CMessage:messageType:userId:" landmarkName = "-sendC2CMessage:messageType:userId:"
landmarkType = "7"> landmarkType = "7">
</BreakpointContent> </BreakpointContent>
@@ -179,48 +179,32 @@
<BreakpointProxy <BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint"> BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent <BreakpointContent
uuid = "C5F458C7-AF23-4AD5-9F9D-73DD483C2AA3" uuid = "897CAB7A-F71C-4864-A033-9F767C0D5118"
shouldBeEnabled = "Yes" shouldBeEnabled = "Yes"
ignoreCount = "0" ignoreCount = "0"
continueAfterRunningActions = "No" continueAfterRunningActions = "No"
filePath = "QXLive/HomePage(&#x58f0;&#x64ad;)/Controlller/&#x623f;&#x95f4;/QXRoomViewController.m" filePath = "QXLive/Config/QXRoomMessageManager.m"
startingColumnNumber = "9223372036854775807" startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "516" startingLineNumber = "524"
endingLineNumber = "516" endingLineNumber = "524"
landmarkName = "-configRoomDataIsJoin:" landmarkName = "-onReceiveRESTCustomData:data:"
landmarkType = "7"> landmarkType = "7">
</BreakpointContent> </BreakpointContent>
</BreakpointProxy> </BreakpointProxy>
<BreakpointProxy <BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint"> BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent <BreakpointContent
uuid = "E438D9B8-DAEB-45EB-91FF-D46B7C146652" uuid = "1BE577E6-D501-443A-89C9-60CABA7923F0"
shouldBeEnabled = "Yes" shouldBeEnabled = "Yes"
ignoreCount = "0" ignoreCount = "0"
continueAfterRunningActions = "No" continueAfterRunningActions = "No"
filePath = "QXLive/Login(&#x767b;&#x5f55;)/Controlller/QXLoginViewController.m" filePath = "QXLive/HomePage(&#x58f0;&#x64ad;)/View/&#x623f;&#x95f4;/&#x9ea6;&#x4f4d;&#x89c6;&#x56fe;/QXRoomSeatTypeFrientView.m"
startingColumnNumber = "9223372036854775807" startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "481" startingLineNumber = "772"
endingLineNumber = "481" endingLineNumber = "772"
landmarkName = "-loginAndGetAccountListWithType:user_login:sms_code:password:code:login_token:auth_code:" landmarkName = "-configPowerBtn"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "1AB1AD66-D71E-4958-982D-E5FA1A959946"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "QXLive/Login(&#x767b;&#x5f55;)/Services/QXLoginNetwork.m"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "69"
endingLineNumber = "69"
landmarkName = "+loginAccountWithUser_login:successBlock:failBlock:"
landmarkType = "7"> landmarkType = "7">
</BreakpointContent> </BreakpointContent>
</BreakpointProxy> </BreakpointProxy>

View File

@@ -15,16 +15,6 @@
typedef void (^closeBlock)(void); typedef void (^closeBlock)(void);
typedef void (^showFinishBlock)(void); typedef void (^showFinishBlock)(void);
typedef NS_ENUM(NSInteger) {
/// 房主
QXRoomRoleTypeOwner = 0,
/// 主持
QXRoomRoleTypeCompere,
/// 管理员
QXRoomRoleTypeManager,
/// 观众
QXRoomRoleTypeAudience,
}QXRoomRoleType;
@interface QXGlobal : NSObject @interface QXGlobal : NSObject

View File

@@ -263,6 +263,9 @@
[[QXAgoraEngine sharedEngine] destroyEngine]; [[QXAgoraEngine sharedEngine] destroyEngine];
/// 退 /// 退
[[QXRoomMessageManager shared] quitGroupWithRoomId:roomId]; [[QXRoomMessageManager shared] quitGroupWithRoomId:roomId];
if (_roomVC) {
[_roomVC.seatContentView destroyViews];
}
self.roomId = nil; self.roomId = nil;
_roomVC = nil; _roomVC = nil;
/// http退 /// http退

View File

@@ -8,6 +8,7 @@
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import "QXRoomChatListView.h" #import "QXRoomChatListView.h"
#import "QXRoomModel.h" #import "QXRoomModel.h"
#import "QXRoomFriendRelationModel.h"
typedef NS_ENUM(NSInteger) { typedef NS_ENUM(NSInteger) {
/// 清空消息 /// 清空消息
@@ -98,6 +99,21 @@ typedef NS_ENUM(NSInteger) {
QXRoomMessageTypeRoomBlindBox = 1038, QXRoomMessageTypeRoomBlindBox = 1038,
/// 房间已被封禁 /// 房间已被封禁
QXRoomMessageTypeRoomDidFire = 1039, QXRoomMessageTypeRoomDidFire = 1039,
/// 交友房阶段发生变化
QXRoomMessageTypeRoomFriendPartDidChanged = 1049,
/// 交友房时间发生延时
QXRoomMessageTypeRoomFriendDelayTime = 1050,
/// 交友房卡关系完成
QXRoomMessageTypeRoomFriendCreateRelation = 1051,
/// 私密小屋结束时间发生延时
QXRoomMessageTypeCabinTimeDelay = 1052,
/// 麦位发生变化
QXRoomMessageTypeSeatDidChanged = 1053,
/// 心动值发生变化
QXRoomMessageTypeHeartDidChanged = 1054,
/// 交友房私密小屋有人退出房间
QXRoomMessageTypeFriendRoomQuit = 1055,
}QXRoomMessageType; }QXRoomMessageType;
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@protocol QXRoomMessageManagerDelegate <NSObject> @protocol QXRoomMessageManagerDelegate <NSObject>
@@ -195,7 +211,23 @@ NS_ASSUME_NONNULL_BEGIN
/// 查询用户状态 /// 查询用户状态
-(void)getUserStatusWithUsers:(NSArray <NSString*>*)users; //-(void)getUserStatusWithUsers:(NSArray <NSString*>*)users;
/// 交友房
/// 交友房阶段发生变化 step 阶段 1等待 2心动 3牵手 friend_id 场次id
-(void)friendPartDidChangedWithType:(NSString*)step friend_id:(NSString*)friend_id end_time:(NSString*)end_time relationModel:(QXRoomFriendRelationModel*)relationModel;
/// 交友房时间发生延时 end_time 截止时间
-(void)friendTimeDelayWithTime:(NSString*)end_time;
/// 交友房麦位发生变化
-(void)friendSeatDidChanged:(NSArray<QXRoomPitModel*>*)pitArray;
/// 心动值发生变化
-(void)friendHeartNumberDidChanged:(NSArray<QXRoomFriendHeartListModel*>*)heartArray;
/// 关系创建完成
-(void)friendRelationIsCreatedWithrelationModel:(QXRoomFriendRelationModel*)relationModel;
/// 有人退出交友房私密小屋
-(void)friendCabinRoomIsQuit;
/// 私密小屋时间发生延时
-(void)friendCabinRoomTimeDelayWithTime:(NSString*)end_time;
@end @end
@interface QXRoomMessageManager : NSObject @interface QXRoomMessageManager : NSObject

View File

@@ -486,7 +486,7 @@
case QXRoomMessageTypeRoomBlindBox:{ case QXRoomMessageTypeRoomBlindBox:{
QXRoomChatListModel *model = [QXRoomChatListModel yy_modelWithJSON:msg.Text]; QXRoomChatListModel *model = [QXRoomChatListModel yy_modelWithJSON:msg.Text];
model.messageType = QXRoomChatMessageTypeChat; model.messageType = QXRoomChatMessageTypeGift;
if (self.delegate && [self.delegate respondsToSelector:@selector(didInsertMessge:)]) { if (self.delegate && [self.delegate respondsToSelector:@selector(didInsertMessge:)]) {
[self.delegate didInsertMessge:model]; [self.delegate didInsertMessge:model];
} }
@@ -498,6 +498,59 @@
if (self.delegate && [self.delegate respondsToSelector:@selector(roomUserInfoDidChanged:)]) { if (self.delegate && [self.delegate respondsToSelector:@selector(roomUserInfoDidChanged:)]) {
[self.delegate roomUserInfoDidChanged:model.FromUserInfo]; [self.delegate roomUserInfoDidChanged:model.FromUserInfo];
} }
}
break;
///
case QXRoomMessageTypeRoomFriendPartDidChanged:{
QXRoomChatListModel *model = [QXRoomChatListModel yy_modelWithJSON:msg.Text];
if (self.delegate && [self.delegate respondsToSelector:@selector(friendPartDidChangedWithType:friend_id:end_time:relationModel:)]) {
[self.delegate friendPartDidChangedWithType:model.step friend_id:model.friend_id end_time:model.end_time relationModel:model.friend_user];
}
if (self.delegate && [self.delegate respondsToSelector:@selector(didInsertMessge:)]) {
model.messageType = QXRoomChatMessageTypeSystem;
[self.delegate didInsertMessge:model];
}
}
break;
case QXRoomMessageTypeRoomFriendDelayTime:{
NSString *end_time = [NSString stringWithFormat:@"%@",msg.Text[@"end_time"]];
if (self.delegate && [self.delegate respondsToSelector:@selector(friendTimeDelayWithTime:)]) {
[self.delegate friendTimeDelayWithTime:end_time];
}
}
break;
case QXRoomMessageTypeSeatDidChanged:{
NSArray *pitArray = [NSArray yy_modelArrayWithClass:[QXRoomPitModel class] json:msg.Text[@"list"]];
if (self.delegate && [self.delegate respondsToSelector:@selector(friendSeatDidChanged:)]) {
[self.delegate friendSeatDidChanged:pitArray];
}
}
break;
case QXRoomMessageTypeHeartDidChanged:{
NSArray *heartArray = [NSArray yy_modelArrayWithClass:[QXRoomFriendHeartListModel class] json:msg.Text[@"list"]];
if (self.delegate && [self.delegate respondsToSelector:@selector(friendHeartNumberDidChanged:)]) {
[self.delegate friendHeartNumberDidChanged:heartArray];
}
}
break;
case QXRoomMessageTypeRoomFriendCreateRelation:{
QXRoomFriendRelationModel *relationModel = [QXRoomFriendRelationModel yy_modelWithJSON:msg.Text[@"relation"]];
if (self.delegate && [self.delegate respondsToSelector:@selector(friendRelationIsCreatedWithrelationModel:)]) {
[self.delegate friendRelationIsCreatedWithrelationModel:relationModel];
}
}
break;
case QXRoomMessageTypeFriendRoomQuit:{
if (self.delegate && [self.delegate respondsToSelector:@selector(friendCabinRoomIsQuit)]) {
[self.delegate friendCabinRoomIsQuit];
}
}
break;
case QXRoomMessageTypeCabinTimeDelay:{
NSString *end_time = [NSString stringWithFormat:@"%@",msg.Text[@"time_day"]];
if (self.delegate && [self.delegate respondsToSelector:@selector(friendCabinRoomTimeDelayWithTime:)]) {
[self.delegate friendCabinRoomTimeDelayWithTime:end_time];
}
} }
break; break;
default: default:

View File

@@ -18,6 +18,8 @@ typedef NS_ENUM(NSInteger) {
QXSendGiftViewTypeRoom , QXSendGiftViewTypeRoom ,
/// 拍卖 /// 拍卖
QXSendGiftViewTypeAuction , QXSendGiftViewTypeAuction ,
/// 交友房
QXSendGiftViewTypeFriend ,
}QXSendGiftViewType; }QXSendGiftViewType;
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@@ -41,10 +43,12 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,strong)NSString* dynamicId; @property (nonatomic,strong)NSString* dynamicId;
/// 拍卖id /// 拍卖id
@property (nonatomic,strong)NSString* auctionId; @property (nonatomic,strong)NSString* auctionId;
/// 交友房助力id
@property (nonatomic,strong)NSString* heartId;
@property (nonatomic,copy)void(^sendSuccessBlock)(NSString*dynamicId); @property (nonatomic,copy)void(^sendSuccessBlock)(NSString*dynamicId);
@property (nonatomic,copy)void(^roomSendSuccessBlock)(BOOL isAuction, QXGiftModel*giftModel,NSString*userId, NSString*auctionId); @property (nonatomic,copy)void(^roomSendSuccessBlock)(QXSendGiftViewType sendType, QXGiftModel*giftModel,NSString*userId, NSString*optionId);
-(void)reloadData; -(void)reloadData;
-(void)showInView:(UIView *)view; -(void)showInView:(UIView *)view;
@@ -107,9 +111,10 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,strong)UIButton *sendBtn; @property (nonatomic,strong)UIButton *sendBtn;
@property (nonatomic,strong)QXGiftModel *giftModel; @property (nonatomic,strong)QXGiftModel *giftModel;
@property (nonatomic,assign)BOOL isAuction; @property (nonatomic,assign)QXSendGiftViewType sendType;
@property (nonatomic,strong)NSString *userId; @property (nonatomic,strong)NSString *userId;
@property (nonatomic,strong)NSString *auctionId; @property (nonatomic,strong)NSString *auctionId;
@property (nonatomic,strong)NSString *heartId;
@property (nonatomic,strong)NSString *roomId; @property (nonatomic,strong)NSString *roomId;
@property (nonatomic,strong)CABasicAnimation *animation; @property (nonatomic,strong)CABasicAnimation *animation;

View File

@@ -100,7 +100,8 @@
} }
break; break;
case QXSendGiftViewTypeRoom: case QXSendGiftViewTypeRoom:
case QXSendGiftViewTypeAuction:{ case QXSendGiftViewTypeAuction:
case QXSendGiftViewTypeFriend:{
if (_userListView) { if (_userListView) {
[_userListView removeFromSuperview]; [_userListView removeFromSuperview];
_userListView = nil; _userListView = nil;
@@ -295,28 +296,44 @@
showToast(@"请选择送礼对象"); showToast(@"请选择送礼对象");
return; return;
} }
self.heartId = @"";
self.auctionId = @"";
/// 2 /// 2
NSString *userId = [self.pitUserListView.selectedArray componentsJoinedByString:@","]; NSString *userId = [self.pitUserListView.selectedArray componentsJoinedByString:@","];
NSString *type = self.categoryView.selectedIndex==0?@"2":@"1"; NSString *type = self.categoryView.selectedIndex==0?@"2":@"1";
[QXMineNetwork roomSendGiftWithRoomId:self.roomId gift_id:self.giftModel.gift_id gift_num:self.giftCount to_uid:userId type:type pit_number:@"" successBlock:^(NSDictionary * _Nonnull dict) { [QXMineNetwork roomSendGiftWithRoomId:self.roomId gift_id:self.giftModel.gift_id gift_num:self.giftCount to_uid:userId heart_id:self.heartId type:type pit_number:@"" successBlock:^(NSDictionary * _Nonnull dict) {
[weakSelf hide]; [weakSelf hide];
if (weakSelf.roomSendSuccessBlock) { if (weakSelf.roomSendSuccessBlock) {
weakSelf.roomSendSuccessBlock(NO,weakSelf.giftModel,userId,@""); weakSelf.roomSendSuccessBlock(self.type,weakSelf.giftModel,userId,@"");
} }
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) { } failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
showToast(msg) showToast(msg)
}]; }];
}else if (self.type == QXSendGiftViewTypeAuction) { }else if (self.type == QXSendGiftViewTypeAuction) {
self.heartId = @"";
/// 2 /// 2
NSString *type = self.categoryView.selectedIndex==0?@"2":@"1"; NSString *type = self.categoryView.selectedIndex==0?@"2":@"1";
[QXMineNetwork roomAuctionJoinWithAuctionId:self.auctionId user_id:[QXGlobal shareGlobal].loginModel.user_id gift_id:self.giftModel.gift_id num:self.giftCount type:type successBlock:^(NSDictionary * _Nonnull dict) { [QXMineNetwork roomAuctionJoinWithAuctionId:self.auctionId user_id:[QXGlobal shareGlobal].loginModel.user_id gift_id:self.giftModel.gift_id num:self.giftCount type:type successBlock:^(NSDictionary * _Nonnull dict) {
[weakSelf hide]; [weakSelf hide];
if (weakSelf.roomSendSuccessBlock) { if (weakSelf.roomSendSuccessBlock) {
weakSelf.roomSendSuccessBlock(YES,weakSelf.giftModel,[QXGlobal shareGlobal].loginModel.user_id,weakSelf.auctionId); weakSelf.roomSendSuccessBlock(self.type,weakSelf.giftModel,[QXGlobal shareGlobal].loginModel.user_id,weakSelf.auctionId);
} }
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) { } failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
showToast(msg); showToast(msg);
}]; }];
}else if (self.type == QXSendGiftViewTypeFriend) {
self.auctionId = @"";
/// 2
NSString *userId = [self.pitUserListView.selectedArray componentsJoinedByString:@","];
NSString *type = self.categoryView.selectedIndex==0?@"2":@"1";
[QXMineNetwork roomSendGiftWithRoomId:self.roomId gift_id:self.giftModel.gift_id gift_num:self.giftCount to_uid:userId heart_id:self.heartId type:type pit_number:@"" successBlock:^(NSDictionary * _Nonnull dict) {
[weakSelf hide];
if (weakSelf.roomSendSuccessBlock) {
weakSelf.roomSendSuccessBlock(self.type,weakSelf.giftModel,userId,weakSelf.heartId);
}
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
showToast(msg)
}];
}else{ }else{
/// 2 /// 2
NSString *type = self.categoryView.selectedIndex==0?@"2":@"1"; NSString *type = self.categoryView.selectedIndex==0?@"2":@"1";
@@ -996,20 +1013,31 @@
_animation = nil; _animation = nil;
[self.circleLayer addAnimation:self.animation forKey:@"circleAnimation"]; [self.circleLayer addAnimation:self.animation forKey:@"circleAnimation"];
[[QXGlobal shareGlobal] vibrationFeedback]; [[QXGlobal shareGlobal] vibrationFeedback];
if (self.isAuction) { switch (self.sendType) {
case QXSendGiftViewTypeRoom:
[QXMineNetwork roomSendGiftWithRoomId:self.roomId gift_id:self.giftModel.gift_id gift_num:@"1" to_uid:self.userId heart_id:self.heartId type:@"1" pit_number:@"" successBlock:^(NSDictionary * _Nonnull dict) {
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
showToast(msg)
}];
break;
case QXSendGiftViewTypeAuction:
[QXMineNetwork roomAuctionJoinWithAuctionId:self.auctionId user_id:self.userId gift_id:self.giftModel.gift_id num:@"1" type:@"1" successBlock:^(NSDictionary * _Nonnull dict) { [QXMineNetwork roomAuctionJoinWithAuctionId:self.auctionId user_id:self.userId gift_id:self.giftModel.gift_id num:@"1" type:@"1" successBlock:^(NSDictionary * _Nonnull dict) {
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) { } failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
showToast(msg) showToast(msg)
}]; }];
}else{ break;
[QXMineNetwork roomSendGiftWithRoomId:self.roomId gift_id:self.giftModel.gift_id gift_num:@"1" to_uid:self.userId type:@"1" pit_number:@"" successBlock:^(NSDictionary * _Nonnull dict) { case QXSendGiftViewTypeFriend:
[QXMineNetwork roomSendGiftWithRoomId:self.roomId gift_id:self.giftModel.gift_id gift_num:@"1" to_uid:self.userId heart_id:self.heartId type:@"1" pit_number:@"" successBlock:^(NSDictionary * _Nonnull dict) {
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) { } failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
showToast(msg) showToast(msg)
}]; }];
break;
default:
break;
} }
} }
-(CABasicAnimation *)animation{ -(CABasicAnimation *)animation{
if (!_animation) { if (!_animation) {

View File

@@ -15,6 +15,7 @@
#import "QXRankCPListCell.h" #import "QXRankCPListCell.h"
#import "QXRankCPTopThreeView.h" #import "QXRankCPTopThreeView.h"
#import "QXHomePageNetwork.h" #import "QXHomePageNetwork.h"
#import "QXUserHomePageViewController.h"
@interface QXRankHomeSubVC ()<UITableViewDelegate,UITableViewDataSource> @interface QXRankHomeSubVC ()<UITableViewDelegate,UITableViewDataSource>
@property (nonatomic,strong)QXRankTypeView *rankTypeView; @property (nonatomic,strong)QXRankTypeView *rankTypeView;
@@ -189,6 +190,19 @@
} }
} }
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
QXMyRankModel *model = self.dataArray[indexPath.row];
// if (self.rankType == 0) {
// if ([model.room_id isExist]) {
// [[QXGlobal shareGlobal] joinRoomWithRoomId:model.room_id isRejoin:NO navagationController:self.navigationController];
// }
// return;
// }
if (self.rankType == 1 || self.rankType == 2) {
QXUserHomePageViewController *vc = [[QXUserHomePageViewController alloc] init];
vc.user_id = model.user_id;
[self.navigationController pushViewController:vc animated:YES];
return;
}
// if (self.rankType != 4) {//CP // if (self.rankType != 4) {//CP
// QXHomeRoomListModel *model = self.dataArray[indexPath.row]; // QXHomeRoomListModel *model = self.dataArray[indexPath.row];
// SRPersonalViewController *pvc = [[SRPersonalViewController alloc] initWithUserId:[model.user_id longLongValue]]; // SRPersonalViewController *pvc = [[SRPersonalViewController alloc] initWithUserId:[model.user_id longLongValue]];

View File

@@ -0,0 +1,22 @@
//
// QXRoomViewController+Friend.h
// QXLive
//
// Created by 启星 on 2025/8/20.
//
#import "QXRoomViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface QXRoomViewController (Friend)
/// 重置麦位视图
-(void)resetFriendViews;
/// 交友房阶段发生变化 step 阶段 1等待 2心动 3牵手 friend_id 场次id
//-(void)friendPartDidChangedWithType:(NSString*)step friend_id:(NSString*)friend_id;
///// 交友房时间发生延时 end_time 截止时间
//-(void)friendTimeDelayWithTime:(NSString*)end_time;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,87 @@
//
// QXRoomViewController+Friend.m
// QXLive
//
// Created by on 2025/8/20.
//
#import "QXRoomViewController+Friend.h"
#import "QXAgoraEngine.h"
@implementation QXRoomViewController (Friend)
-(void)resetFriendViews{
[self.seatContentView setType:QXRoomSeatViewTypeFriend];
[self.seatContentView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.right.equalTo(self.view);
make.top.mas_equalTo(self.titleView.bottom);
make.height.mas_equalTo(ScaleWidth(377));
}];
[self.chatListView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(self.bottomView.mas_top);
make.left.equalTo(self.view);
make.top.equalTo(self.seatContentView.mas_bottom);
// make.right.equalTo(self.soundBtn.mas_left).offset(-16);
make.width.mas_equalTo(ScaleWidth(280));
}];
}
-(void)friendPartDidChangedWithType:(NSString*)step friend_id:(NSString*)friend_id end_time:(NSString*)end_time relationModel:(nonnull QXRoomFriendRelationModel *)relationModel{
[self.seatContentView friendPartDidChangedWithType:step friend_id:friend_id end_time:end_time relationModel:relationModel];
}
-(void)friendTimeDelayWithTime:(NSString *)end_time{
[self.seatContentView friendTimeDelayWithTime:end_time];
}
-(void)friendSeatDidChanged:(NSArray<QXRoomPitModel *> *)pitArray{
BOOL haveMe = NO;
if (self.seatContentView.myPitNumber == 9 || self.seatContentView.myPitNumber == 10) {
haveMe = YES;
}
for (QXRoomPitModel*md in pitArray) {
if ([md.user_id isEqualToString:QXGlobal.shareGlobal.loginModel.user_id]) {
self.seatContentView.myPitNumber = md.pit_number.integerValue;
haveMe = YES;
break;
}
}
if (haveMe == NO) {
self.bottomView.status = 1;
[[QXAgoraEngine sharedEngine] setClientRoleBroadcaster:NO];
}else{
self.bottomView.status = 2;
if ([QXAgoraEngine sharedEngine].isOpenMic) {
[self.bottomView setMuteAudioStatus:1];
}else{
[self.bottomView setMuteAudioStatus:0];
}
}
[self.seatContentView friendSeatDidChanged:pitArray];
}
-(void)friendPowerSendGiftWithUser:(QXRoomPitModel *)user heartId:(NSString *)heartId{
self.sendGiftView.type = QXSendGiftViewTypeFriend;
QXRoomPitModel *model = [[QXRoomPitModel alloc] init];
model.pit_number = user.pit_number;
model.user_id = user.user_id;
model.nickname = user.nickname;
model.avatar = user.avatar;
self.sendGiftView.userModel = model;
self.sendGiftView.heartId = heartId;
self.sendGiftView.roomId = self.roomId;
[self.sendGiftView showInView:self.view];
}
-(void)friendHeartNumberDidChanged:(NSArray<QXRoomFriendHeartListModel *> *)heartArray{
[self.seatContentView friendHeartNumberDidChanged:heartArray];
}
///
-(void)friendRelationIsCreatedWithrelationModel:(QXRoomFriendRelationModel*)relationModel{
[self.seatContentView friendRelationIsCreatedWithrelationModel:relationModel];
}
/// 退
-(void)friendCabinRoomIsQuit{
[[QXGlobal shareGlobal] quitRoomWithRoomId:self.roomId];
[self.navigationController popViewControllerAnimated:YES];
}
///
-(void)friendCabinRoomTimeDelayWithTime:(NSString*)end_time{
[self.seatContentView friendCabinRoomTimeDelayWithTime:end_time];
}
@end

View File

@@ -6,13 +6,33 @@
// //
#import "QXBaseViewController.h" #import "QXBaseViewController.h"
#import "QXGlobal.h"
#import "QXRoomSeatView.h"
#import "QXRoomChatListView.h"
#import "QXRoomTitleView.h"
#import "QXRoomBottomView.h"
#import "QXRoomMessageManager.h"
#import "QXSendGiftView.h"
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@interface QXRoomViewController : QXBaseViewController @interface QXRoomViewController : QXBaseViewController<QXRoomMessageManagerDelegate,QXRoomSeatDelegate>
@property (nonatomic,strong)NSString *roomId; @property (nonatomic,strong)NSString *roomId;
/// 是否为最小化房间进来 /// 是否为最小化房间进来
@property (nonatomic,assign)BOOL isReJoin; @property (nonatomic,assign)BOOL isReJoin;
/// 麦位视图
@property (nonatomic,strong)QXRoomSeatView *seatContentView;
/// 聊天列表
@property (nonatomic,strong)QXRoomChatListView *chatListView;
/// 顶部房间信息
@property (nonatomic,strong)QXRoomTitleView *titleView;
/// 底部工具栏
@property (nonatomic,strong)QXRoomBottomView *bottomView;
/// 发送礼物
@property (nonatomic,strong)QXSendGiftView *sendGiftView;
-(void)configBottomTools;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -6,16 +6,10 @@
// //
#import "QXRoomViewController.h" #import "QXRoomViewController.h"
#import "QXRoomTitleView.h"
#import "QXRoomSeatView.h"
#import "QXRoomBottomView.h"
#import "QXRoomChatListView.h"
#import "QXRoomSongListView.h" #import "QXRoomSongListView.h"
#import "QXSendGiftView.h"
#import "QXSoundListView.h" #import "QXSoundListView.h"
#import "QXUpSeatView.h" #import "QXUpSeatView.h"
#import "QXMineNetwork.h" #import "QXMineNetwork.h"
#import "QXRoomMessageManager.h"
#import "QXGiftPlayerManager.h" #import "QXGiftPlayerManager.h"
#import "QXAgoraEngine.h" #import "QXAgoraEngine.h"
#import "QXRoomSettingView.h" #import "QXRoomSettingView.h"
@@ -34,29 +28,18 @@
#import "QXReportViewController.h" #import "QXReportViewController.h"
#import "QXMessageViewController.h" #import "QXMessageViewController.h"
#import "QXRoomSubsidyViewController.h" #import "QXRoomSubsidyViewController.h"
#import "QXRoomViewController+Friend.h"
@interface QXRoomViewController ()< @interface QXRoomViewController ()<
QXRoomBottomViewDelegate, QXRoomBottomViewDelegate,
QXRoomMessageManagerDelegate,
QXRoomSettingViewDelegate, QXRoomSettingViewDelegate,
QXAgoraEngineMediaPlayerDelegate, QXAgoraEngineMediaPlayerDelegate,
QXRoomSeatDelegate,
QXRoomUserInfoViewDelegate QXRoomUserInfoViewDelegate
> >
@property (nonatomic,strong)UIImageView *roomBgImageView; @property (nonatomic,strong)UIImageView *roomBgImageView;
@property (nonatomic,strong)UIView *roomBgCoverView; @property (nonatomic,strong)UIView *roomBgCoverView;
///
@property (nonatomic,strong)QXRoomTitleView *titleView;
///
@property (nonatomic,strong)QXRoomSeatView *seatContentView;
///
@property (nonatomic,strong)QXRoomBottomView *bottomView;
///
@property (nonatomic,strong)QXRoomChatListView *chatListView;
/// view /// view
@property (nonatomic,strong)QXRoomSongListView *songListView; @property (nonatomic,strong)QXRoomSongListView *songListView;
///
@property (nonatomic,strong)QXSendGiftView *sendGiftView;
/// ///
@property (nonatomic,strong)QXSoundListView *soundListView; @property (nonatomic,strong)QXSoundListView *soundListView;
/// ///
@@ -388,6 +371,9 @@ QXRoomUserInfoViewDelegate
make.width.mas_equalTo(ScaleWidth(280)); make.width.mas_equalTo(ScaleWidth(280));
}]; }];
[self.view insertSubview:self.movieView atIndex:0]; [self.view insertSubview:self.movieView atIndex:0];
}else if (self.roomModel.room_info.type_id.intValue == 7) {
///
[self resetFriendViews];
} }
if (self.roomModel.room_info.last_pk_room_id.isExist) { if (self.roomModel.room_info.last_pk_room_id.isExist) {
@@ -542,9 +528,9 @@ QXRoomUserInfoViewDelegate
if ((self.roomModel.room_info.type_id.intValue == 1 || self.roomModel.room_info.type_id.intValue == 3 || self.roomModel.room_info.type_id.intValue == 4) && self.roomModel.room_info.label_id.intValue == 1) { if ((self.roomModel.room_info.type_id.intValue == 1 || self.roomModel.room_info.type_id.intValue == 3 || self.roomModel.room_info.type_id.intValue == 4) && self.roomModel.room_info.label_id.intValue == 1) {
hasPK = YES; hasPK = YES;
} }
BOOL hasSong = YES; BOOL hasSong = NO;
if (self.roomModel.room_info.type_id.intValue == 2){ if (self.roomModel.room_info.type_id.intValue == 1 || self.roomModel.room_info.type_id.intValue == 3 || self.roomModel.room_info.type_id.intValue == 4){
hasSong = NO; hasSong = YES;
} }
/// ///
if (self.seatContentView.myPitNumber <= 0) { if (self.seatContentView.myPitNumber <= 0) {
@@ -1597,14 +1583,28 @@ QXRoomUserInfoViewDelegate
_sendGiftView.roomId = self.roomId; _sendGiftView.roomId = self.roomId;
// [_sendGiftView reloadData]; // [_sendGiftView reloadData];
MJWeakSelf MJWeakSelf
_sendGiftView.roomSendSuccessBlock = ^(BOOL isAuction, QXGiftModel * _Nonnull giftModel, NSString * _Nonnull userId, NSString * _Nonnull auctionId) { _sendGiftView.roomSendSuccessBlock = ^(QXSendGiftViewType sendType, QXGiftModel * _Nonnull giftModel, NSString * _Nonnull userId, NSString * _Nonnull optionId) {
if (self->_continuousView == nil) { if (self->_continuousView == nil) {
[weakSelf.view addSubview:weakSelf.continuousView]; [weakSelf.view addSubview:weakSelf.continuousView];
} }
weakSelf.continuousView.giftModel = giftModel; weakSelf.continuousView.giftModel = giftModel;
weakSelf.continuousView.isAuction = isAuction; weakSelf.continuousView.sendType = sendType;
weakSelf.continuousView.userId = userId; weakSelf.continuousView.userId = userId;
weakSelf.continuousView.auctionId = auctionId; switch (sendType) {
case QXSendGiftViewTypeFriend:{
weakSelf.continuousView.heartId = optionId;
weakSelf.continuousView.auctionId = @"";
}
break;
case QXSendGiftViewTypeAuction:{
weakSelf.continuousView.auctionId = optionId;
weakSelf.continuousView.heartId = @"";
}
break;
default:
break;
}
}; };
} }
return _sendGiftView; return _sendGiftView;

View File

@@ -0,0 +1,28 @@
//
// QXRoomFriendRelationModel.h
// QXLive
//
// Created by 启星 on 2025/8/21.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface QXRoomFriendRelationModel : NSObject
@property (nonatomic,strong)NSString *user1_id;
@property (nonatomic,strong)NSString *user1_avatar;
@property (nonatomic,strong)NSString *user1_nickname;
@property (nonatomic,strong)NSString *user2_id;
@property (nonatomic,strong)NSString *user2_avatar;
@property (nonatomic,strong)NSString *user2_nickname;
@property (nonatomic,strong)NSString *heart_value;
@property (nonatomic,strong)NSString *heart_id;
@property (nonatomic,strong)NSString *room_id;
@property (nonatomic,strong)NSString *relation_name;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,12 @@
//
// QXRoomFriendRelationModel.m
// QXLive
//
// Created by on 2025/8/21.
//
#import "QXRoomFriendRelationModel.h"
@implementation QXRoomFriendRelationModel
@end

View File

@@ -7,6 +7,7 @@
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
#import "QXRoomModel.h" #import "QXRoomModel.h"
#import "NoitceAndKey.h"
typedef NS_ENUM(NSInteger) { typedef NS_ENUM(NSInteger) {
/// 静音 /// 静音

View File

@@ -10,6 +10,7 @@
#import "QXGiftModel.h" #import "QXGiftModel.h"
#import "QXSongListModel.h" #import "QXSongListModel.h"
#import "QXRoomSeatDelegate.h" #import "QXRoomSeatDelegate.h"
#import "QXRoomFriendRelationModel.h"
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger) { typedef NS_ENUM(NSInteger) {
@@ -80,5 +81,12 @@ typedef NS_ENUM(NSInteger) {
@property (nonatomic,assign)BOOL havBubble; @property (nonatomic,assign)BOOL havBubble;
@property (nonatomic,strong)NSString* total; @property (nonatomic,strong)NSString* total;
/// 交友房新增
@property (nonatomic,strong)NSString* step;
@property (nonatomic,strong)NSString* friend_id;
@property (nonatomic,strong)NSString* end_time;
@property (nonatomic,strong)QXRoomFriendRelationModel* friend_user;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -751,7 +751,8 @@ NSInteger maxMessageCount = 20;
return @{@"GiftInfo" : @"QXGiftModel", return @{@"GiftInfo" : @"QXGiftModel",
@"FromUserInfo":@"QXUserHomeModel", @"FromUserInfo":@"QXUserHomeModel",
@"nextInfo":@"QXSongListModel", @"nextInfo":@"QXSongListModel",
@"songInfo":@"QXSongListModel" @"songInfo":@"QXSongListModel",
@"friend_user":@"QXRoomFriendRelationModel"
}; };
} }

View File

@@ -18,7 +18,7 @@ typedef NS_ENUM(NSInteger) {
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@interface QXRoomSeatSettingView : UIView @interface QXRoomSeatSettingView : UIView
//@property (nonatomic,assign)BOOL isLockMic; @property (nonatomic,assign)BOOL isNoHaveLockMic;
//@property (nonatomic,assign)BOOL isMuteMic; //@property (nonatomic,assign)BOOL isMuteMic;
@property (nonatomic,strong) QXRoomPitModel *pitModel; @property (nonatomic,strong) QXRoomPitModel *pitModel;
@property (nonatomic,strong) NSString *roomId; @property (nonatomic,strong) NSString *roomId;

View File

@@ -47,6 +47,12 @@
_pitModel = pitModel; _pitModel = pitModel;
[self.tableView reloadData]; [self.tableView reloadData];
} }
-(void)setIsNoHaveLockMic:(BOOL)isNoHaveLockMic{
_isNoHaveLockMic = isNoHaveLockMic;
self.bgView.height = ScaleWidth(42);
self.tableView.height = ScaleWidth(42);
[self.tableView reloadData];
}
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{ -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
return touch.view == self; return touch.view == self;
} }
@@ -64,25 +70,32 @@
} }
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
// return 3; // return 3;
if (self.isNoHaveLockMic) {
return 1;
}
return 2; return 2;
} }
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
QXRoomSeatSettingCell *cell = [QXRoomSeatSettingCell cellWithTableView:tableView]; QXRoomSeatSettingCell *cell = [QXRoomSeatSettingCell cellWithTableView:tableView];
cell.roomId = self.roomId; cell.roomId = self.roomId;
cell.pitModel = self.pitModel; cell.pitModel = self.pitModel;
if (self.isNoHaveLockMic) {
cell.settingType = QXRoomSeatSettingHugMic;
}else{
if (indexPath.row == 0) { if (indexPath.row == 0) {
// cell.isOn = self.pitModel.is_mute.intValue == 1; // cell.isOn = self.pitModel.is_mute.intValue == 1;
// cell.settingType = QXRoomSeatSettingMuteMic; // cell.settingType = QXRoomSeatSettingMuteMic;
cell.isOn = self.pitModel.is_lock.intValue == 1; cell.isOn = self.pitModel.is_lock.intValue == 1;
cell.settingType = QXRoomSeatSettingLockMic; cell.settingType = QXRoomSeatSettingLockMic;
} }
// else if(indexPath.row == 1){ // else if(indexPath.row == 1){
// cell.isOn = self.pitModel.is_lock.intValue == 1; // cell.isOn = self.pitModel.is_lock.intValue == 1;
// cell.settingType = QXRoomSeatSettingLockMic; // cell.settingType = QXRoomSeatSettingLockMic;
// } // }
else{ else{
cell.settingType = QXRoomSeatSettingHugMic; cell.settingType = QXRoomSeatSettingHugMic;
} }
}
MJWeakSelf MJWeakSelf
cell.setSuccessBlock = ^(QXRoomPitModel * _Nonnull pitModel) { cell.setSuccessBlock = ^(QXRoomPitModel * _Nonnull pitModel) {
weakSelf.setSuccessBlock(pitModel); weakSelf.setSuccessBlock(pitModel);
@@ -90,6 +103,13 @@
return cell; return cell;
} }
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
if (self.isNoHaveLockMic) {
[self hide];
if (self.clickHugBlock) {
self.clickHugBlock(self.pitModel);
}
return;
}
if (indexPath.row == 1) { if (indexPath.row == 1) {
[self hide]; [self hide];
if (self.clickHugBlock) { if (self.clickHugBlock) {

View File

@@ -0,0 +1,25 @@
//
// QXFriendCPSuccessView.h
// IsLandVoice
//
// Created by 启星 on 2025/3/10.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@protocol QXFriendCPSuccessViewDelegate <NSObject>
@optional
-(void)animateIsFinishedWithModel:(QXRoomFriendRelationModel*)model;
@end
@interface QXFriendCPSuccessView : UIView
@property (nonatomic,weak)id<QXFriendCPSuccessViewDelegate>delegate;
-(void)setDataWithRelationModel:(QXRoomFriendRelationModel *)model cpName:(NSString*)cpName;
-(void)showInView:(UIView*)view;
-(void)hide;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,129 @@
//
// QXFriendCPSuccessView.m
// IsLandVoice
//
// Created by on 2025/3/10.
//
#import "QXFriendCPSuccessView.h"
@interface QXFriendCPSuccessView()
@property (nonatomic,strong)UIView *bgView;
@property (nonatomic,strong)UIImageView *bgImageView;
@property (nonatomic,strong)UIImageView *headerLeftImageView;
@property (nonatomic,strong)UIImageView *leftNameBgImageView;
@property (nonatomic,strong)UILabel *leftNameLabel;
@property (nonatomic,strong)UIImageView *headerRightImageView;
@property (nonatomic,strong)UIImageView *rightNameBgImageView;
@property (nonatomic,strong)UILabel *rightNameLabel;
///
@property (nonatomic,strong)UILabel *relationLabel;
@property (nonatomic,strong)QXRoomFriendRelationModel *model;
@end
@implementation QXFriendCPSuccessView
- (instancetype)init
{
self = [super init];
if (self) {
self.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
[self createViews];
}
return self;
}
-(void)createViews{
self.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.3];
self.bgView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, ScaleWidth(420))];
self.bgView.centerY = self.centerY;
self.bgView.alpha = 0;
[self addSubview:self.bgView];
self.bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_friend_success_bg"]];
self.bgImageView.frame = CGRectMake(0, 0, self.bgView.width, self.bgView.height);
[self.bgView addSubview:self.bgImageView];
self.headerLeftImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"user_header_placehoulder"]];
self.headerLeftImageView.frame = CGRectMake(self.bgView.width/2-ScaleWidth(75)-15, 60, ScaleWidth(75), ScaleWidth(75));
self.headerLeftImageView.layer.masksToBounds = YES;
self.headerLeftImageView.layer.cornerRadius = self.headerLeftImageView.height/2.0;
self.headerLeftImageView.layer.borderColor = RGB16(0x7781F5).CGColor;
self.headerLeftImageView.layer.borderWidth = 3;
[self.bgView addSubview:self.headerLeftImageView];
self.leftNameBgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_friend_success_name_bg"]];
self.leftNameBgImageView.frame = CGRectMake(0, self.headerLeftImageView.bottom+5, 104, 20);
self.leftNameBgImageView.centerX = self.headerLeftImageView.centerX;
[self.bgView addSubview:self.leftNameBgImageView];
self.leftNameLabel = [[UILabel alloc] initWithFrame:self.leftNameBgImageView.frame];
self.leftNameLabel.textColor = RGB16(0xffffff);
self.leftNameLabel.textAlignment = NSTextAlignmentCenter;
self.leftNameLabel.font = [UIFont fontWithName:@"YouSheBiaoTiHei" size:14];
[self.bgView addSubview:self.leftNameLabel];
self.headerRightImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"user_header_placehoulder"]];
self.headerRightImageView.frame = CGRectMake(self.bgView.width/2+15, self.headerLeftImageView.top, ScaleWidth(75), ScaleWidth(75));
self.headerRightImageView.layer.masksToBounds = YES;
self.headerRightImageView.layer.cornerRadius = self.headerRightImageView.height/2.0;
self.headerRightImageView.layer.borderColor = RGB16(0x7781F5).CGColor;
self.headerRightImageView.layer.borderWidth = 3;
[self.bgView addSubview:self.headerRightImageView];
self.rightNameBgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_friend_success_name_bg"]];
self.rightNameBgImageView.frame = CGRectMake(0, self.headerLeftImageView.bottom+5, 104, 20);
self.rightNameBgImageView.centerX = self.headerRightImageView.centerX;
[self.bgView addSubview:self.rightNameBgImageView];
self.rightNameLabel = [[UILabel alloc] initWithFrame:self.rightNameBgImageView.frame];
self.rightNameLabel.textColor = RGB16(0xffffff);
self.rightNameLabel.textAlignment = NSTextAlignmentCenter;
self.rightNameLabel.font = [UIFont fontWithName:@"YouSheBiaoTiHei" size:14];
[self.bgView addSubview:self.rightNameLabel];
[self.bgView addSubview:self.relationLabel];
self.relationLabel.text = @"兄弟牵手成功";
}
-(void)setDataWithRelationModel:(QXRoomFriendRelationModel *)model cpName:(NSString *)cpName{
_model = model;
[self.headerLeftImageView sd_setImageWithURL:[NSURL URLWithString:model.user1_avatar] placeholderImage:[UIImage imageNamed:@"room_friend_success_name_bg"]];
self.leftNameLabel.text = model.user1_nickname;
[self.headerRightImageView sd_setImageWithURL:[NSURL URLWithString:model.user2_avatar] placeholderImage:[UIImage imageNamed:@"room_friend_success_name_bg"]];
self.rightNameLabel.text = model.user2_nickname;
self.relationLabel.text = [NSString stringWithFormat:@"%@牵手成功",cpName];
}
-(void)showInView:(UIView *)view{
[view addSubview:self];
[UIView animateWithDuration:1.5 animations:^{
self.bgView.alpha = 1;
} completion:^(BOOL finished) {
[self performSelector:@selector(hide) withObject:nil afterDelay:3];
}];
}
-(void)hide{
[UIView animateWithDuration:1 animations:^{
self.bgView.alpha = 0;
} completion:^(BOOL finished) {
[self removeFromSuperview];
if (self.delegate && [self.delegate respondsToSelector:@selector(animateIsFinishedWithModel:)]) {
[self.delegate animateIsFinishedWithModel:self.model];
}
}];
}
- (UILabel *)relationLabel{
if (!_relationLabel) {
_relationLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, self.bgView.height/2, self.bgView.width, 35)];
_relationLabel.textAlignment = NSTextAlignmentCenter;
_relationLabel.font = [UIFont fontWithName:@"YouSheBiaoTiHei" size:28];
_relationLabel.textColor = [UIColor colorWithHexString:@"#FFEBC3"];
}
return _relationLabel;
}
@end

View File

@@ -0,0 +1,29 @@
//
// QXFriendCPView.h
// IsLandVoice
//
// Created by 启星 on 2025/3/10.
//
#import <UIKit/UIKit.h>
#import "QXRoomFriendRelationModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface QXFriendCPView : UIView
@property (nonatomic,strong)QXRoomFriendRelationModel *model;
@property (nonatomic,strong)NSMutableArray *dataArray;
@property (nonatomic,copy)void(^commitBlock)(QXRoomFriendRelationModel*relationModel,NSString*selectedCpId,NSString*selectedCpName);
-(void)showInView:(UIView*)view;
-(void)hide;
-(void)getRelationShipList;
@end
@interface QXFriendCPTypeCell : UICollectionViewCell
/// 1 创建房间 2 礼物
@property (nonatomic,assign)NSInteger type;
@property (nonatomic,strong)UIButton *titleBtn;
@property (nonatomic,strong)NSString *title;
@property (nonatomic,assign)BOOL isSelected;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,311 @@
//
// QXFriendCPView.m
// IsLandVoice
//
// Created by on 2025/3/10.
//
#import "QXFriendCPView.h"
#import <SVGA.h>
#import "QXMineNetwork.h"
@class QXFriendCPTypeCell;
@interface QXFriendCPView()<UICollectionViewDelegate,UICollectionViewDataSource>
@property (nonatomic,strong)UIView *bgView;
@property (nonatomic,strong)UIImageView *bgImageView;
@property (nonatomic,strong)UIImageView *headerLeftImageView;
@property (nonatomic,strong)UILabel *headerLeftNameLabel;
@property (nonatomic,strong)UIImageView *lineImageView;
///
@property (nonatomic,strong)UILabel *heartValueLabel;
@property (nonatomic,strong)UIImageView *headerRightImageView;
@property (nonatomic,strong)UILabel *headerRightNameLabel;
@property (nonatomic,strong)UILabel *titleLabel;
@property (nonatomic,strong)UICollectionView *collectionView;
@property (nonatomic,strong)UIButton *cancelBtn;
@property (nonatomic,strong)UIButton *commitBtn;
@property (nonatomic,assign)NSInteger selectedIndex;
@property (nonatomic, strong) SVGAPlayer *svgaPlayer;
@property (nonatomic , strong) SVGAParser *parser;
@end
@implementation QXFriendCPView
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
[self createViews];
}
return self;
}
-(void)createViews{
self.selectedIndex = -1;
self.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.5];
self.bgView = [[UIView alloc] initWithFrame:CGRectMake((self.width-ScaleWidth(275))/2.0,-SCREEN_HEIGHT, ScaleWidth(275), ScaleWidth(466))];
[self addSubview:self.bgView];
self.bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_friend_create_relation_bg"]];
self.bgImageView.contentMode = UIViewContentModeScaleToFill;
self.bgImageView.frame = self.bgView.bounds;
[self.bgView addSubview:self.bgImageView];
[self.bgView addSubview:self.headerLeftImageView];
[self.bgView addSubview:self.headerLeftNameLabel];
[self.bgView addSubview:self.headerRightImageView];
[self.bgView addSubview:self.headerRightNameLabel];
[self.bgView addSubview:self.lineImageView];
[self.bgView addSubview:self.heartValueLabel];
self.titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(16, self.headerLeftNameLabel.bottom+15, 200, 24)];
self.titleLabel.text = @"关系列表";
self.titleLabel.font = [UIFont boldSystemFontOfSize:16];
self.titleLabel.textColor = [UIColor colorWithHexString:@"#333333"];
[self.bgView addSubview:self.titleLabel];
self.cancelBtn = [[UIButton alloc] initWithFrame:CGRectMake(16, ScaleWidth(466)-42-40, (self.bgView.width-16*3-18)/2.0, 42)];
self.cancelBtn.backgroundColor = [UIColor colorWithHexString:@"#333333"];
[self.cancelBtn setTitle:@"取消" forState:(UIControlStateNormal)];
self.cancelBtn.titleLabel.font = [UIFont systemFontOfSize:14];
[self.cancelBtn setTitleColor:[UIColor colorWithHexString:@"#ffffff"] forState:(UIControlStateNormal)];
[self.cancelBtn addTarget:self action:@selector(closeAction) forControlEvents:(UIControlEventTouchUpInside)];
self.cancelBtn.layer.masksToBounds = YES;
self.cancelBtn.layer.cornerRadius = 21;
[self.bgView addSubview:self.cancelBtn];
self.commitBtn = [[UIButton alloc] initWithFrame:CGRectMake(self.cancelBtn.right+20, self.cancelBtn.top, self.cancelBtn.width, 42)];
self.commitBtn.backgroundColor = QXConfig.themeColor;
[self.commitBtn setTitle:@"确认" forState:(UIControlStateNormal)];
self.commitBtn.titleLabel.font = [UIFont systemFontOfSize:14];
[self.commitBtn setTitleColor:QXConfig.btnTextColor forState:(UIControlStateNormal)];
[self.commitBtn addTarget:self action:@selector(commitAction) forControlEvents:(UIControlEventTouchUpInside)];
self.commitBtn.layer.masksToBounds = YES;
self.commitBtn.layer.cornerRadius = 21;
[self.bgView addSubview:self.commitBtn];
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
CGFloat itemWidth = (self.bgView.width - 48 - 3*12)/3.0;
layout.itemSize = CGSizeMake(itemWidth, 34);
layout.minimumInteritemSpacing = 12;
layout.minimumLineSpacing = 12;
layout.sectionInset = UIEdgeInsetsMake(0, 18, 0, 30);
self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, self.titleLabel.bottom+10, self.bgView.width, self.commitBtn.top-self.titleLabel.bottom-30) collectionViewLayout:layout];
self.collectionView.delegate = self;
self.collectionView.backgroundColor = [UIColor clearColor];
self.collectionView.dataSource = self;
[self.collectionView registerClass:[QXFriendCPTypeCell class] forCellWithReuseIdentifier:@"QXFriendCPTypeCell"];
[self.bgView addSubview:self.collectionView];
[self getRelationShipList];
}
-(void)getRelationShipList{
MJWeakSelf
[QXMineNetwork roomRelationListWithType:@"2" successBlock:^(NSArray<QXRoomRelationModel *> * _Nonnull list) {
[weakSelf.dataArray removeAllObjects];
[weakSelf.dataArray addObjectsFromArray:list];
[weakSelf.collectionView reloadData];
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
}];
}
-(void)setModel:(QXRoomFriendRelationModel *)model{
_model = model;
[self.headerLeftImageView sd_setImageWithURL:[NSURL URLWithString:model.user1_avatar] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
[self.headerRightImageView sd_setImageWithURL:[NSURL URLWithString:model.user2_avatar] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
self.headerLeftNameLabel.text = model.user1_nickname;
self.headerRightNameLabel.text = model.user2_nickname;
self.heartValueLabel.text = model.heart_value;
}
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
return 1;
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
return self.dataArray.count;
}
-(__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
QXFriendCPTypeCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"QXFriendCPTypeCell" forIndexPath:indexPath];
QXRoomRelationModel *model = self.dataArray[indexPath.row];
cell.title = model.name;
if (indexPath.row == self.selectedIndex) {
cell.isSelected = YES;
}else{
cell.isSelected = NO;
}
return cell;
}
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
self.selectedIndex = indexPath.row;
[self.collectionView reloadData];
}
-(void)commitAction{
// QXFriendCPSuccessView *successView = [[QXFriendCPSuccessView alloc] init];
// for (UIWindow *w in [UIApplication sharedApplication].windows) {
// if ([w isKeyWindow]) {
// [successView showInView:w];
// break;
// }
// }
QXRoomRelationModel *md = self.dataArray[self.selectedIndex];
if (self.commitBlock) {
self.commitBlock(self.model,md.relation_id,md.name);
}
}
-(void)closeAction{
[self hide];
}
-(void)showInView:(UIView *)view{
[view addSubview:self];
[UIView animateWithDuration:0.3 delay:0 usingSpringWithDamping:0.5 initialSpringVelocity:1.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
self.bgView.centerY = self.centerY;
} completion:^(BOOL finished) {
}];
}
-(void)hide{
[UIView animateWithDuration:0.3 delay:0 usingSpringWithDamping:0.5 initialSpringVelocity:1.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
self.bgView.y = SCREEN_HEIGHT;
} completion:^(BOOL finished) {
[self removeFromSuperview];
}];
}
- (UIImageView *)headerLeftImageView{
if (!_headerLeftImageView) {
_headerLeftImageView = [[UIImageView alloc] initWithFrame:CGRectMake(18, ScaleWidth(130), ScaleWidth(50), ScaleWidth(50))];
_headerLeftImageView.image = [UIImage imageNamed:@"user_header_placehoulder"];
_headerLeftImageView.contentMode = UIViewContentModeScaleAspectFill;
_headerLeftImageView.layer.masksToBounds = YES;
_headerLeftImageView.layer.cornerRadius = ScaleWidth(50)/2.0;
}
return _headerLeftImageView;
}
-(UILabel *)headerLeftNameLabel{
if (!_headerLeftNameLabel) {
_headerLeftNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.headerLeftImageView.left, self.headerLeftImageView.bottom, 100, 20)];
_headerLeftNameLabel.textColor = [UIColor colorWithHexString:@"#333333"];
_headerLeftNameLabel.font = [UIFont systemFontOfSize:12];
_headerLeftNameLabel.textAlignment = NSTextAlignmentLeft;
}
return _headerLeftNameLabel;
}
- (UIImageView *)headerRightImageView{
if (!_headerRightImageView) {
_headerRightImageView = [[UIImageView alloc] initWithFrame:CGRectMake(self.bgView.width-30-ScaleWidth(50), self.headerLeftImageView.top, ScaleWidth(50), ScaleWidth(50))];
_headerRightImageView.image = [UIImage imageNamed:@"user_header_placehoulder"];
_headerRightImageView.contentMode = UIViewContentModeScaleAspectFill;
_headerRightImageView.layer.masksToBounds = YES;
_headerRightImageView.layer.cornerRadius = ScaleWidth(50)/2.0;
}
return _headerRightImageView;
}
-(UILabel *)headerRightNameLabel{
if (!_headerRightNameLabel) {
_headerRightNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.headerRightImageView.right-100, self.headerLeftImageView.bottom, 100, 20)];
_headerRightNameLabel.textColor = [UIColor colorWithHexString:@"#333333"];
_headerRightNameLabel.font = [UIFont systemFontOfSize:12];
_headerRightNameLabel.textAlignment = NSTextAlignmentRight;
}
return _headerRightNameLabel;
}
-(UIImageView *)lineImageView{
if (!_lineImageView) {
_lineImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_friend_relation_heart"]];
_lineImageView.frame = CGRectMake(self.headerLeftImageView.right, 0, self.headerRightImageView.left-self.headerLeftImageView.right, ScaleWidth(50));
_lineImageView.centerY = self.headerLeftImageView.centerY;
}
return _lineImageView;
}
- (UILabel *)heartValueLabel{
if (!_heartValueLabel) {
_heartValueLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 80, 18)];
_heartValueLabel.centerY = self.lineImageView.centerY;
_heartValueLabel.centerX = self.lineImageView.centerX;
_heartValueLabel.backgroundColor = [UIColor colorWithHexString:@"#FE8EC8"];
_heartValueLabel.layer.masksToBounds = YES;
_heartValueLabel.layer.cornerRadius = 9;
_heartValueLabel.layer.borderColor = [UIColor whiteColor].CGColor;
_heartValueLabel.layer.borderWidth = 1;
_heartValueLabel.textColor = [UIColor whiteColor];
_heartValueLabel.textAlignment = NSTextAlignmentCenter;
_heartValueLabel.font = [UIFont boldSystemFontOfSize:12];
}
return _heartValueLabel;
}
-(NSMutableArray *)dataArray{
if (!_dataArray) {
_dataArray = [NSMutableArray array];
}
return _dataArray;
}
@end
@implementation QXFriendCPTypeCell
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self createViews];
}
return self;
}
-(void)setIsSelected:(BOOL)isSelected{
_isSelected = isSelected;
self.titleBtn.selected = isSelected;
if (self.isSelected) {
self.titleBtn.titleLabel.font = [UIFont systemFontOfSize:16];
}else{
self.titleBtn.titleLabel.font = [UIFont systemFontOfSize:14];
}
}
-(void)setType:(NSInteger)type{
_type = type;
if (type == 1) {
self.titleBtn.layer.cornerRadius = 17;
UIImage *normalImage = [UIImage imageWithColor:[UIColor colorWithHexString:@"#F6F6F6"]];
[self.titleBtn setBackgroundImage:normalImage forState:(UIControlStateNormal)];
}if (type == 2){
self.titleBtn.layer.cornerRadius = 0;
[self.titleBtn setBackgroundImage:nil forState:(UIControlStateNormal)];
[self.titleBtn setTitleColor:[UIColor colorWithHexString:@"#999999"] forState:(UIControlStateNormal)];
[self.titleBtn setTitleColor:[UIColor colorWithHexString:@"#ffffff"] forState:(UIControlStateSelected)];
[self.titleBtn setBackgroundImage:nil forState:(UIControlStateNormal)];
[self.titleBtn setBackgroundImage:nil forState:(UIControlStateSelected)];
self.titleBtn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
}
}
-(void)setTitle:(NSString *)title{
_title = title;
[self.titleBtn setTitle:title forState:(UIControlStateNormal)];
}
-(void)createViews{
self.titleBtn = [[UIButton alloc] init];
UIImage *selectedImage = [UIImage imageWithColor:QXConfig.themeColor];
UIImage *normalImage = [UIImage imageWithColor:[UIColor colorWithHexString:@"#FFFFFF"]];
[self.titleBtn setBackgroundImage:selectedImage forState:(UIControlStateSelected)];
[self.titleBtn setBackgroundImage:normalImage forState:(UIControlStateNormal)];
[self.titleBtn setTitleColor:[UIColor colorWithHexString:@"#333333"] forState:(UIControlStateNormal)];
[self.titleBtn setTitleColor:QXConfig.btnTextColor forState:(UIControlStateSelected)];
self.titleBtn.titleLabel.font = [UIFont systemFontOfSize:14];
self.titleBtn.layer.masksToBounds = YES;
self.titleBtn.layer.cornerRadius = 4;
[self.contentView addSubview:self.titleBtn];
self.titleBtn.userInteractionEnabled = NO;
[self.titleBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self.contentView);
}];
}
@end

View File

@@ -18,6 +18,8 @@ typedef NS_ENUM(NSInteger) {
QXRoomSettingTypeRoomTypeBoy = 12, QXRoomSettingTypeRoomTypeBoy = 12,
/// 女神房 /// 女神房
QXRoomSettingTypeRoomTypeGirl = 13, QXRoomSettingTypeRoomTypeGirl = 13,
/// 交友房
QXRoomSettingTypeRoomTypeFriend = 14,
/// 常用工具 /// 常用工具
/// 房间补贴 /// 房间补贴

View File

@@ -34,6 +34,8 @@
@property (nonatomic,strong)QXRoomSettingModel *roomTypeBoy; @property (nonatomic,strong)QXRoomSettingModel *roomTypeBoy;
/// ///
@property (nonatomic,strong)QXRoomSettingModel *roomTypeGirl; @property (nonatomic,strong)QXRoomSettingModel *roomTypeGirl;
///
@property (nonatomic,strong)QXRoomSettingModel *roomTypeFriend;
/// ///
/// ///
@@ -178,12 +180,12 @@
// } // }
if ((self.roomModel.room_info.type_id.intValue == 1 || self.roomModel.room_info.type_id.intValue == 3 || self.roomModel.room_info.type_id.intValue == 4) && self.roomModel.room_info.label_id.intValue == 2) { if ((self.roomModel.room_info.type_id.intValue == 1 || self.roomModel.room_info.type_id.intValue == 3 || self.roomModel.room_info.type_id.intValue == 4) && self.roomModel.room_info.label_id.intValue == 2) {
toolsArr = @[self.roomSubsidy,self.roomMessage,self.roomOrderMic,self.roomBgImage]; toolsArr = @[self.roomSubsidy,self.roomMessage,self.roomOrderMic,self.roomBgImage];
roomTypeArr = @[self.roomTypeSing,self.roomTypeAuction,self.roomTypeBoy,self.roomTypeGirl]; roomTypeArr = @[self.roomTypeSing,self.roomTypeAuction,self.roomTypeBoy,self.roomTypeGirl,self.roomTypeFriend];
// moreArr = @[self.roomLeave,self.roomShare,self.roomVoiceSet,self.roomSetting,self.roomWelcome,self.roomEffects,self.roomReport]; // moreArr = @[self.roomLeave,self.roomShare,self.roomVoiceSet,self.roomSetting,self.roomWelcome,self.roomEffects,self.roomReport];
moreArr = @[self.roomLeave,self.roomVoiceSet,self.roomSetting,self.roomEffects,self.roomReport]; moreArr = @[self.roomLeave,self.roomVoiceSet,self.roomSetting,self.roomEffects,self.roomReport];
}else{ }else{
toolsArr = @[self.roomSubsidy,self.roomMessage,self.roomOrderMic,self.roomBgMusic,self.roomBgImage]; toolsArr = @[self.roomSubsidy,self.roomMessage,self.roomOrderMic,self.roomBgMusic,self.roomBgImage];
roomTypeArr = @[self.roomTypeSing,self.roomTypeAuction,self.roomTypeBoy,self.roomTypeGirl]; roomTypeArr = @[self.roomTypeSing,self.roomTypeAuction,self.roomTypeBoy,self.roomTypeGirl,self.roomTypeFriend];
// moreArr = @[self.roomLeave,self.roomShare,self.roomVoiceSet,self.roomSetting,self.roomWelcome,self.roomEffects,self.roomReport]; // moreArr = @[self.roomLeave,self.roomShare,self.roomVoiceSet,self.roomSetting,self.roomWelcome,self.roomEffects,self.roomReport];
moreArr = @[self.roomLeave,self.roomVoiceSet,self.roomSetting,self.roomEffects,self.roomReport]; moreArr = @[self.roomLeave,self.roomVoiceSet,self.roomSetting,self.roomEffects,self.roomReport];
} }
@@ -212,7 +214,7 @@
toolsArr = @[self.roomSubsidy,self.roomCompere,self.roomMessage,self.roomOrderMic,self.roomBgMusic,self.roomBgImage]; toolsArr = @[self.roomSubsidy,self.roomCompere,self.roomMessage,self.roomOrderMic,self.roomBgMusic,self.roomBgImage];
} }
roomTypeArr = @[self.roomTypeSing,self.roomTypeAuction,self.roomTypeBoy,self.roomTypeGirl]; roomTypeArr = @[self.roomTypeSing,self.roomTypeAuction,self.roomTypeBoy,self.roomTypeGirl,self.roomTypeFriend];
// moreArr = @[self.roomLeave,self.roomShare,self.roomVoiceSet,self.roomSetting,self.roomWelcome,self.roomEffects,self.roomReport]; // moreArr = @[self.roomLeave,self.roomShare,self.roomVoiceSet,self.roomSetting,self.roomWelcome,self.roomEffects,self.roomReport];
moreArr = @[self.roomLeave,self.roomVoiceSet,self.roomSetting,self.roomEffects,self.roomReport]; moreArr = @[self.roomLeave,self.roomVoiceSet,self.roomSetting,self.roomEffects,self.roomReport];
self.titles = @[QXText(@"房间类型"),QXText(@"常用工具"),QXText(@"更多操作")]; self.titles = @[QXText(@"房间类型"),QXText(@"常用工具"),QXText(@"更多操作")];
@@ -230,7 +232,7 @@
}else{ }else{
toolsArr = @[self.roomSubsidy,self.roomCompere,self.roomMessage,self.roomOrderMic,self.roomBgMusic,self.roomBgImage]; toolsArr = @[self.roomSubsidy,self.roomCompere,self.roomMessage,self.roomOrderMic,self.roomBgMusic,self.roomBgImage];
} }
roomTypeArr = @[self.roomTypeSing,self.roomTypeAuction,self.roomTypeBoy,self.roomTypeGirl]; roomTypeArr = @[self.roomTypeSing,self.roomTypeAuction,self.roomTypeBoy,self.roomTypeGirl,self.roomTypeFriend];
// moreArr = @[self.roomLeave,self.roomShare,self.roomVoiceSet,self.roomSetting,self.roomWelcome,self.roomEffects,self.roomReport]; // moreArr = @[self.roomLeave,self.roomShare,self.roomVoiceSet,self.roomSetting,self.roomWelcome,self.roomEffects,self.roomReport];
moreArr = @[self.roomLeave,self.roomVoiceSet,self.roomSetting,self.roomEffects,self.roomReport]; moreArr = @[self.roomLeave,self.roomVoiceSet,self.roomSetting,self.roomEffects,self.roomReport];
self.titles = @[QXText(@"房间类型"),QXText(@"常用工具"),QXText(@"更多操作")]; self.titles = @[QXText(@"房间类型"),QXText(@"常用工具"),QXText(@"更多操作")];
@@ -313,7 +315,7 @@
// [self.welcomeView showInView:self.viewController.view]; // [self.welcomeView showInView:self.viewController.view];
return; return;
} }
if (model.type == QXRoomSettingTypeRoomTypeAuction || model.type == QXRoomSettingTypeRoomTypeSing || model.type == QXRoomSettingTypeRoomTypeBoy || model.type == QXRoomSettingTypeRoomTypeGirl) { if (model.type == QXRoomSettingTypeRoomTypeAuction || model.type == QXRoomSettingTypeRoomTypeSing || model.type == QXRoomSettingTypeRoomTypeBoy || model.type == QXRoomSettingTypeRoomTypeGirl || model.type == QXRoomSettingTypeRoomTypeFriend) {
self.alertView.message = [NSString stringWithFormat:@"您确定要修改为%@房吗?",model.name]; self.alertView.message = [NSString stringWithFormat:@"您确定要修改为%@房吗?",model.name];
[[QXGlobal shareGlobal] showView:self.alertView controller:self.viewController popType:(PopViewTypeTopToCenter) tapDismiss:NO finishBlock:^{ [[QXGlobal shareGlobal] showView:self.alertView controller:self.viewController popType:(PopViewTypeTopToCenter) tapDismiss:NO finishBlock:^{
@@ -339,6 +341,8 @@
type = @"3"; type = @"3";
}else if (roomType == QXRoomSettingTypeRoomTypeGirl) { }else if (roomType == QXRoomSettingTypeRoomTypeGirl) {
type = @"4"; type = @"4";
}else if (roomType == QXRoomSettingTypeRoomTypeFriend) {
type = @"7";
} }
[QXMineNetwork changeRoomTypeWithRoomId:self.roomModel.room_info.room_id type:type successBlock:^(NSDictionary * _Nonnull dict) { [QXMineNetwork changeRoomTypeWithRoomId:self.roomModel.room_info.room_id type:type successBlock:^(NSDictionary * _Nonnull dict) {
@@ -400,6 +404,16 @@
return _roomTypeGirl; return _roomTypeGirl;
} }
-(QXRoomSettingModel *)roomTypeFriend{
if (!_roomTypeFriend) {
_roomTypeFriend = [[QXRoomSettingModel alloc] init];
_roomTypeFriend.name = QXText(@"交友");
_roomTypeFriend.type = QXRoomSettingTypeRoomTypeFriend;
_roomTypeFriend.icon = @"room_set_room_type_friend";
}
return _roomTypeFriend;
}
-(QXRoomSettingModel *)roomSubsidy{ -(QXRoomSettingModel *)roomSubsidy{
if (!_roomSubsidy) { if (!_roomSubsidy) {
_roomSubsidy = [[QXRoomSettingModel alloc] init]; _roomSubsidy = [[QXRoomSettingModel alloc] init];

View File

@@ -12,7 +12,9 @@ typedef NS_ENUM(NSInteger) {
/// 名称名称在下显示魅力 /// 名称名称在下显示魅力
QXRoomSeatContentViewTypeNormal = 0, QXRoomSeatContentViewTypeNormal = 0,
/// 名称在右 /// 名称在右
QXRoomSeatContentViewTypeAuction QXRoomSeatContentViewTypeAuction = 1,
/// 交友房
QXRoomSeatContentViewTypeFriend
}QXRoomSeatContentViewType; }QXRoomSeatContentViewType;
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN

View File

@@ -285,6 +285,29 @@
}]; }];
} }
break; break;
case QXRoomSeatContentViewTypeFriend:{
self.charmBgView.backgroundColor = RGB16A(0x000000,0.65);
// self.charmBgView.hidden = NO;
[self.charmBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.equalTo(self);
make.top.equalTo(self.noUserImageView.mas_bottom).offset(-8);
make.height.mas_equalTo(ScaleWidth(15));
}];
[self.nameLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.charmBgView.mas_bottom).offset(0);
// make.centerX.equalTo(self.noUserImageView);
make.height.mas_equalTo(18);
make.left.right.equalTo(self);
}];
self.nameLabel.textColor = RGB16(0xEFEAFF);
// self.numberLabel.backgroundColor = RGB16(0xdb7fff);
[self.numberLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.charmBgView.mas_bottom).offset(0);
make.centerX.equalTo(self.noUserImageView);
make.height.mas_equalTo(18);
}];
}
break;
default: default:
break; break;
} }

View File

@@ -27,4 +27,7 @@
/// 查看个人信息 /// 查看个人信息
-(void)previewUserInfoWithUserId:(NSString*)userId; -(void)previewUserInfoWithUserId:(NSString*)userId;
/// 助力
-(void)friendPowerSendGiftWithUser:(QXRoomPitModel *)user heartId:(NSString*)heartId;
@end @end

View File

@@ -15,6 +15,8 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,strong)QXRoomModel *roomModel; @property (nonatomic,strong)QXRoomModel *roomModel;
-(void)cabinRoomHotValueDidChanged:(NSString*)hot_value; -(void)cabinRoomHotValueDidChanged:(NSString*)hot_value;
-(void)friendCabinRoomTimeDelayWithTime:(NSString*)end_time;
-(void)destroyViews;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -17,6 +17,7 @@
@property (nonatomic,strong)QXRoomSeatContentView *leftSeatView; @property (nonatomic,strong)QXRoomSeatContentView *leftSeatView;
@property (nonatomic,strong)UIImageView *bgImageView;
@property (nonatomic,strong)UIImageView *heartCenterImageView; @property (nonatomic,strong)UIImageView *heartCenterImageView;
@property (nonatomic,strong)UILabel *numberLabel; @property (nonatomic,strong)UILabel *numberLabel;
@@ -71,16 +72,52 @@
make.centerY.equalTo(self.titleLabel); make.centerY.equalTo(self.titleLabel);
}]; }];
self.bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_friend_cabin_bg"]];
self.timeDownBgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_cabin_timedown_bg"]]; self.bgImageView.contentMode = UIViewContentModeScaleToFill;
self.timeDownBgView.contentMode = UIViewContentModeScaleToFill; [self addSubview:self.bgImageView];
[self addSubview:self.timeDownBgView]; [self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
[self.timeDownBgView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.equalTo(self);
make.left.mas_equalTo(96); make.height.mas_equalTo(ScaleWidth(330));
make.top.mas_equalTo(ScaleWidth(102));
make.width.mas_equalTo(SCREEN_WIDTH-96*2);
make.height.mas_equalTo(24);
}]; }];
self.heartCenterImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_cabin_heart"]];
[self addSubview:self.heartCenterImageView];
[self.heartCenterImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.bgImageView);
make.centerY.equalTo(self.bgImageView);
make.height.mas_equalTo(ScaleWidth(80));
make.width.mas_equalTo(ScaleWidth(160));
}];
self.numberLabel = [[UILabel alloc] init];
self.numberLabel.text = @"0";
self.numberLabel.textAlignment = NSTextAlignmentCenter;
self.numberLabel.textColor = [UIColor colorWithHexString:@"#ffffff"];
self.numberLabel.font = [UIFont fontWithName:@"DIN Alternate" size:18];
[self addSubview:self.numberLabel];
[self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(self.heartCenterImageView).offset(-18);
make.centerX.equalTo(self.heartCenterImageView);
}];
self.leftSeatView = [[QXRoomSeatContentView alloc] init];
[self addSubview:self.leftSeatView];
[self.leftSeatView mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.heartCenterImageView.mas_left);
make.width.mas_equalTo(ScaleWidth(75));
make.height.mas_equalTo(ScaleWidth(75)+25);
make.top.equalTo(self.heartCenterImageView).offset(-5);
}];
self.rightSeatView = [[QXRoomSeatContentView alloc] init];
[self addSubview:self.rightSeatView];
[self.rightSeatView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.heartCenterImageView.mas_right);
make.width.mas_equalTo(ScaleWidth(75));
make.height.mas_equalTo(ScaleWidth(75)+25);
make.top.equalTo(self.leftSeatView);
}];
self.timeDownLabel = [[UILabel alloc] initWithFrame:self.timeDownBgView.frame]; self.timeDownLabel = [[UILabel alloc] initWithFrame:self.timeDownBgView.frame];
self.timeDownLabel.textColor = [UIColor colorWithHexString:@"#ffffff"]; self.timeDownLabel.textColor = [UIColor colorWithHexString:@"#ffffff"];
self.timeDownLabel.font = [UIFont systemFontOfSize:12]; self.timeDownLabel.font = [UIFont systemFontOfSize:12];
@@ -88,50 +125,20 @@
self.timeDownLabel.textAlignment = NSTextAlignmentCenter; self.timeDownLabel.textAlignment = NSTextAlignmentCenter;
[self addSubview:self.timeDownLabel]; [self addSubview:self.timeDownLabel];
[self.timeDownLabel mas_makeConstraints:^(MASConstraintMaker *make) { [self.timeDownLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.top.bottom.right.equalTo(self.timeDownBgView); make.centerX.equalTo(self);
make.top.equalTo(self.heartCenterImageView.mas_bottom).offset(21);
make.height.mas_equalTo(24);
}];
self.timeDownBgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_cabin_timedown_bg"]];
self.timeDownBgView.contentMode = UIViewContentModeScaleToFill;
[self addSubview:self.timeDownBgView];
[self.timeDownBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.timeDownLabel);
}]; }];
self.leftSeatView = [[QXRoomSeatContentView alloc] init];
[self addSubview:self.leftSeatView];
[self.leftSeatView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(36);
make.width.mas_equalTo(ScaleWidth(65));
make.height.mas_equalTo(ScaleWidth(65)+25);
make.top.equalTo(self.timeDownBgView.mas_bottom).offset(24);
}];
self.rightSeatView = [[QXRoomSeatContentView alloc] init];
[self addSubview:self.rightSeatView];
[self.rightSeatView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.leftSeatView);
make.left.mas_equalTo(SCREEN_WIDTH-ScaleWidth(65)-36);
make.width.mas_equalTo(ScaleWidth(65));
make.height.mas_equalTo(ScaleWidth(65)+25);
}];
//
//
//
self.heartCenterImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_cabin_heart"]];
[self addSubview:self.heartCenterImageView];
[self.heartCenterImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.leftSeatView.mas_right);
make.right.equalTo(self.rightSeatView.mas_left);
make.height.mas_equalTo(ScaleWidth(76));
make.centerY.equalTo(self.leftSeatView).offset(-15);
}];
self.numberLabel = [[UILabel alloc] init];
self.numberLabel.text = @"0";
self.numberLabel.textAlignment = NSTextAlignmentCenter;
self.numberLabel.textColor = [UIColor colorWithHexString:@"#ffffff"];
self.numberLabel.font = [UIFont systemFontOfSize:12];
[self addSubview:self.numberLabel];
[self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(self.heartCenterImageView).offset(15);
make.centerX.equalTo(self.heartCenterImageView);
}];
CGFloat margin = (SCREEN_WIDTH-77*3)/4; CGFloat margin = (SCREEN_WIDTH-77*3)/4;
self.micBtn = [[UIButton alloc] init]; self.micBtn = [[UIButton alloc] init];
@@ -206,10 +213,15 @@
self.titleLabel.text = self.roomModel.room_info.room_name; self.titleLabel.text = self.roomModel.room_info.room_name;
self.numberLabel.text = self.roomModel.room_info.hot_value; self.numberLabel.text = self.roomModel.room_info.hot_value;
if ([self.roomModel.room_info.label_id isEqualToString:@"5"]) {
///
[self startTimer];
}else{
NSTimeInterval timeInterval = [[NSDate date] timeIntervalSince1970]; NSTimeInterval timeInterval = [[NSDate date] timeIntervalSince1970];
long long milliseconds = (long long)(timeInterval); long long milliseconds = (long long)(timeInterval);
long long time = roomModel.cp_user.time_day.longLongValue - milliseconds; long long time = roomModel.cp_user.time_day.longLongValue - milliseconds;
self.timeDownLabel.text = [NSString stringWithFormat:@"到期时间:%@",[NSString getTimeWithSecond:time]]; self.timeDownLabel.text = [NSString stringWithFormat:@"到期时间:%@",[NSString getTimeWithSecond:time]];
}
if (![roomModel.room_owner.user_id isEqualToString:QXGlobal.shareGlobal.loginModel.user_id]) { if (![roomModel.room_owner.user_id isEqualToString:QXGlobal.shareGlobal.loginModel.user_id]) {
self.movieBtn.hidden = YES; self.movieBtn.hidden = YES;
CGFloat margin = (SCREEN_WIDTH-77*2)/3; CGFloat margin = (SCREEN_WIDTH-77*2)/3;
@@ -252,12 +264,46 @@
// //
[[QXAgoraEngine sharedEngine] startScreenCapture]; [[QXAgoraEngine sharedEngine] startScreenCapture];
} }
-(void)startTimer{
MJWeakSelf
NSTimeInterval timeInterval = [[NSDate date] timeIntervalSince1970];
//
long long milliseconds = (long long)(timeInterval);
self.startTime = self.roomModel.cp_user.time_day.longLongValue - milliseconds;
if (self.startTime <= 0) {
//
self.timeDownLabel.text = @"倒计时00:00:00";
return;
}
[self stopTimer];
_timer = [QXTimer scheduledTimerWithTimeInterval:1 repeats:YES queue:dispatch_get_main_queue() block:^{
dispatch_async(dispatch_get_main_queue(), ^{
weakSelf.startTime--;
NSInteger hour = self.startTime/60/60;
NSInteger min = (self.startTime % 3600) / 60;
NSInteger second = self.startTime % 60;
weakSelf.timeDownLabel.text = [NSString stringWithFormat:@"倒计时:%02ld:%02ld:%02ld",hour,min,(long)second];
if (weakSelf.startTime<=0) {
[weakSelf stopTimer];
weakSelf.timeDownLabel.text = @"00:00:00";
}
});
}];
}
-(void)stopTimer{
if (_timer) {
[self->_timer invalidate];
self->_timer= nil;
}
}
-(void)cabinRoomHotValueDidChanged:(NSString *)hot_value{ -(void)cabinRoomHotValueDidChanged:(NSString *)hot_value{
self.roomModel.room_info.hot_value = hot_value; self.roomModel.room_info.hot_value = hot_value;
self.numberLabel.text = self.roomModel.room_info.hot_value; self.numberLabel.text = self.roomModel.room_info.hot_value;
} }
-(void)friendCabinRoomTimeDelayWithTime:(NSString*)end_time{
self.roomModel.cp_user.time_day = end_time;
[self startTimer];
}
-(void)closeAction{ -(void)closeAction{
MJWeakSelf MJWeakSelf
UIAlertController *al = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:(UIAlertControllerStyleActionSheet)]; UIAlertController *al = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:(UIAlertControllerStyleActionSheet)];
@@ -283,4 +329,15 @@
// self.navigationController.interactivePopGestureRecognizer.enabled = YES; // self.navigationController.interactivePopGestureRecognizer.enabled = YES;
[self.navigationController popViewControllerAnimated:YES]; [self.navigationController popViewControllerAnimated:YES];
} }
-(void)destroyViews{
if (_leftSeatView) {
[_leftSeatView destroyViews];
_leftSeatView = nil;
}
if (_rightSeatView) {
[_rightSeatView destroyViews];
_rightSeatView = nil;
}
[self stopTimer];
}
@end @end

View File

@@ -0,0 +1,65 @@
//
// QXRoomSeatTypeFrientView.h
// QXLive
//
// Created by 启星 on 2025/8/18.
//
#import <UIKit/UIKit.h>
#import "QXUserModel.h"
#import "QXRoomModel.h"
#import "QXRoomSeatDelegate.h"
#import "QXRoomSeatContentView.h"
typedef NS_ENUM(NSInteger) {
/// 等待
QXSeatTypeFrientPartTypeWait = 1,
/// 心动
QXSeatTypeFrientPartTypeHeart = 2,
/// 牵手
QXSeatTypeFrientPartTypeHand = 3,
}QXSeatTypeFrientPartType;
@interface QXRoomSeatTypeFrientView : UIView
/// 房间数据
@property (nonatomic,strong)QXRoomModel *roomModel;
/// 我自己的麦位
@property (nonatomic,assign)NSInteger myPitNumber;
@property (nonatomic,weak)id<QXRoomSeatDelegate>delegate;
/// 上下麦
-(void)didUpDownSeatWithUser:(QXUserHomeModel *)user isUpSeat:(BOOL)isUpSeat pit_number:(NSInteger)pit_number;
/// 交友房阶段发生变化 step 阶段 1等待 2心动 3牵手 friend_id 场次id
-(void)friendPartDidChangedWithType:(NSString*)step friend_id:(NSString*)friend_id end_time:(NSString*)end_time relationModel:(QXRoomFriendRelationModel*)relationModel;
/// 交友房时间发生延时 end_time 截止时间
-(void)friendTimeDelayWithTime:(NSString*)end_time;
/// 交友房麦位发生变化
-(void)friendSeatDidChanged:(NSArray<QXRoomPitModel*>*)pitArray;
/// 交友心动发生变化 [1000,100,50] 三组数据
-(void)friendHeartNumberDidChanged:(NSArray<QXRoomFriendHeartListModel *> *)heartArray;
/// 关系创建完成
-(void)friendRelationIsCreatedWithrelationModel:(QXRoomFriendRelationModel*)relationModel;
/// 清除魅力
-(void)clearCharm;
/// 设置魅力
-(void)setSeatCharmWithUser:(QXUserHomeModel*)model;
/// 用户信息发生改变
-(void)roomUserInfoDidChanged:(QXUserHomeModel *)user;
/// 销毁视图
-(void)destroyViews;
@end
@interface QXFrientSeatView : UIView
@property (nonatomic,strong)QXRoomSeatContentView *contentView;
@property (nonatomic,strong)UIButton *powerBtn;
@property (nonatomic,assign)BOOL isLeft;
@property (nonatomic,weak)id<QXRoomSeatDelegate>delegate;
@property (nonatomic,strong)QXRoomFriendHeartListModel *heartModel;
@end

File diff suppressed because it is too large Load Diff

View File

@@ -9,6 +9,7 @@
#import "QXRoomSeatTypeNormalView.h" #import "QXRoomSeatTypeNormalView.h"
#import "QXRoomModel.h" #import "QXRoomModel.h"
#import "QXRoomSeatDelegate.h" #import "QXRoomSeatDelegate.h"
#import "QXRoomFriendRelationModel.h"
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger) { typedef NS_ENUM(NSInteger) {
@@ -23,6 +24,8 @@ typedef NS_ENUM(NSInteger) {
QXRoomSeatViewTypeCabin, QXRoomSeatViewTypeCabin,
/// pk /// pk
QXRoomSeatViewTypePK, QXRoomSeatViewTypePK,
/// 交友房
QXRoomSeatViewTypeFriend,
}QXRoomSeatViewType; }QXRoomSeatViewType;
@@ -55,6 +58,8 @@ typedef NS_ENUM(NSInteger) {
/// 房间内用户信息发生变化 /// 房间内用户信息发生变化
-(void)roomUserInfoDidChanged:(QXUserHomeModel *)user; -(void)roomUserInfoDidChanged:(QXUserHomeModel *)user;
/// 拍卖位上下麦 /// 拍卖位上下麦
-(void)didAuctiontUpDownSeatWithUser:(QXUserHomeModel *)user isUpSeat:(BOOL)isUpSeat; -(void)didAuctiontUpDownSeatWithUser:(QXUserHomeModel *)user isUpSeat:(BOOL)isUpSeat;
/// 开始拍卖 /// 开始拍卖
@@ -65,6 +70,9 @@ typedef NS_ENUM(NSInteger) {
-(void)auctionDelayTimeWithEndTime:(NSString *)endTime; -(void)auctionDelayTimeWithEndTime:(NSString *)endTime;
/// 拍卖类型发生变化 /// 拍卖类型发生变化
-(void)auctionTypeDidChanged:(NSString *)type; -(void)auctionTypeDidChanged:(NSString *)type;
/// 私密小屋心动值发生变化 /// 私密小屋心动值发生变化
-(void)cabinRoomHotValueDidChanged:(NSString*)hot_value; -(void)cabinRoomHotValueDidChanged:(NSString*)hot_value;
@@ -82,6 +90,23 @@ typedef NS_ENUM(NSInteger) {
victory_cover:(NSString*)victory_cover victory_cover:(NSString*)victory_cover
defeated_name:(NSString*)defeated_name defeated_name:(NSString*)defeated_name
defeated_cover:(NSString*)defeated_cover; defeated_cover:(NSString*)defeated_cover;
/// 交友房阶段发生变化 step 阶段 1等待 2心动 3牵手 friend_id 场次id
-(void)friendPartDidChangedWithType:(NSString*)step friend_id:(NSString*)friend_id end_time:(NSString*)end_time relationModel:(QXRoomFriendRelationModel*)relationModel;
/// 交友房时间发生延时 end_time 截止时间
-(void)friendTimeDelayWithTime:(NSString*)end_time;
/// 交友房麦位发生变化
-(void)friendSeatDidChanged:(NSArray<QXRoomPitModel*>*)pitArray;
/// 心动值发生变化
-(void)friendHeartNumberDidChanged:(NSArray<QXRoomFriendHeartListModel *> *)heartArray;
/// 关系创建完成
-(void)friendRelationIsCreatedWithrelationModel:(QXRoomFriendRelationModel*)relationModel;
/// 有人退出交友房私密小屋
-(void)friendCabinRoomIsQuit;
/// 私密小屋时间发生延时
-(void)friendCabinRoomTimeDelayWithTime:(NSString*)end_time;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -12,6 +12,7 @@
#import "QXRoomOnlineUserListView.h" #import "QXRoomOnlineUserListView.h"
#import "QXRoomSeatTypeCabinView.h" #import "QXRoomSeatTypeCabinView.h"
#import "QXRoomSeatPKView.h" #import "QXRoomSeatPKView.h"
#import "QXRoomSeatTypeFrientView.h"
@interface QXRoomSeatView()<QXRoomSeatDelegate> @interface QXRoomSeatView()<QXRoomSeatDelegate>
@property (nonatomic,strong)QXRoomSeatTypeNormalView *normalSeatView; @property (nonatomic,strong)QXRoomSeatTypeNormalView *normalSeatView;
@@ -24,6 +25,8 @@
@property (nonatomic,strong)QXRoomSeatTypeCabinView *cabinView; @property (nonatomic,strong)QXRoomSeatTypeCabinView *cabinView;
@property (nonatomic,strong)QXRoomSeatPKView *roomPkView; @property (nonatomic,strong)QXRoomSeatPKView *roomPkView;
@property (nonatomic,strong)QXRoomSeatTypeFrientView *roomFriendView;
@end @end
@@ -151,6 +154,39 @@
}]; }];
return; return;
} }
if (_roomFriendView) {
_roomFriendView.transform = CGAffineTransformIdentity;
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_roomFriendView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_roomFriendView destroyViews];
[self->_roomFriendView removeFromSuperview];
self->_roomFriendView = nil;
[self addSubview:self.normalSeatView];
[self.normalSeatView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.normalSeatView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.normalSeatView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
[self addSubview:self.normalSeatView]; [self addSubview:self.normalSeatView];
[self.normalSeatView mas_makeConstraints:^(MASConstraintMaker *make) { [self.normalSeatView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self); make.left.right.top.bottom.equalTo(self);
@@ -263,6 +299,39 @@
}]; }];
return; return;
} }
if (_roomFriendView) {
_roomFriendView.transform = CGAffineTransformIdentity;
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_roomFriendView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_roomFriendView destroyViews];
[self->_roomFriendView removeFromSuperview];
self->_roomFriendView = nil;
[self addSubview:self.auctionView];
[self.auctionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.auctionView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.auctionView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
[self addSubview:self.auctionView]; [self addSubview:self.auctionView];
[self.auctionView mas_makeConstraints:^(MASConstraintMaker *make) { [self.auctionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self); make.left.right.top.bottom.equalTo(self);
@@ -372,7 +441,39 @@
}]; }];
return; return;
} }
if (_roomFriendView) {
_roomFriendView.transform = CGAffineTransformIdentity;
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_roomFriendView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_roomFriendView destroyViews];
[self->_roomFriendView removeFromSuperview];
self->_roomFriendView = nil;
[self addSubview:self.songView];
[self.songView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.songView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.songView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
[self addSubview:self.songView]; [self addSubview:self.songView];
[self.songView mas_makeConstraints:^(MASConstraintMaker *make) { [self.songView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self); make.left.right.top.bottom.equalTo(self);
@@ -456,6 +557,113 @@
make.left.right.top.bottom.equalTo(self); make.left.right.top.bottom.equalTo(self);
}]; }];
} }
-(void)initRoomFriendView{
if (_normalSeatView) {
// [_normalSeatView removeFromSuperview];
// _normalSeatView = nil;
_normalSeatView.transform = CGAffineTransformIdentity;
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_normalSeatView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_normalSeatView destroyViews];
[self->_normalSeatView removeFromSuperview];
self->_normalSeatView = nil;
[self addSubview:self.roomFriendView];
[self.roomFriendView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.roomFriendView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.roomFriendView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
if (_auctionView) {
_auctionView.transform = CGAffineTransformIdentity;
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_auctionView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_auctionView destroyViews];
[self->_auctionView removeFromSuperview];
self->_auctionView = nil;
[self addSubview:self.roomFriendView];
[self.roomFriendView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.roomFriendView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.roomFriendView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
if (_songView) {
_songView.transform = CGAffineTransformIdentity;
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_songView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_songView destroyViews];
[self->_songView removeFromSuperview];
self->_songView = nil;
[self addSubview:self.roomFriendView];
[self.roomFriendView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.roomFriendView.transform = CGAffineTransformMakeScale(0.01, 0.01);
//
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.roomFriendView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
[self addSubview:self.roomFriendView];
[self.roomFriendView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
}
- (void)initCabinView{ - (void)initCabinView{
self.cabinView = [[QXRoomSeatTypeCabinView alloc] init]; self.cabinView = [[QXRoomSeatTypeCabinView alloc] init];
@@ -483,11 +691,15 @@
case QXRoomSeatViewTypePK: case QXRoomSeatViewTypePK:
self.roomPkView.myPitNumber = myPitNumber; self.roomPkView.myPitNumber = myPitNumber;
break; break;
case QXRoomSeatViewTypeFriend:
self.roomFriendView.myPitNumber = myPitNumber;
break;
default: default:
break; break;
} }
} }
-(void)setType:(QXRoomSeatViewType)type{ -(void)setType:(QXRoomSeatViewType)type{
_type = type; _type = type;
switch (type) { switch (type) {
@@ -517,6 +729,10 @@
[self initRoomPKView]; [self initRoomPKView];
} }
break; break;
case QXRoomSeatViewTypeFriend:{
[self initRoomFriendView];
}
break;
default: default:
break; break;
} }
@@ -574,6 +790,9 @@
case QXRoomSeatViewTypePK: case QXRoomSeatViewTypePK:
self.roomPkView.roomModel = roomModel; self.roomPkView.roomModel = roomModel;
break; break;
case QXRoomSeatViewTypeFriend:
self.roomFriendView.roomModel = roomModel;
break;
default: default:
break; break;
} }
@@ -637,6 +856,9 @@
case QXRoomSeatViewTypePK: case QXRoomSeatViewTypePK:
[self.roomPkView clearCharm]; [self.roomPkView clearCharm];
break; break;
case QXRoomSeatViewTypeFriend:
[self.roomFriendView clearCharm];
break;
default: default:
break; break;
} }
@@ -658,6 +880,9 @@
case QXRoomSeatViewTypePK: case QXRoomSeatViewTypePK:
[self.roomPkView setSeatCharmWithUser:model]; [self.roomPkView setSeatCharmWithUser:model];
break; break;
case QXRoomSeatViewTypeFriend:
[self.roomFriendView setSeatCharmWithUser:model];
break;
default: default:
break; break;
} }
@@ -707,6 +932,83 @@
} }
} }
#pragma mark -
/// step 1 2 3 friend_id id
-(void)friendPartDidChangedWithType:(NSString*)step friend_id:(NSString*)friend_id end_time:(NSString*)end_time relationModel:(QXRoomFriendRelationModel*)relationModel{
switch (self.type) {
case QXRoomSeatViewTypeFriend:{
[self.roomFriendView friendPartDidChangedWithType:step friend_id:friend_id end_time:end_time relationModel:relationModel];
}
break;
default:
break;
}
}
/// end_time
-(void)friendTimeDelayWithTime:(NSString*)end_time{
switch (self.type) {
case QXRoomSeatViewTypeFriend:{
[self.roomFriendView friendTimeDelayWithTime:end_time];
}
break;
default:
break;
}
}
-(void)friendSeatDidChanged:(NSArray<QXRoomPitModel *> *)pitArray{
switch (self.type) {
case QXRoomSeatViewTypeFriend:{
[self.roomFriendView friendSeatDidChanged:pitArray];
}
break;
default:
break;
}
}
-(void)friendHeartNumberDidChanged:(NSArray<QXRoomFriendHeartListModel *> *)heartArray{
switch (self.type) {
case QXRoomSeatViewTypeFriend:{
[self.roomFriendView friendHeartNumberDidChanged:heartArray];
}
break;
default:
break;
}
}
///
-(void)friendRelationIsCreatedWithrelationModel:(QXRoomFriendRelationModel*)relationModel{
switch (self.type) {
case QXRoomSeatViewTypeFriend:{
[self.roomFriendView friendRelationIsCreatedWithrelationModel:relationModel];
}
break;
default:
break;
}
}
/// 退
-(void)friendCabinRoomIsQuit{
}
///
-(void)friendCabinRoomTimeDelayWithTime:(NSString*)end_time{
switch (self.type) {
case QXRoomSeatViewTypeCabin:{
[self.cabinView friendCabinRoomTimeDelayWithTime:end_time];
}
break;
default:
break;
}
}
///
-(void)friendPowerSendGiftWithUser:(QXRoomPitModel *)user heartId:(NSString *)heartId{
if ([self.delegate respondsToSelector:@selector(friendPowerSendGiftWithUser:heartId:)]) {
[self.delegate friendPowerSendGiftWithUser:user heartId:heartId];
}
}
-(QXRoomSeatTypeNormalView *)normalSeatView{ -(QXRoomSeatTypeNormalView *)normalSeatView{
if (!_normalSeatView) { if (!_normalSeatView) {
_normalSeatView = [[QXRoomSeatTypeNormalView alloc] init]; _normalSeatView = [[QXRoomSeatTypeNormalView alloc] init];
@@ -756,6 +1058,9 @@
case QXRoomSeatViewTypePK: case QXRoomSeatViewTypePK:
[self.roomPkView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number]; [self.roomPkView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number];
break; break;
case QXRoomSeatViewTypeFriend:
[self.roomFriendView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number];
break;
default: default:
break; break;
} }
@@ -829,6 +1134,9 @@
case QXRoomSeatViewTypePK: case QXRoomSeatViewTypePK:
[self.roomPkView roomUserInfoDidChanged:user]; [self.roomPkView roomUserInfoDidChanged:user];
break; break;
case QXRoomSeatViewTypeFriend:
[self.roomFriendView roomUserInfoDidChanged:user];
break;
default: default:
break; break;
} }
@@ -837,15 +1145,26 @@
-(void)destroyViews{ -(void)destroyViews{
if (_normalSeatView) { if (_normalSeatView) {
[self.normalSeatView destroyViews]; [self.normalSeatView destroyViews];
_normalSeatView = nil;
} }
if (_songView) { if (_songView) {
[self.songView destroyViews]; [self.songView destroyViews];
_songView = nil;
} }
if (_auctionView) { if (_auctionView) {
[self.auctionView destroyViews]; [self.auctionView destroyViews];
} }
if (_roomPkView) { if (_roomPkView) {
[self.roomPkView destroyViews]; [self.roomPkView destroyViews];
_roomPkView = nil;
}
if (_roomFriendView) {
[self.roomFriendView destroyViews];
_roomFriendView = nil;
}
if (_cabinView) {
[self.cabinView destroyViews];
_cabinView = nil;
} }
} }
@@ -871,4 +1190,11 @@
} }
return _roomPkView; return _roomPkView;
} }
-(QXRoomSeatTypeFrientView *)roomFriendView{
if (!_roomFriendView) {
_roomFriendView = [[QXRoomSeatTypeFrientView alloc] init];
_roomFriendView.delegate = self;
}
return _roomFriendView;
}
@end @end

View File

@@ -6,7 +6,12 @@
// //
#import "QXRankTopThreeView.h" #import "QXRankTopThreeView.h"
#import "QXUserHomePageViewController.h"
@interface QXRankTopThreeView()
@property (nonatomic,strong)QXMyRankModel *firstModel;
@property (nonatomic,strong)QXMyRankModel *secondModel;
@property (nonatomic,strong)QXMyRankModel *thirdModel;
@end
@implementation QXRankTopThreeView @implementation QXRankTopThreeView
- (instancetype)initWithFrame:(CGRect)frame - (instancetype)initWithFrame:(CGRect)frame
@@ -14,6 +19,31 @@
self = [super initWithFrame:frame]; self = [super initWithFrame:frame];
if (self) { if (self) {
self = [[[NSBundle mainBundle]loadNibNamed:@"QXRankTopThreeView" owner:nil options:nil] lastObject]; self = [[[NSBundle mainBundle]loadNibNamed:@"QXRankTopThreeView" owner:nil options:nil] lastObject];
MJWeakSelf
[self.firstHeaderImage addTapBlock:^(id _Nonnull obj) {
if ([self.firstModel.user_id isExist]) {
QXUserHomePageViewController *vc = [[QXUserHomePageViewController alloc] init];
vc.user_id = self.firstModel.user_id;
[weakSelf.navigationController pushViewController:vc animated:YES];
}
return;
}];
[self.secondHeaderImage addTapBlock:^(id _Nonnull obj) {
if ([self.secondModel.user_id isExist]) {
QXUserHomePageViewController *vc = [[QXUserHomePageViewController alloc] init];
vc.user_id = self.secondModel.user_id;
[weakSelf.navigationController pushViewController:vc animated:YES];
}
return;
}];
[self.thirdHeaderImage addTapBlock:^(id _Nonnull obj) {
if ([self.thirdModel.user_id isExist]) {
QXUserHomePageViewController *vc = [[QXUserHomePageViewController alloc] init];
vc.user_id = self.thirdModel.user_id;
[weakSelf.navigationController pushViewController:vc animated:YES];
}
return;
}];
self.frame = frame; self.frame = frame;
} }
return self; return self;
@@ -59,6 +89,9 @@
self.thirdRankValueLabel.text = [NSString qx_showHotCountNum:thirdModel.total.longLongValue]; self.thirdRankValueLabel.text = [NSString qx_showHotCountNum:thirdModel.total.longLongValue];
self.thirdRankValueLabel.adjustsFontSizeToFitWidth = YES; self.thirdRankValueLabel.adjustsFontSizeToFitWidth = YES;
} }
self.firstModel = firstModel;
self.secondModel = secondModel;
self.thirdModel = thirdModel;
} }
-(void)resetView{ -(void)resetView{
self.firstHeaderImage.image = [UIImage imageNamed:@"user_header_placehoulder"]; self.firstHeaderImage.image = [UIImage imageNamed:@"user_header_placehoulder"];
@@ -113,6 +146,9 @@
self.thirdRankValueLabel.text = [NSString qx_showHotCountNum:thirdModel.total.longLongValue]; self.thirdRankValueLabel.text = [NSString qx_showHotCountNum:thirdModel.total.longLongValue];
self.thirdRankValueLabel.adjustsFontSizeToFitWidth = YES; self.thirdRankValueLabel.adjustsFontSizeToFitWidth = YES;
} }
self.firstModel = firstModel;
self.secondModel = secondModel;
self.thirdModel = thirdModel;
} }
-(void)setGuildList:(NSArray<QXMyRankModel *> *)guildList{ -(void)setGuildList:(NSArray<QXMyRankModel *> *)guildList{
_guildList = guildList; _guildList = guildList;

View File

@@ -75,7 +75,7 @@
[self.backBtn addTarget:self action:@selector(backAction) forControlEvents:(UIControlEventTouchUpInside)]; [self.backBtn addTarget:self action:@selector(backAction) forControlEvents:(UIControlEventTouchUpInside)];
[self.view addSubview:self.backBtn]; [self.view addSubview:self.backBtn];
// self.isCodeLogin = YES; self.isCodeLogin = YES;
// self.welcomeLabel = [[UILabel alloc] initWithFrame:CGRectMake(16, kSafeAreaTop+86, SCREEN_WIDTH-32, 36)]; // self.welcomeLabel = [[UILabel alloc] initWithFrame:CGRectMake(16, kSafeAreaTop+86, SCREEN_WIDTH-32, 36)];
// self.welcomeLabel.font = [UIFont boldSystemFontOfSize:24]; // self.welcomeLabel.font = [UIFont boldSystemFontOfSize:24];
//// self.welcomeLabel.text = QXText(@"欢迎来到秘地"); //// self.welcomeLabel.text = QXText(@"欢迎来到秘地");

View File

@@ -10,7 +10,7 @@
#import "QXSongListModel.h" #import "QXSongListModel.h"
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@class QXRoomInfoModel,QXRoomPitModel,QXRoomOwnerModel,QXHeadLineModel,QXRoomAuction,QXRoomAuctionUser,QXRoomCpUser,QXRoomPkInfo; @class QXRoomInfoModel,QXRoomPitModel,QXRoomOwnerModel,QXHeadLineModel,QXRoomAuction,QXRoomAuctionUser,QXRoomCpUser,QXRoomPkInfo,QXRoomFriendInfo,QXRoomFriendHeartListModel;
@interface QXRoomModel : NSObject @interface QXRoomModel : NSObject
/// 房间信息 /// 房间信息
@property (nonatomic,strong)QXRoomInfoModel *room_info; @property (nonatomic,strong)QXRoomInfoModel *room_info;
@@ -28,6 +28,8 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,strong)QXRoomCpUser *cp_user; @property (nonatomic,strong)QXRoomCpUser *cp_user;
/// pk信息 /// pk信息
@property (nonatomic,strong)QXRoomPkInfo *pk_info; @property (nonatomic,strong)QXRoomPkInfo *pk_info;
/// 交友房信息
@property (nonatomic,strong)QXRoomFriendInfo *friend_info;
/// k歌麦位 /// k歌麦位
@property (nonatomic,strong)NSArray< QXRoomPitModel*> *song_pit_list; @property (nonatomic,strong)NSArray< QXRoomPitModel*> *song_pit_list;
@end @end
@@ -49,7 +51,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,strong)NSString *room_cover; @property (nonatomic,strong)NSString *room_cover;
/// 房间公告 /// 房间公告
@property (nonatomic,strong)NSString *room_intro; @property (nonatomic,strong)NSString *room_intro;
/// 房间类型 type_id 1 点唱 2 拍卖 3男神 4女神 6小黑屋 /// 房间类型 type_id 1 点唱 2 拍卖 3男神 4女神 6小黑屋 7 交友房
@property (nonatomic,strong)NSString *type_id; @property (nonatomic,strong)NSString *type_id;
/// 房间子类型 label_id 1聊天 2 k歌 拍卖时 1真爱 2亲密 /// 房间子类型 label_id 1聊天 2 k歌 拍卖时 1真爱 2亲密
@property (nonatomic,strong)NSString *label_id; @property (nonatomic,strong)NSString *label_id;
@@ -321,4 +323,23 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,strong)NSString *is_pk; @property (nonatomic,strong)NSString *is_pk;
@end @end
@interface QXRoomFriendInfo : NSObject
/// 当前在哪个阶段 1 等待邂逅 2心动连线 3 牵手良缘
@property (nonatomic,strong)NSString *step;
/// 心动值
@property (nonatomic,strong)NSArray <QXRoomFriendHeartListModel*>*heart_list;
/// 场次id
@property (nonatomic,strong)NSString *friend_id;
/// 心动连线剩余时间
@property (nonatomic,assign)long end_time;
/// 在线cp数
@property (nonatomic,strong)NSString *room_on_line_cp;
@end
@interface QXRoomFriendHeartListModel : NSObject
/// 心动值
@property (nonatomic,strong)NSString *heartNum;
@property (nonatomic,strong)NSString *heartId;
@end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -18,7 +18,8 @@
@"room_auction":@"QXRoomAuction", @"room_auction":@"QXRoomAuction",
@"cp_user": @"QXRoomCpUser", @"cp_user": @"QXRoomCpUser",
@"pk_info" : @"QXRoomPkInfo", @"pk_info" : @"QXRoomPkInfo",
@"song_pit_list":@"QXRoomPitModel" @"song_pit_list":@"QXRoomPitModel",
@"friend_info":@"QXRoomFriendInfo",
}; };
} }
@@ -114,3 +115,18 @@
@end @end
@implementation QXRoomFriendInfo
+(NSDictionary<NSString *,id> *)modelContainerPropertyGenericClass{
return @{
@"heart_list" : @"QXRoomFriendHeartListModel"
};
}
@end
@implementation QXRoomFriendHeartListModel
@end

View File

@@ -327,6 +327,7 @@ NS_ASSUME_NONNULL_BEGIN
gift_id:(NSString*)gift_id gift_id:(NSString*)gift_id
gift_num:(NSString*)gift_num gift_num:(NSString*)gift_num
to_uid:(NSString*)to_uid to_uid:(NSString*)to_uid
heart_id:(NSString*)heart_id
type:(NSString*)type type:(NSString*)type
pit_number:(NSString*)pit_number pit_number:(NSString*)pit_number
successBlock:(void (^)(NSDictionary* dict))successBlock successBlock:(void (^)(NSDictionary* dict))successBlock
@@ -969,6 +970,49 @@ NS_ASSUME_NONNULL_BEGIN
successBlock:(void (^)(NSDictionary* dict))successBlock successBlock:(void (^)(NSDictionary* dict))successBlock
failBlock:(void (^)(NSError * error, NSString * msg))failBlock; failBlock:(void (^)(NSError * error, NSString * msg))failBlock;
#pragma mark - 交友房
/**
交友房开始
*/
+(void)friendRoomStartWithRoomId:(NSString*)room_id
successBlock:(void (^)(NSDictionary* dict))successBlock
failBlock:(void (^)(NSError * error, NSString * msg))failBlock;
/**
交友房结束
*/
+(void)friendRoomEndWithRoomId:(NSString*)room_id
friendId:(NSString*)friend_id
successBlock:(void (^)(NSDictionary* dict))successBlock
failBlock:(void (^)(NSError * error, NSString * msg))failBlock;
/**
交友房延时
*/
+(void)friendRoomDelayWithRoomId:(NSString*)room_id
friendId:(NSString*)friend_id
successBlock:(void (^)(NSDictionary* dict))successBlock
failBlock:(void (^)(NSError * error, NSString * msg))failBlock;
/**
交友房创建关系
*/
+(void)friendRoomCreateRelationWithRoomId:(NSString*)room_id
friendId:(NSString*)friend_id
user1Id:(NSString*)user1_id
user2Id:(NSString*)user2_id
relationId:(NSString*)relation_id
successBlock:(void (^)(NSDictionary* dict))successBlock
failBlock:(void (^)(NSError * error, NSString * msg))failBlock;
/**
退出私密小屋
*/
+(void)friendRoomQuitWithRoomid:(NSString*)room_id
successBlock:(void (^)(NSDictionary* dict))successBlock
failBlock:(void (^)(NSError * error, NSString * msg))failBlock;
@end @end

View File

@@ -661,17 +661,19 @@
gift_id:(NSString*)gift_id gift_id:(NSString*)gift_id
gift_num:(NSString*)gift_num gift_num:(NSString*)gift_num
to_uid:(NSString*)to_uid to_uid:(NSString*)to_uid
heart_id:(NSString*)heart_id
type:(NSString*)type type:(NSString*)type
pit_number:(NSString*)pit_number pit_number:(NSString*)pit_number
successBlock:(void (^)(NSDictionary* dict))successBlock successBlock:(void (^)(NSDictionary* dict))successBlock
failBlock:(void (^)(NSError * error, NSString * msg))failBlock{ failBlock:(void (^)(NSError * error, NSString * msg))failBlock{
NSDictionary *parameters =@{ NSDictionary *parameters =@{
@"room_id":room_id, @"room_id":room_id?room_id:@"",
@"gift_id":gift_id, @"gift_id":gift_id?gift_id:@"",
@"gift_num":gift_num, @"gift_num":gift_num?gift_num:@"",
@"to_uid":to_uid, @"to_uid":to_uid?to_uid:@"",
@"type":type, @"type":type?type:@"",
@"pit_number":pit_number, @"pit_number":pit_number?pit_number:@"",
@"heart_id":heart_id?heart_id:@""
}; };
[[QXRequset shareInstance] postWithUrl:QXSendGift parameters:parameters needCache:NO success:^(id responseObject) { [[QXRequset shareInstance] postWithUrl:QXSendGift parameters:parameters needCache:NO success:^(id responseObject) {
if (successBlock) { if (successBlock) {
@@ -1889,4 +1891,110 @@
failBlock(error,msg); failBlock(error,msg);
}]; }];
} }
#pragma mark -
/**
*/
+(void)friendRoomStartWithRoomId:(NSString*)room_id
successBlock:(void (^)(NSDictionary* dict))successBlock
failBlock:(void (^)(NSError * error, NSString * msg))failBlock{
NSDictionary *parameters =@{
@"room_id":room_id?room_id:@"",
};
[[QXRequset shareInstance] postWithUrl:QXRoomFriendStart parameters:parameters needCache:NO success:^(id responseObject) {
if (successBlock) {
successBlock(responseObject[@"data"]);
}
} fail:^(NSError *error, NSString *msg, NSURLSessionDataTask *task) {
failBlock(error,msg);
}];
}
/**
*/
+(void)friendRoomEndWithRoomId:(NSString*)room_id
friendId:(NSString*)friend_id
successBlock:(void (^)(NSDictionary* dict))successBlock
failBlock:(void (^)(NSError * error, NSString * msg))failBlock{
NSDictionary *parameters =@{
@"room_id":room_id?room_id:@"",
@"friend_id":friend_id?friend_id:@""
};
[[QXRequset shareInstance] postWithUrl:QXRoomFriendEnd parameters:parameters needCache:NO success:^(id responseObject) {
if (successBlock) {
successBlock(responseObject[@"data"]);
}
} fail:^(NSError *error, NSString *msg, NSURLSessionDataTask *task) {
failBlock(error,msg);
}];
}
/**
*/
+(void)friendRoomDelayWithRoomId:(NSString*)room_id
friendId:(NSString*)friend_id
successBlock:(void (^)(NSDictionary* dict))successBlock
failBlock:(void (^)(NSError * error, NSString * msg))failBlock{
NSDictionary *parameters =@{
@"room_id":room_id?room_id:@"",
@"friend_id":friend_id?friend_id:@""
};
[[QXRequset shareInstance] postWithUrl:QXRoomFriendDelay parameters:parameters needCache:NO success:^(id responseObject) {
if (successBlock) {
successBlock(responseObject[@"data"]);
}
} fail:^(NSError *error, NSString *msg, NSURLSessionDataTask *task) {
failBlock(error,msg);
}];
}
/**
*/
+(void)friendRoomCreateRelationWithRoomId:(NSString*)room_id
friendId:(NSString*)friend_id
user1Id:(NSString*)user1_id
user2Id:(NSString*)user2_id
relationId:(NSString*)relation_id
successBlock:(void (^)(NSDictionary* dict))successBlock
failBlock:(void (^)(NSError * error, NSString * msg))failBlock{
NSDictionary *parameters =@{
@"room_id":room_id?room_id:@"",
@"friend_id":friend_id?friend_id:@"",
@"user1_id":user1_id?user1_id:@"",
@"user2_id":user2_id?user2_id:@"",
@"relation_id":relation_id?relation_id:@"",
};
[[QXRequset shareInstance] postWithUrl:QXRoomFriendCreateRelation parameters:parameters needCache:NO success:^(id responseObject) {
if (successBlock) {
successBlock(responseObject[@"data"]);
}
} fail:^(NSError *error, NSString *msg, NSURLSessionDataTask *task) {
failBlock(error,msg);
}];
}
/**
退
*/
+(void)friendRoomQuitWithRoomid:(NSString*)room_id
successBlock:(void (^)(NSDictionary* dict))successBlock
failBlock:(void (^)(NSError * error, NSString * msg))failBlock{
NSDictionary *parameters =@{
@"room_id":room_id?room_id:@"",
};
[[QXRequset shareInstance] postWithUrl:QXRoomFriendRoomQuit parameters:parameters needCache:NO success:^(id responseObject) {
if (successBlock) {
successBlock(responseObject[@"data"]);
}
} fail:^(NSError *error, NSString *msg, NSURLSessionDataTask *task) {
failBlock(error,msg);
}];
}
@end @end

View File

@@ -206,7 +206,7 @@ static NSInteger HTTP_ERROR_CODE = 0;
if (fail)fail(NOT_NETWORK_ERROR,@"无网络",nil); if (fail)fail(NOT_NETWORK_ERROR,@"无网络",nil);
return nil; return nil;
} }
if (![urlString hasPrefix:@"http"] || ![urlString hasPrefix:@"https"]) { if (!([urlString hasPrefix:@"http"] || [urlString hasPrefix:@"https"])) {
urlString = [NSString stringWithFormat:@"%@%@",ServerUrl,urlString]; urlString = [NSString stringWithFormat:@"%@%@",ServerUrl,urlString];
} }
NSLog(@"发起请求 --- URL %@",urlString); NSLog(@"发起请求 --- URL %@",urlString);

View File

@@ -26,6 +26,11 @@
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// for (NSString *str in [UIFont familyNames]) {
//
// NSLog(@"UIFont_Name:%@",str);
//
// }
// Override point for customization after application launch. // Override point for customization after application launch.
[QXConfig defaultConfig]; [QXConfig defaultConfig];
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

View File

@@ -5,7 +5,7 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "cp_room_bg@2x.png", "filename" : "私密小屋背景@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },

Binary file not shown.

Before

Width:  |  Height:  |  Size: 777 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "room_auction_gift_love@2x.png", "filename" : "Frame 1321316211@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "room_auction_gift_love@3x.png", "filename" : "Frame 1321316211@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

View File

@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "room_auction_relationship_love@2x.png", "filename" : "Frame 1321316213@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "room_auction_relationship_love@3x.png", "filename" : "Frame 1321316213@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "room_auction_seat_bg@2x.png", "filename" : "Group 7527@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "room_auction_seat_bg@3x.png", "filename" : "Group 7527@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 685 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 KiB

View File

@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "room_auction_seat_love_bg@2x.png", "filename" : "Group 7523@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "room_auction_seat_love_bg@3x.png", "filename" : "Group 7523@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

View File

@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "room_auction_time_love@2x.png", "filename" : "Frame 1321316212@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "room_auction_time_love@3x.png", "filename" : "Frame 1321316212@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "Frame 1279@2x.png", "filename" : "倒计时背景@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "Frame 1279@3x.png", "filename" : "倒计时背景@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "room_friend_below_bg@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "room_friend_below_bg@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "room_friend_center_value_bg@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "room_friend_center_value_bg@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "room_friend_create_relation_bg@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "room_friend_create_relation_bg@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "room_friend_delay_btn_bg@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "room_friend_delay_btn_bg@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "room_friend_end_btn_bg@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "room_friend_end_btn_bg@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "爱心地盘1 (1).png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 943 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "room_friend_left_seat@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "room_friend_left_seat@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "room_friend_nor_heart@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "room_friend_nor_heart@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Some files were not shown because too many files have changed in this diff Show More