Commit 69c7c256d8475191cb24fe417e375024c5429b35
1 parent
37b548f9
Exists in
newLive
no message
Showing
52 changed files
with
2224 additions
and
10722 deletions
Show diff stats
YouerLiveVideo/YouerLiveVideo.xcodeproj/project.pbxproj
| @@ -14,12 +14,8 @@ | @@ -14,12 +14,8 @@ | ||
| 14 | 5904FC511ECA8B8C00E631FF /* TVStationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5904FC4B1ECA8B8C00E631FF /* TVStationViewController.swift */; }; | 14 | 5904FC511ECA8B8C00E631FF /* TVStationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5904FC4B1ECA8B8C00E631FF /* TVStationViewController.swift */; }; |
| 15 | 5904FC531ECA8BB500E631FF /* MicroCourse.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5904FC521ECA8BB500E631FF /* MicroCourse.storyboard */; }; | 15 | 5904FC531ECA8BB500E631FF /* MicroCourse.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5904FC521ECA8BB500E631FF /* MicroCourse.storyboard */; }; |
| 16 | 5904FC551ECA8BCB00E631FF /* HomePage.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5904FC541ECA8BCB00E631FF /* HomePage.storyboard */; }; | 16 | 5904FC551ECA8BCB00E631FF /* HomePage.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5904FC541ECA8BCB00E631FF /* HomePage.storyboard */; }; |
| 17 | - 5904FC591ECA8C0000E631FF /* UserViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5904FC581ECA8C0000E631FF /* UserViewController.swift */; }; | ||
| 18 | - 5904FC5B1ECA8C0900E631FF /* User.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5904FC5A1ECA8C0900E631FF /* User.storyboard */; }; | ||
| 19 | 5904FC5D1ECA8ED400E631FF /* HomePageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5904FC5C1ECA8ED400E631FF /* HomePageViewController.swift */; }; | 17 | 5904FC5D1ECA8ED400E631FF /* HomePageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5904FC5C1ECA8ED400E631FF /* HomePageViewController.swift */; }; |
| 20 | 5904FC611ECA930D00E631FF /* MViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5904FC601ECA930D00E631FF /* MViewController.swift */; }; | 18 | 5904FC611ECA930D00E631FF /* MViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5904FC601ECA930D00E631FF /* MViewController.swift */; }; |
| 21 | - 5906A0741E349FA500D2D814 /* PassWordView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5906A0731E349FA500D2D814 /* PassWordView.swift */; }; | ||
| 22 | - 5906A0761E349FB400D2D814 /* PassWordView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5906A0751E349FB400D2D814 /* PassWordView.xib */; }; | ||
| 23 | 5960263B1DD94D3100C6B5E8 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 5960263A1DD94D3100C6B5E8 /* libsqlite3.tbd */; }; | 19 | 5960263B1DD94D3100C6B5E8 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 5960263A1DD94D3100C6B5E8 /* libsqlite3.tbd */; }; |
| 24 | 5960263D1DD94D5E00C6B5E8 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 5960263C1DD94D5E00C6B5E8 /* libc++.tbd */; }; | 20 | 5960263D1DD94D5E00C6B5E8 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 5960263C1DD94D5E00C6B5E8 /* libc++.tbd */; }; |
| 25 | 5960263F1DD94D7D00C6B5E8 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5960263E1DD94D7D00C6B5E8 /* ImageIO.framework */; }; | 21 | 5960263F1DD94D7D00C6B5E8 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5960263E1DD94D7D00C6B5E8 /* ImageIO.framework */; }; |
| @@ -29,7 +25,6 @@ | @@ -29,7 +25,6 @@ | ||
| 29 | 596026501DDD469200C6B5E8 /* RiverRunCommentManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5960264C1DDD469200C6B5E8 /* RiverRunCommentManager.m */; }; | 25 | 596026501DDD469200C6B5E8 /* RiverRunCommentManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5960264C1DDD469200C6B5E8 /* RiverRunCommentManager.m */; }; |
| 30 | 596026511DDD469200C6B5E8 /* RiverRunCommentUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 5960264E1DDD469200C6B5E8 /* RiverRunCommentUtil.m */; }; | 26 | 596026511DDD469200C6B5E8 /* RiverRunCommentUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 5960264E1DDD469200C6B5E8 /* RiverRunCommentUtil.m */; }; |
| 31 | 597185B51ECA990C00D7F478 /* Resource.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 597185B41ECA990C00D7F478 /* Resource.storyboard */; }; | 27 | 597185B51ECA990C00D7F478 /* Resource.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 597185B41ECA990C00D7F478 /* Resource.storyboard */; }; |
| 32 | - 59893BDF1E2C53E1004E7F81 /* AlivcInforViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59893BDE1E2C53E1004E7F81 /* AlivcInforViewController.swift */; }; | ||
| 33 | 598A0E531E51941300273AB8 /* libNIMSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 598A0E4D1E51941300273AB8 /* libNIMSDK.a */; }; | 28 | 598A0E531E51941300273AB8 /* libNIMSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 598A0E4D1E51941300273AB8 /* libNIMSDK.a */; }; |
| 34 | 598A0E541E51941300273AB8 /* libaacplus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 598A0E4F1E51941300273AB8 /* libaacplus.a */; }; | 29 | 598A0E541E51941300273AB8 /* libaacplus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 598A0E4F1E51941300273AB8 /* libaacplus.a */; }; |
| 35 | 598A0E551E51941300273AB8 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 598A0E501E51941300273AB8 /* libcrypto.a */; }; | 30 | 598A0E551E51941300273AB8 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 598A0E501E51941300273AB8 /* libcrypto.a */; }; |
| @@ -52,10 +47,8 @@ | @@ -52,10 +47,8 @@ | ||
| 52 | 599B2CE11DE52F7E00B4F7FD /* UMShareMenuSelectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 599B2CCE1DE52F7E00B4F7FD /* UMShareMenuSelectionView.m */; }; | 47 | 599B2CE11DE52F7E00B4F7FD /* UMShareMenuSelectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 599B2CCE1DE52F7E00B4F7FD /* UMShareMenuSelectionView.m */; }; |
| 53 | 599B2CE21DE52F7E00B4F7FD /* UMSocialShareScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 599B2CD01DE52F7E00B4F7FD /* UMSocialShareScrollView.m */; }; | 48 | 599B2CE21DE52F7E00B4F7FD /* UMSocialShareScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 599B2CD01DE52F7E00B4F7FD /* UMSocialShareScrollView.m */; }; |
| 54 | 599B2CE31DE52F7E00B4F7FD /* UMSocialUIManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 599B2CD21DE52F7E00B4F7FD /* UMSocialUIManager.m */; }; | 49 | 599B2CE31DE52F7E00B4F7FD /* UMSocialUIManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 599B2CD21DE52F7E00B4F7FD /* UMSocialUIManager.m */; }; |
| 55 | - 59A8731C1DDD9E0600BAC7FC /* CustomScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59A8731B1DDD9E0500BAC7FC /* CustomScrollView.swift */; }; | ||
| 56 | 59BA13251E25CF2B00540DE0 /* AliyunPlayerSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59BA13241E25CF2B00540DE0 /* AliyunPlayerSDK.framework */; }; | 50 | 59BA13251E25CF2B00540DE0 /* AliyunPlayerSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59BA13241E25CF2B00540DE0 /* AliyunPlayerSDK.framework */; }; |
| 57 | 59BA13271E25CF4B00540DE0 /* AliyunPlayerSDK.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 59BA13241E25CF2B00540DE0 /* AliyunPlayerSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; | 51 | 59BA13271E25CF4B00540DE0 /* AliyunPlayerSDK.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 59BA13241E25CF2B00540DE0 /* AliyunPlayerSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; |
| 58 | - 59BA132D1E25D14F00540DE0 /* MoivePlayerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59BA132C1E25D14F00540DE0 /* MoivePlayerViewController.swift */; }; | ||
| 59 | 59BA13311E25D1C000540DE0 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 59BA13301E25D1C000540DE0 /* Reachability.m */; }; | 52 | 59BA13311E25D1C000540DE0 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 59BA13301E25D1C000540DE0 /* Reachability.m */; }; |
| 60 | 59BA13451E25D8DB00540DE0 /* movieBackward.png in Resources */ = {isa = PBXBuildFile; fileRef = 59BA13321E25D8DB00540DE0 /* movieBackward.png */; }; | 53 | 59BA13451E25D8DB00540DE0 /* movieBackward.png in Resources */ = {isa = PBXBuildFile; fileRef = 59BA13321E25D8DB00540DE0 /* movieBackward.png */; }; |
| 61 | 59BA13471E25D8DB00540DE0 /* movieBackwardSelected.png in Resources */ = {isa = PBXBuildFile; fileRef = 59BA13341E25D8DB00540DE0 /* movieBackwardSelected.png */; }; | 54 | 59BA13471E25D8DB00540DE0 /* movieBackwardSelected.png in Resources */ = {isa = PBXBuildFile; fileRef = 59BA13341E25D8DB00540DE0 /* movieBackwardSelected.png */; }; |
| @@ -67,7 +60,6 @@ | @@ -67,7 +60,6 @@ | ||
| 67 | 59BA13571E25D8DB00540DE0 /* video_num_front@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 59BA13441E25D8DB00540DE0 /* video_num_front@2x.png */; }; | 60 | 59BA13571E25D8DB00540DE0 /* video_num_front@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 59BA13441E25D8DB00540DE0 /* video_num_front@2x.png */; }; |
| 68 | 59C25B491ECAD643009FF276 /* MoreTVStationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59C25B481ECAD643009FF276 /* MoreTVStationViewController.swift */; }; | 61 | 59C25B491ECAD643009FF276 /* MoreTVStationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59C25B481ECAD643009FF276 /* MoreTVStationViewController.swift */; }; |
| 69 | 59C25B4B1ECAD84C009FF276 /* TVStationInforViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59C25B4A1ECAD84C009FF276 /* TVStationInforViewController.swift */; }; | 62 | 59C25B4B1ECAD84C009FF276 /* TVStationInforViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59C25B4A1ECAD84C009FF276 /* TVStationInforViewController.swift */; }; |
| 70 | - 59C25B4D1ECAFAFC009FF276 /* NavigationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59C25B4C1ECAFAFC009FF276 /* NavigationViewController.swift */; }; | ||
| 71 | 59DB1C781E792E5900EA2FC4 /* 开始直播.png in Resources */ = {isa = PBXBuildFile; fileRef = 59DB1C771E792E5900EA2FC4 /* 开始直播.png */; }; | 63 | 59DB1C781E792E5900EA2FC4 /* 开始直播.png in Resources */ = {isa = PBXBuildFile; fileRef = 59DB1C771E792E5900EA2FC4 /* 开始直播.png */; }; |
| 72 | 59DB1C7A1E793DA700EA2FC4 /* 标签.png in Resources */ = {isa = PBXBuildFile; fileRef = 59DB1C791E793DA700EA2FC4 /* 标签.png */; }; | 64 | 59DB1C7A1E793DA700EA2FC4 /* 标签.png in Resources */ = {isa = PBXBuildFile; fileRef = 59DB1C791E793DA700EA2FC4 /* 标签.png */; }; |
| 73 | 59DB1C7C1E793E0E00EA2FC4 /* 视窗.png in Resources */ = {isa = PBXBuildFile; fileRef = 59DB1C7B1E793E0E00EA2FC4 /* 视窗.png */; }; | 65 | 59DB1C7C1E793E0E00EA2FC4 /* 视窗.png in Resources */ = {isa = PBXBuildFile; fileRef = 59DB1C7B1E793E0E00EA2FC4 /* 视窗.png */; }; |
| @@ -84,11 +76,6 @@ | @@ -84,11 +76,6 @@ | ||
| 84 | 59F8016E1DD2E5F1000A78B0 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59F8016D1DD2E5F1000A78B0 /* SystemConfiguration.framework */; }; | 76 | 59F8016E1DD2E5F1000A78B0 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59F8016D1DD2E5F1000A78B0 /* SystemConfiguration.framework */; }; |
| 85 | 59F801701DD2E5FB000A78B0 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59F8016F1DD2E5FB000A78B0 /* CoreTelephony.framework */; }; | 77 | 59F801701DD2E5FB000A78B0 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59F8016F1DD2E5FB000A78B0 /* CoreTelephony.framework */; }; |
| 86 | 59F801851DD45EDC000A78B0 /* Photos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59F801841DD45EDC000A78B0 /* Photos.framework */; }; | 78 | 59F801851DD45EDC000A78B0 /* Photos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59F801841DD45EDC000A78B0 /* Photos.framework */; }; |
| 87 | - 59F801971DD567C7000A78B0 /* AlivcLiveViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 59F801941DD567C7000A78B0 /* AlivcLiveViewController.m */; }; | ||
| 88 | - 59F801981DD567C7000A78B0 /* AlivcLiveViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 59F801951DD567C7000A78B0 /* AlivcLiveViewController.xib */; }; | ||
| 89 | - 59F801991DD567C7000A78B0 /* LiveVideoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59F801961DD567C7000A78B0 /* LiveVideoViewController.swift */; }; | ||
| 90 | - 59F801A21DD567D8000A78B0 /* MyViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59F8019B1DD567D8000A78B0 /* MyViewController.swift */; }; | ||
| 91 | - 59F801A61DD567D8000A78B0 /* MainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59F8019F1DD567D8000A78B0 /* MainViewController.swift */; }; | ||
| 92 | 59F801AB1DD57253000A78B0 /* ZSDSetPasswordView.m in Sources */ = {isa = PBXBuildFile; fileRef = 59F801AA1DD57253000A78B0 /* ZSDSetPasswordView.m */; }; | 79 | 59F801AB1DD57253000A78B0 /* ZSDSetPasswordView.m in Sources */ = {isa = PBXBuildFile; fileRef = 59F801AA1DD57253000A78B0 /* ZSDSetPasswordView.m */; }; |
| 93 | BF25DFE21DDAA36A003EC0C1 /* AFError.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF25DFA01DDAA36A003EC0C1 /* AFError.swift */; }; | 80 | BF25DFE21DDAA36A003EC0C1 /* AFError.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF25DFA01DDAA36A003EC0C1 /* AFError.swift */; }; |
| 94 | BF25DFE31DDAA36A003EC0C1 /* Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF25DFA21DDAA36A003EC0C1 /* Alamofire.swift */; }; | 81 | BF25DFE31DDAA36A003EC0C1 /* Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF25DFA21DDAA36A003EC0C1 /* Alamofire.swift */; }; |
| @@ -149,8 +136,6 @@ | @@ -149,8 +136,6 @@ | ||
| 149 | BF6977971E2DEC98006FA934 /* loginBackGround.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977941E2DEC98006FA934 /* loginBackGround.png */; }; | 136 | BF6977971E2DEC98006FA934 /* loginBackGround.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977941E2DEC98006FA934 /* loginBackGround.png */; }; |
| 150 | BF6977981E2DEC98006FA934 /* userId.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977951E2DEC98006FA934 /* userId.png */; }; | 137 | BF6977981E2DEC98006FA934 /* userId.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977951E2DEC98006FA934 /* userId.png */; }; |
| 151 | BF6977991E2DEC98006FA934 /* userPassword.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977961E2DEC98006FA934 /* userPassword.png */; }; | 138 | BF6977991E2DEC98006FA934 /* userPassword.png in Resources */ = {isa = PBXBuildFile; fileRef = BF6977961E2DEC98006FA934 /* userPassword.png */; }; |
| 152 | - BF69779B1E2DEFCF006FA934 /* LiveListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF69779A1E2DEFCF006FA934 /* LiveListViewController.swift */; }; | ||
| 153 | - BF7B271E1E2F022E00BCF13D /* MyAttentionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF7B271D1E2F022E00BCF13D /* MyAttentionViewController.swift */; }; | ||
| 154 | BF7B75961E305A6D0011D5C7 /* MJRefreshAutoFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756A1E305A6D0011D5C7 /* MJRefreshAutoFooter.m */; }; | 139 | BF7B75961E305A6D0011D5C7 /* MJRefreshAutoFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756A1E305A6D0011D5C7 /* MJRefreshAutoFooter.m */; }; |
| 155 | BF7B75971E305A6D0011D5C7 /* MJRefreshBackFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756C1E305A6D0011D5C7 /* MJRefreshBackFooter.m */; }; | 140 | BF7B75971E305A6D0011D5C7 /* MJRefreshBackFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756C1E305A6D0011D5C7 /* MJRefreshBackFooter.m */; }; |
| 156 | BF7B75981E305A6D0011D5C7 /* MJRefreshComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756E1E305A6D0011D5C7 /* MJRefreshComponent.m */; }; | 141 | BF7B75981E305A6D0011D5C7 /* MJRefreshComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B756E1E305A6D0011D5C7 /* MJRefreshComponent.m */; }; |
| @@ -171,42 +156,25 @@ | @@ -171,42 +156,25 @@ | ||
| 171 | BF7B75A71E305A6D0011D5C7 /* UIScrollView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75911E305A6D0011D5C7 /* UIScrollView+MJExtension.m */; }; | 156 | BF7B75A71E305A6D0011D5C7 /* UIScrollView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75911E305A6D0011D5C7 /* UIScrollView+MJExtension.m */; }; |
| 172 | BF7B75A81E305A6D0011D5C7 /* UIScrollView+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75931E305A6D0011D5C7 /* UIScrollView+MJRefresh.m */; }; | 157 | BF7B75A81E305A6D0011D5C7 /* UIScrollView+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75931E305A6D0011D5C7 /* UIScrollView+MJRefresh.m */; }; |
| 173 | BF7B75A91E305A6D0011D5C7 /* UIView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75951E305A6D0011D5C7 /* UIView+MJExtension.m */; }; | 158 | BF7B75A91E305A6D0011D5C7 /* UIView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75951E305A6D0011D5C7 /* UIView+MJExtension.m */; }; |
| 174 | - BF7B75AE1E309F230011D5C7 /* AttentionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75AC1E309F230011D5C7 /* AttentionTableViewCell.swift */; }; | ||
| 175 | - BF7B75AF1E309F230011D5C7 /* AttentionTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BF7B75AD1E309F230011D5C7 /* AttentionTableViewCell.xib */; }; | ||
| 176 | - BF7B75B11E31E3200011D5C7 /* LiveTypeListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75B01E31E3200011D5C7 /* LiveTypeListViewController.swift */; }; | ||
| 177 | - BF8A4C551DE02CE300F99896 /* MessageTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF8A4C531DE02CE300F99896 /* MessageTableViewCell.swift */; }; | ||
| 178 | - BF8A4C561DE02CE300F99896 /* MessageTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BF8A4C541DE02CE300F99896 /* MessageTableViewCell.xib */; }; | ||
| 179 | - BF9D41251E29C17100719535 /* HomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF9D41241E29C17100719535 /* HomeViewController.swift */; }; | ||
| 180 | - BF9D41271E29C20500719535 /* HomeDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF9D41261E29C20500719535 /* HomeDetailViewController.swift */; }; | ||
| 181 | - BFB716B51E28AF4E00C5C516 /* LiveVideoSettingShareViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFB716B31E28AF4E00C5C516 /* LiveVideoSettingShareViewController.swift */; }; | ||
| 182 | - BFB716B61E28AF4E00C5C516 /* LiveVideoSettingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFB716B41E28AF4E00C5C516 /* LiveVideoSettingViewController.swift */; }; | ||
| 183 | - BFB716C11E28AF8B00C5C516 /* Live.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BFB716C01E28AF8B00C5C516 /* Live.storyboard */; }; | ||
| 184 | - BFB716C81E28B5F200C5C516 /* LiveRoomsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFB716C31E28B5F200C5C516 /* LiveRoomsViewController.swift */; }; | ||
| 185 | - BFB716C91E28B5F200C5C516 /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFB716C41E28B5F200C5C516 /* LoginViewController.swift */; }; | ||
| 186 | - BFB716CA1E28B5F200C5C516 /* PersonalSettingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFB716C51E28B5F200C5C516 /* PersonalSettingViewController.swift */; }; | ||
| 187 | - BFB716CB1E28B5F200C5C516 /* RegisterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFB716C61E28B5F200C5C516 /* RegisterViewController.swift */; }; | ||
| 188 | - BFB716CC1E28B5F200C5C516 /* User.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BFB716C71E28B5F200C5C516 /* User.storyboard */; }; | ||
| 189 | BFBB83A91ECAE35E008B404B /* LeadViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83A81ECAE35E008B404B /* LeadViewController.swift */; }; | 159 | BFBB83A91ECAE35E008B404B /* LeadViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83A81ECAE35E008B404B /* LeadViewController.swift */; }; |
| 190 | BFBB83D11ECBEB4E008B404B /* JYScrollItem.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83CC1ECBEB4E008B404B /* JYScrollItem.m */; }; | 160 | BFBB83D11ECBEB4E008B404B /* JYScrollItem.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83CC1ECBEB4E008B404B /* JYScrollItem.m */; }; |
| 191 | BFBB83D21ECBEB4E008B404B /* JYScrollItemModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83CE1ECBEB4E008B404B /* JYScrollItemModel.m */; }; | 161 | BFBB83D21ECBEB4E008B404B /* JYScrollItemModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83CE1ECBEB4E008B404B /* JYScrollItemModel.m */; }; |
| 192 | BFBB83D31ECBEB4E008B404B /* JYScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83D01ECBEB4E008B404B /* JYScrollView.m */; }; | 162 | BFBB83D31ECBEB4E008B404B /* JYScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83D01ECBEB4E008B404B /* JYScrollView.m */; }; |
| 163 | + BFBB83D61ECC4446008B404B /* PassWordView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83D41ECC4446008B404B /* PassWordView.swift */; }; | ||
| 164 | + BFBB83D71ECC4446008B404B /* PassWordView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BFBB83D51ECC4446008B404B /* PassWordView.xib */; }; | ||
| 165 | + BFBB83E31ECC445D008B404B /* User.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BFBB83D91ECC445D008B404B /* User.storyboard */; }; | ||
| 166 | + BFBB83E61ECC445D008B404B /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83DD1ECC445D008B404B /* LoginViewController.swift */; }; | ||
| 167 | + BFBB83E81ECC445D008B404B /* PersonalSettingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83DF1ECC445D008B404B /* PersonalSettingViewController.swift */; }; | ||
| 168 | + BFBB83E91ECC445D008B404B /* RegisterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83E01ECC445D008B404B /* RegisterViewController.swift */; }; | ||
| 169 | + BFBB83EA1ECC445D008B404B /* User.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BFBB83E11ECC445D008B404B /* User.storyboard */; }; | ||
| 170 | + BFBB83EB1ECC445D008B404B /* UserViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83E21ECC445D008B404B /* UserViewController.swift */; }; | ||
| 193 | BFC076781E3445F3008BAC79 /* DownLoad.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFC076771E3445F3008BAC79 /* DownLoad.swift */; }; | 171 | BFC076781E3445F3008BAC79 /* DownLoad.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFC076771E3445F3008BAC79 /* DownLoad.swift */; }; |
| 194 | - BFD1CB4C1E2C657B009D8A42 /* HomeTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFD1CB461E2C657B009D8A42 /* HomeTableViewCell.swift */; }; | ||
| 195 | - BFD1CB4D1E2C657B009D8A42 /* HomeTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BFD1CB471E2C657B009D8A42 /* HomeTableViewCell.xib */; }; | ||
| 196 | - BFD1CB4E1E2C657B009D8A42 /* liveTitleCollectionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFD1CB481E2C657B009D8A42 /* liveTitleCollectionCell.swift */; }; | ||
| 197 | - BFD1CB4F1E2C657B009D8A42 /* liveTitleCollectionCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BFD1CB491E2C657B009D8A42 /* liveTitleCollectionCell.xib */; }; | ||
| 198 | - BFD1CB501E2C657B009D8A42 /* LiveTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFD1CB4A1E2C657B009D8A42 /* LiveTitleView.swift */; }; | ||
| 199 | - BFD1CB511E2C657B009D8A42 /* LiveTitleView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BFD1CB4B1E2C657B009D8A42 /* LiveTitleView.xib */; }; | ||
| 200 | - BFD1CB531E2C66FA009D8A42 /* MoreViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFD1CB521E2C66FA009D8A42 /* MoreViewController.swift */; }; | ||
| 201 | - BFD1CB551E2CA527009D8A42 /* HotMoreViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFD1CB541E2CA527009D8A42 /* HotMoreViewController.swift */; }; | ||
| 202 | BFDA8F331DDE88ED00F0C4E4 /* XSTLiveManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFDA8F321DDE88ED00F0C4E4 /* XSTLiveManager.swift */; }; | 172 | BFDA8F331DDE88ED00F0C4E4 /* XSTLiveManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFDA8F321DDE88ED00F0C4E4 /* XSTLiveManager.swift */; }; |
| 203 | BFDFDEB01DD55B710040F102 /* AlivcLiveVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BFDFDEAF1DD55B710040F102 /* AlivcLiveVideo.framework */; }; | 173 | BFDFDEB01DD55B710040F102 /* AlivcLiveVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BFDFDEAF1DD55B710040F102 /* AlivcLiveVideo.framework */; }; |
| 204 | BFDFDEC11DD55BC90040F102 /* UIView+Toast.m in Sources */ = {isa = PBXBuildFile; fileRef = BFDFDEBB1DD55BC90040F102 /* UIView+Toast.m */; }; | 174 | BFDFDEC11DD55BC90040F102 /* UIView+Toast.m in Sources */ = {isa = PBXBuildFile; fileRef = BFDFDEBB1DD55BC90040F102 /* UIView+Toast.m */; }; |
| 205 | BFDFDED01DD55C0D0040F102 /* account.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFDFDEC81DD55C0D0040F102 /* account.swift */; }; | 175 | BFDFDED01DD55C0D0040F102 /* account.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFDFDEC81DD55C0D0040F102 /* account.swift */; }; |
| 206 | - BFDFDED11DD55C0D0040F102 /* ClassModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFDFDEC91DD55C0D0040F102 /* ClassModel.swift */; }; | ||
| 207 | BFDFDED21DD55C0D0040F102 /* network.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFDFDECA1DD55C0D0040F102 /* network.swift */; }; | 176 | BFDFDED21DD55C0D0040F102 /* network.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFDFDECA1DD55C0D0040F102 /* network.swift */; }; |
| 208 | BFDFDED31DD55C0D0040F102 /* utiles.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFDFDECB1DD55C0D0040F102 /* utiles.swift */; }; | 177 | BFDFDED31DD55C0D0040F102 /* utiles.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFDFDECB1DD55C0D0040F102 /* utiles.swift */; }; |
| 209 | - BFDFDF091DD56C430040F102 /* LiveRoomDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFDFDF081DD56C430040F102 /* LiveRoomDetailViewController.swift */; }; | ||
| 210 | BFF5F4711DD5AA5C00D33B89 /* attach_file.png in Resources */ = {isa = PBXBuildFile; fileRef = BFF5F45B1DD5AA5C00D33B89 /* attach_file.png */; }; | 178 | BFF5F4711DD5AA5C00D33B89 /* attach_file.png in Resources */ = {isa = PBXBuildFile; fileRef = BFF5F45B1DD5AA5C00D33B89 /* attach_file.png */; }; |
| 211 | BFF5F4721DD5AA5C00D33B89 /* defphoto.png in Resources */ = {isa = PBXBuildFile; fileRef = BFF5F45C1DD5AA5C00D33B89 /* defphoto.png */; }; | 179 | BFF5F4721DD5AA5C00D33B89 /* defphoto.png in Resources */ = {isa = PBXBuildFile; fileRef = BFF5F45C1DD5AA5C00D33B89 /* defphoto.png */; }; |
| 212 | BFF5F4751DD5AA5C00D33B89 /* left.png in Resources */ = {isa = PBXBuildFile; fileRef = BFF5F45F1DD5AA5C00D33B89 /* left.png */; }; | 180 | BFF5F4751DD5AA5C00D33B89 /* left.png in Resources */ = {isa = PBXBuildFile; fileRef = BFF5F45F1DD5AA5C00D33B89 /* left.png */; }; |
| @@ -250,12 +218,8 @@ | @@ -250,12 +218,8 @@ | ||
| 250 | 5904FC4B1ECA8B8C00E631FF /* TVStationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TVStationViewController.swift; sourceTree = "<group>"; }; | 218 | 5904FC4B1ECA8B8C00E631FF /* TVStationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TVStationViewController.swift; sourceTree = "<group>"; }; |
| 251 | 5904FC521ECA8BB500E631FF /* MicroCourse.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = MicroCourse.storyboard; sourceTree = "<group>"; }; | 219 | 5904FC521ECA8BB500E631FF /* MicroCourse.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = MicroCourse.storyboard; sourceTree = "<group>"; }; |
| 252 | 5904FC541ECA8BCB00E631FF /* HomePage.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = HomePage.storyboard; sourceTree = "<group>"; }; | 220 | 5904FC541ECA8BCB00E631FF /* HomePage.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = HomePage.storyboard; sourceTree = "<group>"; }; |
| 253 | - 5904FC581ECA8C0000E631FF /* UserViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserViewController.swift; sourceTree = "<group>"; }; | ||
| 254 | - 5904FC5A1ECA8C0900E631FF /* User.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = User.storyboard; sourceTree = "<group>"; }; | ||
| 255 | 5904FC5C1ECA8ED400E631FF /* HomePageViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HomePageViewController.swift; sourceTree = "<group>"; }; | 221 | 5904FC5C1ECA8ED400E631FF /* HomePageViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HomePageViewController.swift; sourceTree = "<group>"; }; |
| 256 | 5904FC601ECA930D00E631FF /* MViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MViewController.swift; sourceTree = "<group>"; }; | 222 | 5904FC601ECA930D00E631FF /* MViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MViewController.swift; sourceTree = "<group>"; }; |
| 257 | - 5906A0731E349FA500D2D814 /* PassWordView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PassWordView.swift; path = ../controller/Live/PassWordView.swift; sourceTree = "<group>"; }; | ||
| 258 | - 5906A0751E349FB400D2D814 /* PassWordView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = PassWordView.xib; path = ../controller/Live/PassWordView.xib; sourceTree = "<group>"; }; | ||
| 259 | 5960263A1DD94D3100C6B5E8 /* libsqlite3.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.tbd; path = usr/lib/libsqlite3.tbd; sourceTree = SDKROOT; }; | 223 | 5960263A1DD94D3100C6B5E8 /* libsqlite3.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.tbd; path = usr/lib/libsqlite3.tbd; sourceTree = SDKROOT; }; |
| 260 | 5960263C1DD94D5E00C6B5E8 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; | 224 | 5960263C1DD94D5E00C6B5E8 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; |
| 261 | 5960263E1DD94D7D00C6B5E8 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = System/Library/Frameworks/ImageIO.framework; sourceTree = SDKROOT; }; | 225 | 5960263E1DD94D7D00C6B5E8 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = System/Library/Frameworks/ImageIO.framework; sourceTree = SDKROOT; }; |
| @@ -268,7 +232,6 @@ | @@ -268,7 +232,6 @@ | ||
| 268 | 5960264D1DDD469200C6B5E8 /* RiverRunCommentUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RiverRunCommentUtil.h; sourceTree = "<group>"; }; | 232 | 5960264D1DDD469200C6B5E8 /* RiverRunCommentUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RiverRunCommentUtil.h; sourceTree = "<group>"; }; |
| 269 | 5960264E1DDD469200C6B5E8 /* RiverRunCommentUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RiverRunCommentUtil.m; sourceTree = "<group>"; }; | 233 | 5960264E1DDD469200C6B5E8 /* RiverRunCommentUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RiverRunCommentUtil.m; sourceTree = "<group>"; }; |
| 270 | 597185B41ECA990C00D7F478 /* Resource.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Resource.storyboard; sourceTree = "<group>"; }; | 234 | 597185B41ECA990C00D7F478 /* Resource.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Resource.storyboard; sourceTree = "<group>"; }; |
| 271 | - 59893BDE1E2C53E1004E7F81 /* AlivcInforViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AlivcInforViewController.swift; sourceTree = "<group>"; }; | ||
| 272 | 598A0E121E51941300273AB8 /* NIMChatroom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NIMChatroom.h; sourceTree = "<group>"; }; | 235 | 598A0E121E51941300273AB8 /* NIMChatroom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NIMChatroom.h; sourceTree = "<group>"; }; |
| 273 | 598A0E131E51941300273AB8 /* NIMChatroomEnterRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NIMChatroomEnterRequest.h; sourceTree = "<group>"; }; | 236 | 598A0E131E51941300273AB8 /* NIMChatroomEnterRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NIMChatroomEnterRequest.h; sourceTree = "<group>"; }; |
| 274 | 598A0E141E51941300273AB8 /* NIMChatroomMember.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NIMChatroomMember.h; sourceTree = "<group>"; }; | 237 | 598A0E141E51941300273AB8 /* NIMChatroomMember.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NIMChatroomMember.h; sourceTree = "<group>"; }; |
| @@ -367,9 +330,7 @@ | @@ -367,9 +330,7 @@ | ||
| 367 | 599B2CD01DE52F7E00B4F7FD /* UMSocialShareScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UMSocialShareScrollView.m; sourceTree = "<group>"; }; | 330 | 599B2CD01DE52F7E00B4F7FD /* UMSocialShareScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UMSocialShareScrollView.m; sourceTree = "<group>"; }; |
| 368 | 599B2CD11DE52F7E00B4F7FD /* UMSocialUIManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UMSocialUIManager.h; sourceTree = "<group>"; }; | 331 | 599B2CD11DE52F7E00B4F7FD /* UMSocialUIManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UMSocialUIManager.h; sourceTree = "<group>"; }; |
| 369 | 599B2CD21DE52F7E00B4F7FD /* UMSocialUIManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UMSocialUIManager.m; sourceTree = "<group>"; }; | 332 | 599B2CD21DE52F7E00B4F7FD /* UMSocialUIManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UMSocialUIManager.m; sourceTree = "<group>"; }; |
| 370 | - 59A8731B1DDD9E0500BAC7FC /* CustomScrollView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomScrollView.swift; sourceTree = "<group>"; }; | ||
| 371 | 59BA13241E25CF2B00540DE0 /* AliyunPlayerSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AliyunPlayerSDK.framework; path = YouerLiveVideo/lib/AliyunPlayerSDK.framework; sourceTree = "<group>"; }; | 333 | 59BA13241E25CF2B00540DE0 /* AliyunPlayerSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AliyunPlayerSDK.framework; path = YouerLiveVideo/lib/AliyunPlayerSDK.framework; sourceTree = "<group>"; }; |
| 372 | - 59BA132C1E25D14F00540DE0 /* MoivePlayerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MoivePlayerViewController.swift; sourceTree = "<group>"; }; | ||
| 373 | 59BA132F1E25D1C000540DE0 /* Reachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Reachability.h; sourceTree = "<group>"; }; | 334 | 59BA132F1E25D1C000540DE0 /* Reachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Reachability.h; sourceTree = "<group>"; }; |
| 374 | 59BA13301E25D1C000540DE0 /* Reachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Reachability.m; sourceTree = "<group>"; }; | 335 | 59BA13301E25D1C000540DE0 /* Reachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Reachability.m; sourceTree = "<group>"; }; |
| 375 | 59BA13321E25D8DB00540DE0 /* movieBackward.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = movieBackward.png; sourceTree = "<group>"; }; | 336 | 59BA13321E25D8DB00540DE0 /* movieBackward.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = movieBackward.png; sourceTree = "<group>"; }; |
| @@ -382,7 +343,6 @@ | @@ -382,7 +343,6 @@ | ||
| 382 | 59BA13441E25D8DB00540DE0 /* video_num_front@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "video_num_front@2x.png"; sourceTree = "<group>"; }; | 343 | 59BA13441E25D8DB00540DE0 /* video_num_front@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "video_num_front@2x.png"; sourceTree = "<group>"; }; |
| 383 | 59C25B481ECAD643009FF276 /* MoreTVStationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MoreTVStationViewController.swift; sourceTree = "<group>"; }; | 344 | 59C25B481ECAD643009FF276 /* MoreTVStationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MoreTVStationViewController.swift; sourceTree = "<group>"; }; |
| 384 | 59C25B4A1ECAD84C009FF276 /* TVStationInforViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TVStationInforViewController.swift; sourceTree = "<group>"; }; | 345 | 59C25B4A1ECAD84C009FF276 /* TVStationInforViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TVStationInforViewController.swift; sourceTree = "<group>"; }; |
| 385 | - 59C25B4C1ECAFAFC009FF276 /* NavigationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigationViewController.swift; sourceTree = "<group>"; }; | ||
| 386 | 59DB1C771E792E5900EA2FC4 /* 开始直播.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "开始直播.png"; sourceTree = "<group>"; }; | 346 | 59DB1C771E792E5900EA2FC4 /* 开始直播.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "开始直播.png"; sourceTree = "<group>"; }; |
| 387 | 59DB1C791E793DA700EA2FC4 /* 标签.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "标签.png"; sourceTree = "<group>"; }; | 347 | 59DB1C791E793DA700EA2FC4 /* 标签.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "标签.png"; sourceTree = "<group>"; }; |
| 388 | 59DB1C7B1E793E0E00EA2FC4 /* 视窗.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "视窗.png"; sourceTree = "<group>"; }; | 348 | 59DB1C7B1E793E0E00EA2FC4 /* 视窗.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "视窗.png"; sourceTree = "<group>"; }; |
| @@ -402,12 +362,6 @@ | @@ -402,12 +362,6 @@ | ||
| 402 | 59F8016F1DD2E5FB000A78B0 /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = System/Library/Frameworks/CoreTelephony.framework; sourceTree = SDKROOT; }; | 362 | 59F8016F1DD2E5FB000A78B0 /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = System/Library/Frameworks/CoreTelephony.framework; sourceTree = SDKROOT; }; |
| 403 | 59F801721DD2E6B9000A78B0 /* YouerLiveVideo-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "YouerLiveVideo-Bridging-Header.h"; sourceTree = "<group>"; }; | 363 | 59F801721DD2E6B9000A78B0 /* YouerLiveVideo-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "YouerLiveVideo-Bridging-Header.h"; sourceTree = "<group>"; }; |
| 404 | 59F801841DD45EDC000A78B0 /* Photos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Photos.framework; path = System/Library/Frameworks/Photos.framework; sourceTree = SDKROOT; }; | 364 | 59F801841DD45EDC000A78B0 /* Photos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Photos.framework; path = System/Library/Frameworks/Photos.framework; sourceTree = SDKROOT; }; |
| 405 | - 59F801931DD567C7000A78B0 /* AlivcLiveViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlivcLiveViewController.h; sourceTree = "<group>"; }; | ||
| 406 | - 59F801941DD567C7000A78B0 /* AlivcLiveViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AlivcLiveViewController.m; sourceTree = "<group>"; }; | ||
| 407 | - 59F801951DD567C7000A78B0 /* AlivcLiveViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AlivcLiveViewController.xib; sourceTree = "<group>"; }; | ||
| 408 | - 59F801961DD567C7000A78B0 /* LiveVideoViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LiveVideoViewController.swift; sourceTree = "<group>"; }; | ||
| 409 | - 59F8019B1DD567D8000A78B0 /* MyViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MyViewController.swift; sourceTree = "<group>"; }; | ||
| 410 | - 59F8019F1DD567D8000A78B0 /* MainViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainViewController.swift; sourceTree = "<group>"; }; | ||
| 411 | 59F801A91DD57253000A78B0 /* ZSDSetPasswordView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZSDSetPasswordView.h; sourceTree = "<group>"; }; | 365 | 59F801A91DD57253000A78B0 /* ZSDSetPasswordView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZSDSetPasswordView.h; sourceTree = "<group>"; }; |
| 412 | 59F801AA1DD57253000A78B0 /* ZSDSetPasswordView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ZSDSetPasswordView.m; sourceTree = "<group>"; }; | 366 | 59F801AA1DD57253000A78B0 /* ZSDSetPasswordView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ZSDSetPasswordView.m; sourceTree = "<group>"; }; |
| 413 | BF25DFA01DDAA36A003EC0C1 /* AFError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AFError.swift; sourceTree = "<group>"; }; | 367 | BF25DFA01DDAA36A003EC0C1 /* AFError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AFError.swift; sourceTree = "<group>"; }; |
| @@ -497,8 +451,6 @@ | @@ -497,8 +451,6 @@ | ||
| 497 | BF6977941E2DEC98006FA934 /* loginBackGround.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = loginBackGround.png; sourceTree = "<group>"; }; | 451 | BF6977941E2DEC98006FA934 /* loginBackGround.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = loginBackGround.png; sourceTree = "<group>"; }; |
| 498 | BF6977951E2DEC98006FA934 /* userId.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = userId.png; sourceTree = "<group>"; }; | 452 | BF6977951E2DEC98006FA934 /* userId.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = userId.png; sourceTree = "<group>"; }; |
| 499 | BF6977961E2DEC98006FA934 /* userPassword.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = userPassword.png; sourceTree = "<group>"; }; | 453 | BF6977961E2DEC98006FA934 /* userPassword.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = userPassword.png; sourceTree = "<group>"; }; |
| 500 | - BF69779A1E2DEFCF006FA934 /* LiveListViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LiveListViewController.swift; sourceTree = "<group>"; }; | ||
| 501 | - BF7B271D1E2F022E00BCF13D /* MyAttentionViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MyAttentionViewController.swift; sourceTree = "<group>"; }; | ||
| 502 | BF7B75691E305A6D0011D5C7 /* MJRefreshAutoFooter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJRefreshAutoFooter.h; sourceTree = "<group>"; }; | 454 | BF7B75691E305A6D0011D5C7 /* MJRefreshAutoFooter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJRefreshAutoFooter.h; sourceTree = "<group>"; }; |
| 503 | BF7B756A1E305A6D0011D5C7 /* MJRefreshAutoFooter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJRefreshAutoFooter.m; sourceTree = "<group>"; }; | 455 | BF7B756A1E305A6D0011D5C7 /* MJRefreshAutoFooter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJRefreshAutoFooter.m; sourceTree = "<group>"; }; |
| 504 | BF7B756B1E305A6D0011D5C7 /* MJRefreshBackFooter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJRefreshBackFooter.h; sourceTree = "<group>"; }; | 456 | BF7B756B1E305A6D0011D5C7 /* MJRefreshBackFooter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJRefreshBackFooter.h; sourceTree = "<group>"; }; |
| @@ -539,21 +491,6 @@ | @@ -539,21 +491,6 @@ | ||
| 539 | BF7B75931E305A6D0011D5C7 /* UIScrollView+MJRefresh.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+MJRefresh.m"; sourceTree = "<group>"; }; | 491 | BF7B75931E305A6D0011D5C7 /* UIScrollView+MJRefresh.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+MJRefresh.m"; sourceTree = "<group>"; }; |
| 540 | BF7B75941E305A6D0011D5C7 /* UIView+MJExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+MJExtension.h"; sourceTree = "<group>"; }; | 492 | BF7B75941E305A6D0011D5C7 /* UIView+MJExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+MJExtension.h"; sourceTree = "<group>"; }; |
| 541 | BF7B75951E305A6D0011D5C7 /* UIView+MJExtension.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+MJExtension.m"; sourceTree = "<group>"; }; | 493 | BF7B75951E305A6D0011D5C7 /* UIView+MJExtension.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+MJExtension.m"; sourceTree = "<group>"; }; |
| 542 | - BF7B75AC1E309F230011D5C7 /* AttentionTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AttentionTableViewCell.swift; sourceTree = "<group>"; }; | ||
| 543 | - BF7B75AD1E309F230011D5C7 /* AttentionTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AttentionTableViewCell.xib; sourceTree = "<group>"; }; | ||
| 544 | - BF7B75B01E31E3200011D5C7 /* LiveTypeListViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LiveTypeListViewController.swift; sourceTree = "<group>"; }; | ||
| 545 | - BF8A4C531DE02CE300F99896 /* MessageTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTableViewCell.swift; sourceTree = "<group>"; }; | ||
| 546 | - BF8A4C541DE02CE300F99896 /* MessageTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MessageTableViewCell.xib; sourceTree = "<group>"; }; | ||
| 547 | - BF9D41241E29C17100719535 /* HomeViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HomeViewController.swift; sourceTree = "<group>"; }; | ||
| 548 | - BF9D41261E29C20500719535 /* HomeDetailViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HomeDetailViewController.swift; sourceTree = "<group>"; }; | ||
| 549 | - BFB716B31E28AF4E00C5C516 /* LiveVideoSettingShareViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LiveVideoSettingShareViewController.swift; sourceTree = "<group>"; }; | ||
| 550 | - BFB716B41E28AF4E00C5C516 /* LiveVideoSettingViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LiveVideoSettingViewController.swift; sourceTree = "<group>"; }; | ||
| 551 | - BFB716C01E28AF8B00C5C516 /* Live.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Live.storyboard; sourceTree = "<group>"; }; | ||
| 552 | - BFB716C31E28B5F200C5C516 /* LiveRoomsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LiveRoomsViewController.swift; sourceTree = "<group>"; }; | ||
| 553 | - BFB716C41E28B5F200C5C516 /* LoginViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginViewController.swift; sourceTree = "<group>"; }; | ||
| 554 | - BFB716C51E28B5F200C5C516 /* PersonalSettingViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PersonalSettingViewController.swift; sourceTree = "<group>"; }; | ||
| 555 | - BFB716C61E28B5F200C5C516 /* RegisterViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RegisterViewController.swift; sourceTree = "<group>"; }; | ||
| 556 | - BFB716C71E28B5F200C5C516 /* User.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = User.storyboard; sourceTree = "<group>"; }; | ||
| 557 | BFBB83A81ECAE35E008B404B /* LeadViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LeadViewController.swift; sourceTree = "<group>"; }; | 494 | BFBB83A81ECAE35E008B404B /* LeadViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LeadViewController.swift; sourceTree = "<group>"; }; |
| 558 | BFBB83CB1ECBEB4E008B404B /* JYScrollItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JYScrollItem.h; sourceTree = "<group>"; }; | 495 | BFBB83CB1ECBEB4E008B404B /* JYScrollItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JYScrollItem.h; sourceTree = "<group>"; }; |
| 559 | BFBB83CC1ECBEB4E008B404B /* JYScrollItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JYScrollItem.m; sourceTree = "<group>"; }; | 496 | BFBB83CC1ECBEB4E008B404B /* JYScrollItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JYScrollItem.m; sourceTree = "<group>"; }; |
| @@ -561,24 +498,22 @@ | @@ -561,24 +498,22 @@ | ||
| 561 | BFBB83CE1ECBEB4E008B404B /* JYScrollItemModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JYScrollItemModel.m; sourceTree = "<group>"; }; | 498 | BFBB83CE1ECBEB4E008B404B /* JYScrollItemModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JYScrollItemModel.m; sourceTree = "<group>"; }; |
| 562 | BFBB83CF1ECBEB4E008B404B /* JYScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JYScrollView.h; sourceTree = "<group>"; }; | 499 | BFBB83CF1ECBEB4E008B404B /* JYScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JYScrollView.h; sourceTree = "<group>"; }; |
| 563 | BFBB83D01ECBEB4E008B404B /* JYScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JYScrollView.m; sourceTree = "<group>"; }; | 500 | BFBB83D01ECBEB4E008B404B /* JYScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JYScrollView.m; sourceTree = "<group>"; }; |
| 501 | + BFBB83D41ECC4446008B404B /* PassWordView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PassWordView.swift; sourceTree = "<group>"; }; | ||
| 502 | + BFBB83D51ECC4446008B404B /* PassWordView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PassWordView.xib; sourceTree = "<group>"; }; | ||
| 503 | + BFBB83D91ECC445D008B404B /* User.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = User.storyboard; sourceTree = "<group>"; }; | ||
| 504 | + BFBB83DD1ECC445D008B404B /* LoginViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginViewController.swift; sourceTree = "<group>"; }; | ||
| 505 | + BFBB83DF1ECC445D008B404B /* PersonalSettingViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PersonalSettingViewController.swift; sourceTree = "<group>"; }; | ||
| 506 | + BFBB83E01ECC445D008B404B /* RegisterViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RegisterViewController.swift; sourceTree = "<group>"; }; | ||
| 507 | + BFBB83E11ECC445D008B404B /* User.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = User.storyboard; sourceTree = "<group>"; }; | ||
| 508 | + BFBB83E21ECC445D008B404B /* UserViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserViewController.swift; sourceTree = "<group>"; }; | ||
| 564 | BFC076771E3445F3008BAC79 /* DownLoad.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownLoad.swift; sourceTree = "<group>"; }; | 509 | BFC076771E3445F3008BAC79 /* DownLoad.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownLoad.swift; sourceTree = "<group>"; }; |
| 565 | - BFD1CB461E2C657B009D8A42 /* HomeTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HomeTableViewCell.swift; sourceTree = "<group>"; }; | ||
| 566 | - BFD1CB471E2C657B009D8A42 /* HomeTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HomeTableViewCell.xib; sourceTree = "<group>"; }; | ||
| 567 | - BFD1CB481E2C657B009D8A42 /* liveTitleCollectionCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = liveTitleCollectionCell.swift; sourceTree = "<group>"; }; | ||
| 568 | - BFD1CB491E2C657B009D8A42 /* liveTitleCollectionCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = liveTitleCollectionCell.xib; sourceTree = "<group>"; }; | ||
| 569 | - BFD1CB4A1E2C657B009D8A42 /* LiveTitleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LiveTitleView.swift; sourceTree = "<group>"; }; | ||
| 570 | - BFD1CB4B1E2C657B009D8A42 /* LiveTitleView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LiveTitleView.xib; sourceTree = "<group>"; }; | ||
| 571 | - BFD1CB521E2C66FA009D8A42 /* MoreViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MoreViewController.swift; sourceTree = "<group>"; }; | ||
| 572 | - BFD1CB541E2CA527009D8A42 /* HotMoreViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HotMoreViewController.swift; sourceTree = "<group>"; }; | ||
| 573 | BFDA8F321DDE88ED00F0C4E4 /* XSTLiveManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XSTLiveManager.swift; sourceTree = "<group>"; }; | 510 | BFDA8F321DDE88ED00F0C4E4 /* XSTLiveManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XSTLiveManager.swift; sourceTree = "<group>"; }; |
| 574 | BFDFDEAF1DD55B710040F102 /* AlivcLiveVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AlivcLiveVideo.framework; sourceTree = "<group>"; }; | 511 | BFDFDEAF1DD55B710040F102 /* AlivcLiveVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AlivcLiveVideo.framework; sourceTree = "<group>"; }; |
| 575 | BFDFDEBA1DD55BC90040F102 /* UIView+Toast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+Toast.h"; sourceTree = "<group>"; }; | 512 | BFDFDEBA1DD55BC90040F102 /* UIView+Toast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+Toast.h"; sourceTree = "<group>"; }; |
| 576 | BFDFDEBB1DD55BC90040F102 /* UIView+Toast.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Toast.m"; sourceTree = "<group>"; }; | 513 | BFDFDEBB1DD55BC90040F102 /* UIView+Toast.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Toast.m"; sourceTree = "<group>"; }; |
| 577 | BFDFDEC81DD55C0D0040F102 /* account.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = account.swift; sourceTree = "<group>"; }; | 514 | BFDFDEC81DD55C0D0040F102 /* account.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = account.swift; sourceTree = "<group>"; }; |
| 578 | - BFDFDEC91DD55C0D0040F102 /* ClassModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ClassModel.swift; sourceTree = "<group>"; }; | ||
| 579 | BFDFDECA1DD55C0D0040F102 /* network.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = network.swift; sourceTree = "<group>"; }; | 515 | BFDFDECA1DD55C0D0040F102 /* network.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = network.swift; sourceTree = "<group>"; }; |
| 580 | BFDFDECB1DD55C0D0040F102 /* utiles.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = utiles.swift; sourceTree = "<group>"; }; | 516 | BFDFDECB1DD55C0D0040F102 /* utiles.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = utiles.swift; sourceTree = "<group>"; }; |
| 581 | - BFDFDF081DD56C430040F102 /* LiveRoomDetailViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LiveRoomDetailViewController.swift; sourceTree = "<group>"; }; | ||
| 582 | BFE1C7991E23686C0007B16B /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Main.strings"; sourceTree = "<group>"; }; | 517 | BFE1C7991E23686C0007B16B /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Main.strings"; sourceTree = "<group>"; }; |
| 583 | BFE1C79A1E23686C0007B16B /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/LaunchScreen.strings"; sourceTree = "<group>"; }; | 518 | BFE1C79A1E23686C0007B16B /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/LaunchScreen.strings"; sourceTree = "<group>"; }; |
| 584 | BFF5F45B1DD5AA5C00D33B89 /* attach_file.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = attach_file.png; sourceTree = "<group>"; }; | 519 | BFF5F45B1DD5AA5C00D33B89 /* attach_file.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = attach_file.png; sourceTree = "<group>"; }; |
| @@ -646,12 +581,11 @@ | @@ -646,12 +581,11 @@ | ||
| 646 | children = ( | 581 | children = ( |
| 647 | BFBB83A81ECAE35E008B404B /* LeadViewController.swift */, | 582 | BFBB83A81ECAE35E008B404B /* LeadViewController.swift */, |
| 648 | 5904FC601ECA930D00E631FF /* MViewController.swift */, | 583 | 5904FC601ECA930D00E631FF /* MViewController.swift */, |
| 649 | - 59C25B4C1ECAFAFC009FF276 /* NavigationViewController.swift */, | ||
| 650 | 5904FC431ECA8B8C00E631FF /* HomePage */, | 584 | 5904FC431ECA8B8C00E631FF /* HomePage */, |
| 651 | 5904FC441ECA8B8C00E631FF /* MicroCourse */, | 585 | 5904FC441ECA8B8C00E631FF /* MicroCourse */, |
| 652 | 5904FC461ECA8B8C00E631FF /* Resource */, | 586 | 5904FC461ECA8B8C00E631FF /* Resource */, |
| 653 | 5904FC481ECA8B8C00E631FF /* TVStation */, | 587 | 5904FC481ECA8B8C00E631FF /* TVStation */, |
| 654 | - 5904FC4C1ECA8B8C00E631FF /* User */, | 588 | + BFBB83D81ECC445D008B404B /* User */, |
| 655 | ); | 589 | ); |
| 656 | path = controllers; | 590 | path = controllers; |
| 657 | sourceTree = "<group>"; | 591 | sourceTree = "<group>"; |
| @@ -695,15 +629,6 @@ | @@ -695,15 +629,6 @@ | ||
| 695 | path = TVStation; | 629 | path = TVStation; |
| 696 | sourceTree = "<group>"; | 630 | sourceTree = "<group>"; |
| 697 | }; | 631 | }; |
| 698 | - 5904FC4C1ECA8B8C00E631FF /* User */ = { | ||
| 699 | - isa = PBXGroup; | ||
| 700 | - children = ( | ||
| 701 | - 5904FC581ECA8C0000E631FF /* UserViewController.swift */, | ||
| 702 | - 5904FC5A1ECA8C0900E631FF /* User.storyboard */, | ||
| 703 | - ); | ||
| 704 | - path = User; | ||
| 705 | - sourceTree = "<group>"; | ||
| 706 | - }; | ||
| 707 | 596026391DD94D3100C6B5E8 /* Frameworks */ = { | 632 | 596026391DD94D3100C6B5E8 /* Frameworks */ = { |
| 708 | isa = PBXGroup; | 633 | isa = PBXGroup; |
| 709 | children = ( | 634 | children = ( |
| @@ -954,15 +879,6 @@ | @@ -954,15 +879,6 @@ | ||
| 954 | path = Resource; | 879 | path = Resource; |
| 955 | sourceTree = "<group>"; | 880 | sourceTree = "<group>"; |
| 956 | }; | 881 | }; |
| 957 | - 59BA132B1E25D14F00540DE0 /* AliveVideoPlayer */ = { | ||
| 958 | - isa = PBXGroup; | ||
| 959 | - children = ( | ||
| 960 | - 59BA132C1E25D14F00540DE0 /* MoivePlayerViewController.swift */, | ||
| 961 | - 59893BDE1E2C53E1004E7F81 /* AlivcInforViewController.swift */, | ||
| 962 | - ); | ||
| 963 | - path = AliveVideoPlayer; | ||
| 964 | - sourceTree = "<group>"; | ||
| 965 | - }; | ||
| 966 | 59BA132E1E25D1C000540DE0 /* Reach */ = { | 882 | 59BA132E1E25D1C000540DE0 /* Reach */ = { |
| 967 | isa = PBXGroup; | 883 | isa = PBXGroup; |
| 968 | children = ( | 884 | children = ( |
| @@ -994,11 +910,8 @@ | @@ -994,11 +910,8 @@ | ||
| 994 | children = ( | 910 | children = ( |
| 995 | 59F8014E1DD2C7AD000A78B0 /* AppDelegate.swift */, | 911 | 59F8014E1DD2C7AD000A78B0 /* AppDelegate.swift */, |
| 996 | 59F801521DD2C7AD000A78B0 /* Main.storyboard */, | 912 | 59F801521DD2C7AD000A78B0 /* Main.storyboard */, |
| 997 | - 59F8019A1DD567D8000A78B0 /* controller */, | ||
| 998 | 5904FC421ECA8B8C00E631FF /* controllers */, | 913 | 5904FC421ECA8B8C00E631FF /* controllers */, |
| 999 | BFDA8F311DDE87E800F0C4E4 /* NIM */, | 914 | BFDA8F311DDE87E800F0C4E4 /* NIM */, |
| 1000 | - 59F801921DD567C7000A78B0 /* Aliv */, | ||
| 1001 | - 59BA132B1E25D14F00540DE0 /* AliveVideoPlayer */, | ||
| 1002 | 596026481DDD469200C6B5E8 /* DanmakuLib */, | 915 | 596026481DDD469200C6B5E8 /* DanmakuLib */, |
| 1003 | BFDFDEC71DD55C0D0040F102 /* util */, | 916 | BFDFDEC71DD55C0D0040F102 /* util */, |
| 1004 | BFDFDEB11DD55BC90040F102 /* lib */, | 917 | BFDFDEB11DD55BC90040F102 /* lib */, |
| @@ -1013,38 +926,6 @@ | @@ -1013,38 +926,6 @@ | ||
| 1013 | path = YouerLiveVideo; | 926 | path = YouerLiveVideo; |
| 1014 | sourceTree = "<group>"; | 927 | sourceTree = "<group>"; |
| 1015 | }; | 928 | }; |
| 1016 | - 59F801921DD567C7000A78B0 /* Aliv */ = { | ||
| 1017 | - isa = PBXGroup; | ||
| 1018 | - children = ( | ||
| 1019 | - 59F801931DD567C7000A78B0 /* AlivcLiveViewController.h */, | ||
| 1020 | - 59F801941DD567C7000A78B0 /* AlivcLiveViewController.m */, | ||
| 1021 | - 59F801951DD567C7000A78B0 /* AlivcLiveViewController.xib */, | ||
| 1022 | - 59F801961DD567C7000A78B0 /* LiveVideoViewController.swift */, | ||
| 1023 | - 59A8731B1DDD9E0500BAC7FC /* CustomScrollView.swift */, | ||
| 1024 | - BF8A4C531DE02CE300F99896 /* MessageTableViewCell.swift */, | ||
| 1025 | - BF8A4C541DE02CE300F99896 /* MessageTableViewCell.xib */, | ||
| 1026 | - ); | ||
| 1027 | - path = Aliv; | ||
| 1028 | - sourceTree = "<group>"; | ||
| 1029 | - }; | ||
| 1030 | - 59F8019A1DD567D8000A78B0 /* controller */ = { | ||
| 1031 | - isa = PBXGroup; | ||
| 1032 | - children = ( | ||
| 1033 | - 59F8019F1DD567D8000A78B0 /* MainViewController.swift */, | ||
| 1034 | - BF9D41241E29C17100719535 /* HomeViewController.swift */, | ||
| 1035 | - BF9D41261E29C20500719535 /* HomeDetailViewController.swift */, | ||
| 1036 | - BFD1CB521E2C66FA009D8A42 /* MoreViewController.swift */, | ||
| 1037 | - BFD1CB541E2CA527009D8A42 /* HotMoreViewController.swift */, | ||
| 1038 | - BF7B75B01E31E3200011D5C7 /* LiveTypeListViewController.swift */, | ||
| 1039 | - 59F8019B1DD567D8000A78B0 /* MyViewController.swift */, | ||
| 1040 | - BFDFDF081DD56C430040F102 /* LiveRoomDetailViewController.swift */, | ||
| 1041 | - BFD1CB451E2C657B009D8A42 /* HomeCellAndTitleView */, | ||
| 1042 | - BFB716B21E28AF4E00C5C516 /* Live */, | ||
| 1043 | - BFB716C21E28B5F200C5C516 /* UserCenter */, | ||
| 1044 | - ); | ||
| 1045 | - path = controller; | ||
| 1046 | - sourceTree = "<group>"; | ||
| 1047 | - }; | ||
| 1048 | BF25DF9F1DDAA36A003EC0C1 /* Alamofire */ = { | 929 | BF25DF9F1DDAA36A003EC0C1 /* Alamofire */ = { |
| 1049 | isa = PBXGroup; | 930 | isa = PBXGroup; |
| 1050 | children = ( | 931 | children = ( |
| @@ -1249,30 +1130,6 @@ | @@ -1249,30 +1130,6 @@ | ||
| 1249 | path = Header; | 1130 | path = Header; |
| 1250 | sourceTree = "<group>"; | 1131 | sourceTree = "<group>"; |
| 1251 | }; | 1132 | }; |
| 1252 | - BFB716B21E28AF4E00C5C516 /* Live */ = { | ||
| 1253 | - isa = PBXGroup; | ||
| 1254 | - children = ( | ||
| 1255 | - BFB716B31E28AF4E00C5C516 /* LiveVideoSettingShareViewController.swift */, | ||
| 1256 | - BFB716B41E28AF4E00C5C516 /* LiveVideoSettingViewController.swift */, | ||
| 1257 | - BFB716C01E28AF8B00C5C516 /* Live.storyboard */, | ||
| 1258 | - ); | ||
| 1259 | - path = Live; | ||
| 1260 | - sourceTree = "<group>"; | ||
| 1261 | - }; | ||
| 1262 | - BFB716C21E28B5F200C5C516 /* UserCenter */ = { | ||
| 1263 | - isa = PBXGroup; | ||
| 1264 | - children = ( | ||
| 1265 | - BF69779A1E2DEFCF006FA934 /* LiveListViewController.swift */, | ||
| 1266 | - BF7B271D1E2F022E00BCF13D /* MyAttentionViewController.swift */, | ||
| 1267 | - BFB716C41E28B5F200C5C516 /* LoginViewController.swift */, | ||
| 1268 | - BFB716C51E28B5F200C5C516 /* PersonalSettingViewController.swift */, | ||
| 1269 | - BFB716C61E28B5F200C5C516 /* RegisterViewController.swift */, | ||
| 1270 | - BFB716C71E28B5F200C5C516 /* User.storyboard */, | ||
| 1271 | - BFB716C31E28B5F200C5C516 /* LiveRoomsViewController.swift */, | ||
| 1272 | - ); | ||
| 1273 | - path = UserCenter; | ||
| 1274 | - sourceTree = "<group>"; | ||
| 1275 | - }; | ||
| 1276 | BFBB83C91ECBEB4E008B404B /* Carousel */ = { | 1133 | BFBB83C91ECBEB4E008B404B /* Carousel */ = { |
| 1277 | isa = PBXGroup; | 1134 | isa = PBXGroup; |
| 1278 | children = ( | 1135 | children = ( |
| @@ -1294,19 +1151,25 @@ | @@ -1294,19 +1151,25 @@ | ||
| 1294 | path = JYScrollBanner; | 1151 | path = JYScrollBanner; |
| 1295 | sourceTree = "<group>"; | 1152 | sourceTree = "<group>"; |
| 1296 | }; | 1153 | }; |
| 1297 | - BFD1CB451E2C657B009D8A42 /* HomeCellAndTitleView */ = { | 1154 | + BFBB83D81ECC445D008B404B /* User */ = { |
| 1298 | isa = PBXGroup; | 1155 | isa = PBXGroup; |
| 1299 | children = ( | 1156 | children = ( |
| 1300 | - BFD1CB461E2C657B009D8A42 /* HomeTableViewCell.swift */, | ||
| 1301 | - BFD1CB471E2C657B009D8A42 /* HomeTableViewCell.xib */, | ||
| 1302 | - BFD1CB481E2C657B009D8A42 /* liveTitleCollectionCell.swift */, | ||
| 1303 | - BFD1CB491E2C657B009D8A42 /* liveTitleCollectionCell.xib */, | ||
| 1304 | - BFD1CB4A1E2C657B009D8A42 /* LiveTitleView.swift */, | ||
| 1305 | - BFD1CB4B1E2C657B009D8A42 /* LiveTitleView.xib */, | ||
| 1306 | - BF7B75AC1E309F230011D5C7 /* AttentionTableViewCell.swift */, | ||
| 1307 | - BF7B75AD1E309F230011D5C7 /* AttentionTableViewCell.xib */, | ||
| 1308 | - ); | ||
| 1309 | - path = HomeCellAndTitleView; | 1157 | + BFBB83D91ECC445D008B404B /* User.storyboard */, |
| 1158 | + BFBB83E21ECC445D008B404B /* UserViewController.swift */, | ||
| 1159 | + BFBB83DA1ECC445D008B404B /* UserCenter */, | ||
| 1160 | + ); | ||
| 1161 | + path = User; | ||
| 1162 | + sourceTree = "<group>"; | ||
| 1163 | + }; | ||
| 1164 | + BFBB83DA1ECC445D008B404B /* UserCenter */ = { | ||
| 1165 | + isa = PBXGroup; | ||
| 1166 | + children = ( | ||
| 1167 | + BFBB83DD1ECC445D008B404B /* LoginViewController.swift */, | ||
| 1168 | + BFBB83DF1ECC445D008B404B /* PersonalSettingViewController.swift */, | ||
| 1169 | + BFBB83E01ECC445D008B404B /* RegisterViewController.swift */, | ||
| 1170 | + BFBB83E11ECC445D008B404B /* User.storyboard */, | ||
| 1171 | + ); | ||
| 1172 | + path = UserCenter; | ||
| 1310 | sourceTree = "<group>"; | 1173 | sourceTree = "<group>"; |
| 1311 | }; | 1174 | }; |
| 1312 | BFDA8F311DDE87E800F0C4E4 /* NIM */ = { | 1175 | BFDA8F311DDE87E800F0C4E4 /* NIM */ = { |
| @@ -1362,12 +1225,11 @@ | @@ -1362,12 +1225,11 @@ | ||
| 1362 | BFDFDEC71DD55C0D0040F102 /* util */ = { | 1225 | BFDFDEC71DD55C0D0040F102 /* util */ = { |
| 1363 | isa = PBXGroup; | 1226 | isa = PBXGroup; |
| 1364 | children = ( | 1227 | children = ( |
| 1365 | - 5906A0731E349FA500D2D814 /* PassWordView.swift */, | ||
| 1366 | - 5906A0751E349FB400D2D814 /* PassWordView.xib */, | 1228 | + BFBB83D41ECC4446008B404B /* PassWordView.swift */, |
| 1229 | + BFBB83D51ECC4446008B404B /* PassWordView.xib */, | ||
| 1367 | 59F801A91DD57253000A78B0 /* ZSDSetPasswordView.h */, | 1230 | 59F801A91DD57253000A78B0 /* ZSDSetPasswordView.h */, |
| 1368 | 59F801AA1DD57253000A78B0 /* ZSDSetPasswordView.m */, | 1231 | 59F801AA1DD57253000A78B0 /* ZSDSetPasswordView.m */, |
| 1369 | BFDFDEC81DD55C0D0040F102 /* account.swift */, | 1232 | BFDFDEC81DD55C0D0040F102 /* account.swift */, |
| 1370 | - BFDFDEC91DD55C0D0040F102 /* ClassModel.swift */, | ||
| 1371 | BFDFDECA1DD55C0D0040F102 /* network.swift */, | 1233 | BFDFDECA1DD55C0D0040F102 /* network.swift */, |
| 1372 | BFDFDECB1DD55C0D0040F102 /* utiles.swift */, | 1234 | BFDFDECB1DD55C0D0040F102 /* utiles.swift */, |
| 1373 | BFC076771E3445F3008BAC79 /* DownLoad.swift */, | 1235 | BFC076771E3445F3008BAC79 /* DownLoad.swift */, |
| @@ -1504,14 +1366,11 @@ | @@ -1504,14 +1366,11 @@ | ||
| 1504 | BF6977921E2DEAF1006FA934 /* arrow.png in Resources */, | 1366 | BF6977921E2DEAF1006FA934 /* arrow.png in Resources */, |
| 1505 | 59BA13571E25D8DB00540DE0 /* video_num_front@2x.png in Resources */, | 1367 | 59BA13571E25D8DB00540DE0 /* video_num_front@2x.png in Resources */, |
| 1506 | BF6977971E2DEC98006FA934 /* loginBackGround.png in Resources */, | 1368 | BF6977971E2DEC98006FA934 /* loginBackGround.png in Resources */, |
| 1507 | - BFD1CB4F1E2C657B009D8A42 /* liveTitleCollectionCell.xib in Resources */, | ||
| 1508 | BFF5F4791DD5AA5C00D33B89 /* 分享.png in Resources */, | 1369 | BFF5F4791DD5AA5C00D33B89 /* 分享.png in Resources */, |
| 1509 | BFF5F47C1DD5AA5C00D33B89 /* 收拢.png in Resources */, | 1370 | BFF5F47C1DD5AA5C00D33B89 /* 收拢.png in Resources */, |
| 1510 | - BFB716C11E28AF8B00C5C516 /* Live.storyboard in Resources */, | ||
| 1511 | BFF5F4721DD5AA5C00D33B89 /* defphoto.png in Resources */, | 1371 | BFF5F4721DD5AA5C00D33B89 /* defphoto.png in Resources */, |
| 1512 | 5904FC531ECA8BB500E631FF /* MicroCourse.storyboard in Resources */, | 1372 | 5904FC531ECA8BB500E631FF /* MicroCourse.storyboard in Resources */, |
| 1513 | BFF5F4751DD5AA5C00D33B89 /* left.png in Resources */, | 1373 | BFF5F4751DD5AA5C00D33B89 /* left.png in Resources */, |
| 1514 | - BFD1CB511E2C657B009D8A42 /* LiveTitleView.xib in Resources */, | ||
| 1515 | BFF5F48E1DD5B7CA00D33B89 /* Info-iOS.plist in Resources */, | 1374 | BFF5F48E1DD5B7CA00D33B89 /* Info-iOS.plist in Resources */, |
| 1516 | BFF5F47A1DD5AA5C00D33B89 /* 封面上传.png in Resources */, | 1375 | BFF5F47A1DD5AA5C00D33B89 /* 封面上传.png in Resources */, |
| 1517 | BF7B75A41E305A6D0011D5C7 /* MJRefresh.bundle in Resources */, | 1376 | BF7B75A41E305A6D0011D5C7 /* MJRefresh.bundle in Resources */, |
| @@ -1520,7 +1379,6 @@ | @@ -1520,7 +1379,6 @@ | ||
| 1520 | BF6977991E2DEC98006FA934 /* userPassword.png in Resources */, | 1379 | BF6977991E2DEC98006FA934 /* userPassword.png in Resources */, |
| 1521 | 59F8015C1DD2C7AE000A78B0 /* LaunchScreen.storyboard in Resources */, | 1380 | 59F8015C1DD2C7AE000A78B0 /* LaunchScreen.storyboard in Resources */, |
| 1522 | BF3E4A7A1E2F30B700D90659 /* 直播-最热.png in Resources */, | 1381 | BF3E4A7A1E2F30B700D90659 /* 直播-最热.png in Resources */, |
| 1523 | - 5906A0761E349FB400D2D814 /* PassWordView.xib in Resources */, | ||
| 1524 | 59BA13471E25D8DB00540DE0 /* movieBackwardSelected.png in Resources */, | 1382 | 59BA13471E25D8DB00540DE0 /* movieBackwardSelected.png in Resources */, |
| 1525 | BFF5F47D1DD5AA5C00D33B89 /* 暂停.png in Resources */, | 1383 | BFF5F47D1DD5AA5C00D33B89 /* 暂停.png in Resources */, |
| 1526 | BFF5F4781DD5AA5C00D33B89 /* 全屏.png in Resources */, | 1384 | BFF5F4781DD5AA5C00D33B89 /* 全屏.png in Resources */, |
| @@ -1539,32 +1397,29 @@ | @@ -1539,32 +1397,29 @@ | ||
| 1539 | BFF5F4761DD5AA5C00D33B89 /* psb.jpg in Resources */, | 1397 | BFF5F4761DD5AA5C00D33B89 /* psb.jpg in Resources */, |
| 1540 | 59BA13451E25D8DB00540DE0 /* movieBackward.png in Resources */, | 1398 | 59BA13451E25D8DB00540DE0 /* movieBackward.png in Resources */, |
| 1541 | BF25DFE51DDAA36A003EC0C1 /* Info-tvOS.plist in Resources */, | 1399 | BF25DFE51DDAA36A003EC0C1 /* Info-tvOS.plist in Resources */, |
| 1542 | - BFD1CB4D1E2C657B009D8A42 /* HomeTableViewCell.xib in Resources */, | ||
| 1543 | BF6977881E2DC264006FA934 /* 我的关注.png in Resources */, | 1400 | BF6977881E2DC264006FA934 /* 我的关注.png in Resources */, |
| 1544 | 599B2CD51DE52F7E00B4F7FD /* TencentOpenApi_IOS_Bundle.bundle in Resources */, | 1401 | 599B2CD51DE52F7E00B4F7FD /* TencentOpenApi_IOS_Bundle.bundle in Resources */, |
| 1402 | + BFBB83EA1ECC445D008B404B /* User.storyboard in Resources */, | ||
| 1545 | 597185B51ECA990C00D7F478 /* Resource.storyboard in Resources */, | 1403 | 597185B51ECA990C00D7F478 /* Resource.storyboard in Resources */, |
| 1546 | BF25DFE61DDAA36A003EC0C1 /* Info.plist in Resources */, | 1404 | BF25DFE61DDAA36A003EC0C1 /* Info.plist in Resources */, |
| 1547 | BFF5F4771DD5AA5C00D33B89 /* 上传头像.png in Resources */, | 1405 | BFF5F4771DD5AA5C00D33B89 /* 上传头像.png in Resources */, |
| 1548 | 5904FC501ECA8B8C00E631FF /* TVStation.storyboard in Resources */, | 1406 | 5904FC501ECA8B8C00E631FF /* TVStation.storyboard in Resources */, |
| 1549 | BF3E4A771E2F30B700D90659 /* 观看人数.png in Resources */, | 1407 | BF3E4A771E2F30B700D90659 /* 观看人数.png in Resources */, |
| 1550 | 599B2CDF1DE52F7E00B4F7FD /* UMSocialSDKResources.bundle in Resources */, | 1408 | 599B2CDF1DE52F7E00B4F7FD /* UMSocialSDKResources.bundle in Resources */, |
| 1551 | - 5904FC5B1ECA8C0900E631FF /* User.storyboard in Resources */, | ||
| 1552 | BFF5F4901DD5B7CA00D33B89 /* Info-tvOS.plist in Resources */, | 1409 | BFF5F4901DD5B7CA00D33B89 /* Info-tvOS.plist in Resources */, |
| 1553 | - BFB716CC1E28B5F200C5C516 /* User.storyboard in Resources */, | ||
| 1554 | BFF5F4711DD5AA5C00D33B89 /* attach_file.png in Resources */, | 1410 | BFF5F4711DD5AA5C00D33B89 /* attach_file.png in Resources */, |
| 1555 | 599B2CD81DE52F7E00B4F7FD /* WeiboSDK.bundle in Resources */, | 1411 | 599B2CD81DE52F7E00B4F7FD /* WeiboSDK.bundle in Resources */, |
| 1556 | BF3E4A791E2F30B700D90659 /* 上传封面.png in Resources */, | 1412 | BF3E4A791E2F30B700D90659 /* 上传封面.png in Resources */, |
| 1557 | 59DB1C781E792E5900EA2FC4 /* 开始直播.png in Resources */, | 1413 | 59DB1C781E792E5900EA2FC4 /* 开始直播.png in Resources */, |
| 1558 | - 59F801981DD567C7000A78B0 /* AlivcLiveViewController.xib in Resources */, | ||
| 1559 | - BF7B75AF1E309F230011D5C7 /* AttentionTableViewCell.xib in Resources */, | ||
| 1560 | - BF8A4C561DE02CE300F99896 /* MessageTableViewCell.xib in Resources */, | ||
| 1561 | BF69778A1E2DC264006FA934 /* 直播历史.png in Resources */, | 1414 | BF69778A1E2DC264006FA934 /* 直播历史.png in Resources */, |
| 1562 | BF25E0171DDAAF73003EC0C1 /* SVProgressHUD.bundle in Resources */, | 1415 | BF25E0171DDAAF73003EC0C1 /* SVProgressHUD.bundle in Resources */, |
| 1563 | 59F801541DD2C7AD000A78B0 /* Main.storyboard in Resources */, | 1416 | 59F801541DD2C7AD000A78B0 /* Main.storyboard in Resources */, |
| 1417 | + BFBB83E31ECC445D008B404B /* User.storyboard in Resources */, | ||
| 1564 | BFF5F47B1DD5AA5C00D33B89 /* 摄像头翻转.png in Resources */, | 1418 | BFF5F47B1DD5AA5C00D33B89 /* 摄像头翻转.png in Resources */, |
| 1565 | 5904FC551ECA8BCB00E631FF /* HomePage.storyboard in Resources */, | 1419 | 5904FC551ECA8BCB00E631FF /* HomePage.storyboard in Resources */, |
| 1566 | BFF5F47E1DD5AA5C00D33B89 /* 横屏.png in Resources */, | 1420 | BFF5F47E1DD5AA5C00D33B89 /* 横屏.png in Resources */, |
| 1567 | 59BA13561E25D8DB00540DE0 /* video_num_bg@2x.png in Resources */, | 1421 | 59BA13561E25D8DB00540DE0 /* video_num_bg@2x.png in Resources */, |
| 1422 | + BFBB83D71ECC4446008B404B /* PassWordView.xib in Resources */, | ||
| 1568 | 59DB1C7E1E793E6A00EA2FC4 /* 首页.png in Resources */, | 1423 | 59DB1C7E1E793E6A00EA2FC4 /* 首页.png in Resources */, |
| 1569 | BF6977871E2DC264006FA934 /* 我的充值.png in Resources */, | 1424 | BF6977871E2DC264006FA934 /* 我的充值.png in Resources */, |
| 1570 | BF69778B1E2DC264006FA934 /* 直播列表.png in Resources */, | 1425 | BF69778B1E2DC264006FA934 /* 直播列表.png in Resources */, |
| @@ -1599,17 +1454,16 @@ | @@ -1599,17 +1454,16 @@ | ||
| 1599 | buildActionMask = 2147483647; | 1454 | buildActionMask = 2147483647; |
| 1600 | files = ( | 1455 | files = ( |
| 1601 | BF7B75A21E305A6D0011D5C7 /* MJRefreshNormalHeader.m in Sources */, | 1456 | BF7B75A21E305A6D0011D5C7 /* MJRefreshNormalHeader.m in Sources */, |
| 1602 | - 59F801991DD567C7000A78B0 /* LiveVideoViewController.swift in Sources */, | ||
| 1603 | BF7B75991E305A6D0011D5C7 /* MJRefreshFooter.m in Sources */, | 1457 | BF7B75991E305A6D0011D5C7 /* MJRefreshFooter.m in Sources */, |
| 1604 | 59F801571DD2C7AE000A78B0 /* YouerLiveVideo.xcdatamodeld in Sources */, | 1458 | 59F801571DD2C7AE000A78B0 /* YouerLiveVideo.xcdatamodeld in Sources */, |
| 1605 | 59BA13311E25D1C000540DE0 /* Reachability.m in Sources */, | 1459 | 59BA13311E25D1C000540DE0 /* Reachability.m in Sources */, |
| 1460 | + BFBB83EB1ECC445D008B404B /* UserViewController.swift in Sources */, | ||
| 1606 | 5904FC4E1ECA8B8C00E631FF /* ResourceViewController.swift in Sources */, | 1461 | 5904FC4E1ECA8B8C00E631FF /* ResourceViewController.swift in Sources */, |
| 1607 | BFBB83D11ECBEB4E008B404B /* JYScrollItem.m in Sources */, | 1462 | BFBB83D11ECBEB4E008B404B /* JYScrollItem.m in Sources */, |
| 1608 | BF25DFEB1DDAA36A003EC0C1 /* Request.swift in Sources */, | 1463 | BF25DFEB1DDAA36A003EC0C1 /* Request.swift in Sources */, |
| 1609 | BF7B759F1E305A6D0011D5C7 /* MJRefreshBackNormalFooter.m in Sources */, | 1464 | BF7B759F1E305A6D0011D5C7 /* MJRefreshBackNormalFooter.m in Sources */, |
| 1610 | BFBB83D21ECBEB4E008B404B /* JYScrollItemModel.m in Sources */, | 1465 | BFBB83D21ECBEB4E008B404B /* JYScrollItemModel.m in Sources */, |
| 1611 | 599B2CE01DE52F7E00B4F7FD /* UMShareMenuItem.m in Sources */, | 1466 | 599B2CE01DE52F7E00B4F7FD /* UMShareMenuItem.m in Sources */, |
| 1612 | - BFD1CB531E2C66FA009D8A42 /* MoreViewController.swift in Sources */, | ||
| 1613 | BF7B75A31E305A6D0011D5C7 /* MJRefreshStateHeader.m in Sources */, | 1467 | BF7B75A31E305A6D0011D5C7 /* MJRefreshStateHeader.m in Sources */, |
| 1614 | 599B2CE21DE52F7E00B4F7FD /* UMSocialShareScrollView.m in Sources */, | 1468 | 599B2CE21DE52F7E00B4F7FD /* UMSocialShareScrollView.m in Sources */, |
| 1615 | BF25E0161DDAAF73003EC0C1 /* SVProgressAnimatedView.m in Sources */, | 1469 | BF25E0161DDAAF73003EC0C1 /* SVProgressAnimatedView.m in Sources */, |
| @@ -1624,35 +1478,26 @@ | @@ -1624,35 +1478,26 @@ | ||
| 1624 | 59C25B491ECAD643009FF276 /* MoreTVStationViewController.swift in Sources */, | 1478 | 59C25B491ECAD643009FF276 /* MoreTVStationViewController.swift in Sources */, |
| 1625 | 5904FC511ECA8B8C00E631FF /* TVStationViewController.swift in Sources */, | 1479 | 5904FC511ECA8B8C00E631FF /* TVStationViewController.swift in Sources */, |
| 1626 | BFBB83D31ECBEB4E008B404B /* JYScrollView.m in Sources */, | 1480 | BFBB83D31ECBEB4E008B404B /* JYScrollView.m in Sources */, |
| 1481 | + BFBB83E81ECC445D008B404B /* PersonalSettingViewController.swift in Sources */, | ||
| 1627 | BF25E0081DDAA36A003EC0C1 /* UIView+WebCache.m in Sources */, | 1482 | BF25E0081DDAA36A003EC0C1 /* UIView+WebCache.m in Sources */, |
| 1628 | 5904FC5D1ECA8ED400E631FF /* HomePageViewController.swift in Sources */, | 1483 | 5904FC5D1ECA8ED400E631FF /* HomePageViewController.swift in Sources */, |
| 1629 | BFBB83A91ECAE35E008B404B /* LeadViewController.swift in Sources */, | 1484 | BFBB83A91ECAE35E008B404B /* LeadViewController.swift in Sources */, |
| 1630 | - BF8A4C551DE02CE300F99896 /* MessageTableViewCell.swift in Sources */, | ||
| 1631 | - BFD1CB4C1E2C657B009D8A42 /* HomeTableViewCell.swift in Sources */, | ||
| 1632 | BF7B759C1E305A6D0011D5C7 /* MJRefreshAutoNormalFooter.m in Sources */, | 1485 | BF7B759C1E305A6D0011D5C7 /* MJRefreshAutoNormalFooter.m in Sources */, |
| 1633 | 5904FC4F1ECA8B8C00E631FF /* SearchTVStationListViewController.swift in Sources */, | 1486 | 5904FC4F1ECA8B8C00E631FF /* SearchTVStationListViewController.swift in Sources */, |
| 1634 | - BF7B75AE1E309F230011D5C7 /* AttentionTableViewCell.swift in Sources */, | ||
| 1635 | BFC076781E3445F3008BAC79 /* DownLoad.swift in Sources */, | 1487 | BFC076781E3445F3008BAC79 /* DownLoad.swift in Sources */, |
| 1636 | BF25DFE71DDAA36A003EC0C1 /* MultipartFormData.swift in Sources */, | 1488 | BF25DFE71DDAA36A003EC0C1 /* MultipartFormData.swift in Sources */, |
| 1637 | BF25DFF71DDAA36A003EC0C1 /* MKAnnotationView+WebCache.m in Sources */, | 1489 | BF25DFF71DDAA36A003EC0C1 /* MKAnnotationView+WebCache.m in Sources */, |
| 1638 | BF25DFFB1DDAA36A003EC0C1 /* SDImageCacheConfig.m in Sources */, | 1490 | BF25DFFB1DDAA36A003EC0C1 /* SDImageCacheConfig.m in Sources */, |
| 1639 | - BFB716B61E28AF4E00C5C516 /* LiveVideoSettingViewController.swift in Sources */, | ||
| 1640 | - BFB716B51E28AF4E00C5C516 /* LiveVideoSettingShareViewController.swift in Sources */, | ||
| 1641 | - BFDFDF091DD56C430040F102 /* LiveRoomDetailViewController.swift in Sources */, | ||
| 1642 | 5904FC4D1ECA8B8C00E631FF /* MicroCourseViewController.swift in Sources */, | 1491 | 5904FC4D1ECA8B8C00E631FF /* MicroCourseViewController.swift in Sources */, |
| 1643 | - 59A8731C1DDD9E0600BAC7FC /* CustomScrollView.swift in Sources */, | 1492 | + BFBB83E61ECC445D008B404B /* LoginViewController.swift in Sources */, |
| 1644 | BF25DFE21DDAA36A003EC0C1 /* AFError.swift in Sources */, | 1493 | BF25DFE21DDAA36A003EC0C1 /* AFError.swift in Sources */, |
| 1645 | BF25DFEF1DDAA36A003EC0C1 /* ServerTrustPolicy.swift in Sources */, | 1494 | BF25DFEF1DDAA36A003EC0C1 /* ServerTrustPolicy.swift in Sources */, |
| 1646 | BF25E0061DDAA36A003EC0C1 /* UIImageView+HighlightedWebCache.m in Sources */, | 1495 | BF25E0061DDAA36A003EC0C1 /* UIImageView+HighlightedWebCache.m in Sources */, |
| 1647 | BF25DFE41DDAA36A003EC0C1 /* DispatchQueue+Alamofire.swift in Sources */, | 1496 | BF25DFE41DDAA36A003EC0C1 /* DispatchQueue+Alamofire.swift in Sources */, |
| 1648 | BF25DFE81DDAA36A003EC0C1 /* NetworkReachabilityManager.swift in Sources */, | 1497 | BF25DFE81DDAA36A003EC0C1 /* NetworkReachabilityManager.swift in Sources */, |
| 1649 | BF25DFF31DDAA36A003EC0C1 /* Timeline.swift in Sources */, | 1498 | BF25DFF31DDAA36A003EC0C1 /* Timeline.swift in Sources */, |
| 1650 | - 59893BDF1E2C53E1004E7F81 /* AlivcInforViewController.swift in Sources */, | ||
| 1651 | - BFB716C91E28B5F200C5C516 /* LoginViewController.swift in Sources */, | ||
| 1652 | - 59F801971DD567C7000A78B0 /* AlivcLiveViewController.m in Sources */, | ||
| 1653 | BF25DFFE1DDAA36A003EC0C1 /* SDWebImageDownloader.m in Sources */, | 1499 | BF25DFFE1DDAA36A003EC0C1 /* SDWebImageDownloader.m in Sources */, |
| 1654 | BF7B75A51E305A6D0011D5C7 /* MJRefreshConst.m in Sources */, | 1500 | BF7B75A51E305A6D0011D5C7 /* MJRefreshConst.m in Sources */, |
| 1655 | - BF9D41271E29C20500719535 /* HomeDetailViewController.swift in Sources */, | ||
| 1656 | BF7B759B1E305A6D0011D5C7 /* MJRefreshAutoGifFooter.m in Sources */, | 1501 | BF7B759B1E305A6D0011D5C7 /* MJRefreshAutoGifFooter.m in Sources */, |
| 1657 | BF7B75A81E305A6D0011D5C7 /* UIScrollView+MJRefresh.m in Sources */, | 1502 | BF7B75A81E305A6D0011D5C7 /* UIScrollView+MJRefresh.m in Sources */, |
| 1658 | BF25E0021DDAA36A003EC0C1 /* UIButton+WebCache.m in Sources */, | 1503 | BF25E0021DDAA36A003EC0C1 /* UIButton+WebCache.m in Sources */, |
| @@ -1660,15 +1505,10 @@ | @@ -1660,15 +1505,10 @@ | ||
| 1660 | BF25DFF81DDAA36A003EC0C1 /* NSData+ImageContentType.m in Sources */, | 1505 | BF25DFF81DDAA36A003EC0C1 /* NSData+ImageContentType.m in Sources */, |
| 1661 | BF25E0151DDAAF73003EC0C1 /* SVIndefiniteAnimatedView.m in Sources */, | 1506 | BF25E0151DDAAF73003EC0C1 /* SVIndefiniteAnimatedView.m in Sources */, |
| 1662 | BFF5F4921DD5B7CA00D33B89 /* SwiftyJSON.swift in Sources */, | 1507 | BFF5F4921DD5B7CA00D33B89 /* SwiftyJSON.swift in Sources */, |
| 1663 | - BFDFDED11DD55C0D0040F102 /* ClassModel.swift in Sources */, | ||
| 1664 | BF7B75A91E305A6D0011D5C7 /* UIView+MJExtension.m in Sources */, | 1508 | BF7B75A91E305A6D0011D5C7 /* UIView+MJExtension.m in Sources */, |
| 1665 | - BF7B271E1E2F022E00BCF13D /* MyAttentionViewController.swift in Sources */, | ||
| 1666 | - 59F801A61DD567D8000A78B0 /* MainViewController.swift in Sources */, | ||
| 1667 | BF25DFEE1DDAA36A003EC0C1 /* Result.swift in Sources */, | 1509 | BF25DFEE1DDAA36A003EC0C1 /* Result.swift in Sources */, |
| 1668 | - BF7B75B11E31E3200011D5C7 /* LiveTypeListViewController.swift in Sources */, | ||
| 1669 | BFDFDED21DD55C0D0040F102 /* network.swift in Sources */, | 1510 | BFDFDED21DD55C0D0040F102 /* network.swift in Sources */, |
| 1670 | 599B2CE11DE52F7E00B4F7FD /* UMShareMenuSelectionView.m in Sources */, | 1511 | 599B2CE11DE52F7E00B4F7FD /* UMShareMenuSelectionView.m in Sources */, |
| 1671 | - 59C25B4D1ECAFAFC009FF276 /* NavigationViewController.swift in Sources */, | ||
| 1672 | BF25DFFF1DDAA36A003EC0C1 /* SDWebImageDownloaderOperation.m in Sources */, | 1512 | BF25DFFF1DDAA36A003EC0C1 /* SDWebImageDownloaderOperation.m in Sources */, |
| 1673 | BF25DFF01DDAA36A003EC0C1 /* SessionDelegate.swift in Sources */, | 1513 | BF25DFF01DDAA36A003EC0C1 /* SessionDelegate.swift in Sources */, |
| 1674 | BF25DFE31DDAA36A003EC0C1 /* Alamofire.swift in Sources */, | 1514 | BF25DFE31DDAA36A003EC0C1 /* Alamofire.swift in Sources */, |
| @@ -1678,20 +1518,15 @@ | @@ -1678,20 +1518,15 @@ | ||
| 1678 | 596026501DDD469200C6B5E8 /* RiverRunCommentManager.m in Sources */, | 1518 | 596026501DDD469200C6B5E8 /* RiverRunCommentManager.m in Sources */, |
| 1679 | BF7B759A1E305A6D0011D5C7 /* MJRefreshHeader.m in Sources */, | 1519 | BF7B759A1E305A6D0011D5C7 /* MJRefreshHeader.m in Sources */, |
| 1680 | BF7B75A61E305A6D0011D5C7 /* NSBundle+MJRefresh.m in Sources */, | 1520 | BF7B75A61E305A6D0011D5C7 /* NSBundle+MJRefresh.m in Sources */, |
| 1681 | - 59BA132D1E25D14F00540DE0 /* MoivePlayerViewController.swift in Sources */, | ||
| 1682 | 5960264F1DDD469200C6B5E8 /* CommentTextLayer.m in Sources */, | 1521 | 5960264F1DDD469200C6B5E8 /* CommentTextLayer.m in Sources */, |
| 1683 | BFDFDED01DD55C0D0040F102 /* account.swift in Sources */, | 1522 | BFDFDED01DD55C0D0040F102 /* account.swift in Sources */, |
| 1684 | - 5904FC591ECA8C0000E631FF /* UserViewController.swift in Sources */, | ||
| 1685 | - BF9D41251E29C17100719535 /* HomeViewController.swift in Sources */, | ||
| 1686 | - BFD1CB551E2CA527009D8A42 /* HotMoreViewController.swift in Sources */, | ||
| 1687 | - BF69779B1E2DEFCF006FA934 /* LiveListViewController.swift in Sources */, | ||
| 1688 | 59C25B4B1ECAD84C009FF276 /* TVStationInforViewController.swift in Sources */, | 1523 | 59C25B4B1ECAD84C009FF276 /* TVStationInforViewController.swift in Sources */, |
| 1689 | BF25DFF51DDAA36A003EC0C1 /* MBProgressHUD.m in Sources */, | 1524 | BF25DFF51DDAA36A003EC0C1 /* MBProgressHUD.m in Sources */, |
| 1690 | - BFD1CB501E2C657B009D8A42 /* LiveTitleView.swift in Sources */, | ||
| 1691 | BF25E0191DDAAF73003EC0C1 /* SVRadialGradientLayer.m in Sources */, | 1525 | BF25E0191DDAAF73003EC0C1 /* SVRadialGradientLayer.m in Sources */, |
| 1692 | BF25E0001DDAA36A003EC0C1 /* SDWebImageManager.m in Sources */, | 1526 | BF25E0001DDAA36A003EC0C1 /* SDWebImageManager.m in Sources */, |
| 1693 | BF25E0011DDAA36A003EC0C1 /* SDWebImagePrefetcher.m in Sources */, | 1527 | BF25E0011DDAA36A003EC0C1 /* SDWebImagePrefetcher.m in Sources */, |
| 1694 | BF7B75A71E305A6D0011D5C7 /* UIScrollView+MJExtension.m in Sources */, | 1528 | BF7B75A71E305A6D0011D5C7 /* UIScrollView+MJExtension.m in Sources */, |
| 1529 | + BFBB83D61ECC4446008B404B /* PassWordView.swift in Sources */, | ||
| 1695 | BF7B75971E305A6D0011D5C7 /* MJRefreshBackFooter.m in Sources */, | 1530 | BF7B75971E305A6D0011D5C7 /* MJRefreshBackFooter.m in Sources */, |
| 1696 | BF7B75981E305A6D0011D5C7 /* MJRefreshComponent.m in Sources */, | 1531 | BF7B75981E305A6D0011D5C7 /* MJRefreshComponent.m in Sources */, |
| 1697 | BF25DFEA1DDAA36A003EC0C1 /* ParameterEncoding.swift in Sources */, | 1532 | BF25DFEA1DDAA36A003EC0C1 /* ParameterEncoding.swift in Sources */, |
| @@ -1702,22 +1537,17 @@ | @@ -1702,22 +1537,17 @@ | ||
| 1702 | 5904FC611ECA930D00E631FF /* MViewController.swift in Sources */, | 1537 | 5904FC611ECA930D00E631FF /* MViewController.swift in Sources */, |
| 1703 | BF25DFF61DDAA36A003EC0C1 /* FLAnimatedImageView+WebCache.m in Sources */, | 1538 | BF25DFF61DDAA36A003EC0C1 /* FLAnimatedImageView+WebCache.m in Sources */, |
| 1704 | BF7B759D1E305A6D0011D5C7 /* MJRefreshAutoStateFooter.m in Sources */, | 1539 | BF7B759D1E305A6D0011D5C7 /* MJRefreshAutoStateFooter.m in Sources */, |
| 1705 | - 5906A0741E349FA500D2D814 /* PassWordView.swift in Sources */, | ||
| 1706 | BF25E0071DDAA36A003EC0C1 /* UIImageView+WebCache.m in Sources */, | 1540 | BF25E0071DDAA36A003EC0C1 /* UIImageView+WebCache.m in Sources */, |
| 1707 | BF25DFE91DDAA36A003EC0C1 /* Notifications.swift in Sources */, | 1541 | BF25DFE91DDAA36A003EC0C1 /* Notifications.swift in Sources */, |
| 1708 | BF25DFF21DDAA36A003EC0C1 /* TaskDelegate.swift in Sources */, | 1542 | BF25DFF21DDAA36A003EC0C1 /* TaskDelegate.swift in Sources */, |
| 1709 | - BFB716C81E28B5F200C5C516 /* LiveRoomsViewController.swift in Sources */, | ||
| 1710 | BF7B75A11E305A6D0011D5C7 /* MJRefreshGifHeader.m in Sources */, | 1543 | BF7B75A11E305A6D0011D5C7 /* MJRefreshGifHeader.m in Sources */, |
| 1711 | 599B2CE31DE52F7E00B4F7FD /* UMSocialUIManager.m in Sources */, | 1544 | 599B2CE31DE52F7E00B4F7FD /* UMSocialUIManager.m in Sources */, |
| 1712 | - BFB716CB1E28B5F200C5C516 /* RegisterViewController.swift in Sources */, | ||
| 1713 | BF25DFF91DDAA36A003EC0C1 /* NSImage+WebCache.m in Sources */, | 1545 | BF25DFF91DDAA36A003EC0C1 /* NSImage+WebCache.m in Sources */, |
| 1714 | - BFB716CA1E28B5F200C5C516 /* PersonalSettingViewController.swift in Sources */, | ||
| 1715 | 59F8014F1DD2C7AD000A78B0 /* AppDelegate.swift in Sources */, | 1546 | 59F8014F1DD2C7AD000A78B0 /* AppDelegate.swift in Sources */, |
| 1716 | BF25DFED1DDAA36A003EC0C1 /* ResponseSerialization.swift in Sources */, | 1547 | BF25DFED1DDAA36A003EC0C1 /* ResponseSerialization.swift in Sources */, |
| 1717 | BF25E0031DDAA36A003EC0C1 /* UIImage+GIF.m in Sources */, | 1548 | BF25E0031DDAA36A003EC0C1 /* UIImage+GIF.m in Sources */, |
| 1718 | - 59F801A21DD567D8000A78B0 /* MyViewController.swift in Sources */, | 1549 | + BFBB83E91ECC445D008B404B /* RegisterViewController.swift in Sources */, |
| 1719 | 596026511DDD469200C6B5E8 /* RiverRunCommentUtil.m in Sources */, | 1550 | 596026511DDD469200C6B5E8 /* RiverRunCommentUtil.m in Sources */, |
| 1720 | - BFD1CB4E1E2C657B009D8A42 /* liveTitleCollectionCell.swift in Sources */, | ||
| 1721 | BF25DFF11DDAA36A003EC0C1 /* SessionManager.swift in Sources */, | 1551 | BF25DFF11DDAA36A003EC0C1 /* SessionManager.swift in Sources */, |
| 1722 | ); | 1552 | ); |
| 1723 | runOnlyForDeploymentPostprocessing = 0; | 1553 | runOnlyForDeploymentPostprocessing = 0; |
YouerLiveVideo/YouerLiveVideo.xcodeproj/project.xcworkspace/xcuserdata/jun.xcuserdatad/UserInterfaceState.xcuserstate
No preview for this file type
YouerLiveVideo/YouerLiveVideo/Aliv/AlivcLiveViewController.h
| @@ -1,21 +0,0 @@ | @@ -1,21 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// AlivcLiveViewController.h | ||
| 3 | -// DevAlivcLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by lyz on 16/3/21. | ||
| 6 | -// Copyright © 2016年 Alivc. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -#import <UIKit/UIKit.h> | ||
| 10 | -@interface AlivcLiveViewController : UIViewController | ||
| 11 | - | ||
| 12 | -@property (weak, nonatomic) IBOutlet UITextView *textView; | ||
| 13 | -@property (nonatomic, assign) BOOL isScreenHorizontal; | ||
| 14 | -@property (strong,nonatomic) id liveDetail; | ||
| 15 | -@property (strong,nonatomic) NSString * userNameString; | ||
| 16 | -@property (assign, nonatomic) NSInteger definition; | ||
| 17 | -@property (assign, nonatomic) BOOL isApplyChat; | ||
| 18 | -@property (assign, nonatomic) NSTimeInterval endTimer; | ||
| 19 | -- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil url:(NSString *)url; | ||
| 20 | - | ||
| 21 | -@end |
YouerLiveVideo/YouerLiveVideo/Aliv/AlivcLiveViewController.m
| @@ -1,733 +0,0 @@ | @@ -1,733 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// AlivcLiveViewController.m | ||
| 3 | -// DevAlivcLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by yly on 16/3/21. | ||
| 6 | -// Copyright © 2016年 Alivc. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -#import "AlivcLiveViewController.h" | ||
| 10 | -#import <AlivcLiveVideo/AlivcLiveVideo.h> | ||
| 11 | -#import <CoreTelephony/CTCallCenter.h> | ||
| 12 | -#import <CoreTelephony/CTCall.h> | ||
| 13 | -#import "RiverRunCommentUtil.h" | ||
| 14 | -#import "RiverRunCommentManager.h" | ||
| 15 | -#import "YouerLiveVideo-Swift.h" | ||
| 16 | - | ||
| 17 | -@interface AlivcLiveViewController ()<AlivcLiveSessionDelegate,UITableViewDelegate,UITableViewDataSource,UITextFieldDelegate,RiverRunCommentManagerDelegate,NIMChatManagerDelegate> | ||
| 18 | -@property (weak, nonatomic) IBOutlet UIView *definitionView; | ||
| 19 | -@property (weak, nonatomic) IBOutlet UIView *sendWordView; | ||
| 20 | -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *sendWordBottomSpace; | ||
| 21 | - | ||
| 22 | -@property (weak, nonatomic) IBOutlet UITextField *messageStrText; | ||
| 23 | -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *userPhotoHeight; | ||
| 24 | -@property (weak, nonatomic) IBOutlet UIButton *skinBtn; | ||
| 25 | -@property (nonatomic, strong) CTCallCenter *callCenter; | ||
| 26 | -@property (weak, nonatomic) IBOutlet UIButton *setCaptureBtn; | ||
| 27 | -@property (weak, nonatomic) IBOutlet UITableView *chatTableView; | ||
| 28 | -@property (weak, nonatomic) IBOutlet UIView *subtitleLocationView; | ||
| 29 | -@property (weak, nonatomic) IBOutlet UIButton *subTitleStart; | ||
| 30 | -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *shareBtnHeight; | ||
| 31 | -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *shareBtnTopSpace; | ||
| 32 | - | ||
| 33 | -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *chatTableViewHeight; | ||
| 34 | - | ||
| 35 | -@property (strong, nonatomic) NSMutableArray *commentArray; | ||
| 36 | -@property (strong, nonatomic) NSTimer *commentTimer; | ||
| 37 | -@property (strong, nonatomic) NSTimer *stopTimer; | ||
| 38 | -@property (strong, nonatomic) RiverRunCommentManager *manager; | ||
| 39 | -@property CGFloat commentNUM; | ||
| 40 | -@property (weak, nonatomic) IBOutlet UILabel *userName; | ||
| 41 | -@property (weak, nonatomic) IBOutlet UILabel *roomActivePersonNumber; | ||
| 42 | -@property (weak, nonatomic) IBOutlet UILabel *roomName; | ||
| 43 | -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *sendWordHeight; | ||
| 44 | -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *fullScreenBtnHeight; | ||
| 45 | - | ||
| 46 | -@property (strong, nonatomic) NSMutableArray * messageArr; | ||
| 47 | -@property (assign, nonatomic) NSInteger activeNum; | ||
| 48 | -@property (assign, nonatomic) CGAffineTransform transFront; | ||
| 49 | -@property (assign, nonatomic) CGAffineTransform transBack; | ||
| 50 | - | ||
| 51 | -@end | ||
| 52 | - | ||
| 53 | -@implementation AlivcLiveViewController{ | ||
| 54 | - AlivcLiveSession *_liveSession; | ||
| 55 | - NSString *_url; | ||
| 56 | - NSTimer *_timer; | ||
| 57 | - UITableView * actionTableView; | ||
| 58 | - NSFileHandle *_handle; | ||
| 59 | - AVCaptureDevicePosition _currentPosition; | ||
| 60 | - NSUInteger _last; | ||
| 61 | - NSMutableArray *_logArray; | ||
| 62 | - | ||
| 63 | - CGFloat _lastPinchDistance; | ||
| 64 | - | ||
| 65 | - BOOL _isCTCallStateDisconnected; | ||
| 66 | - NSArray * definitionArr; | ||
| 67 | - LiveDetail * infor; | ||
| 68 | -} | ||
| 69 | - | ||
| 70 | -// 返回状态栏的样式 | ||
| 71 | -- (UIStatusBarStyle)preferredStatusBarStyle | ||
| 72 | -{ | ||
| 73 | - return UIStatusBarStyleLightContent; | ||
| 74 | -} | ||
| 75 | - | ||
| 76 | -- (BOOL)prefersStatusBarHidden | ||
| 77 | -{ | ||
| 78 | - return YES; // 返回NO表示要显示,返回YES将hiden | ||
| 79 | -} | ||
| 80 | - | ||
| 81 | -- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil url:(NSString *)url{ | ||
| 82 | - self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; | ||
| 83 | - _url = url; | ||
| 84 | - return self; | ||
| 85 | -} | ||
| 86 | - | ||
| 87 | -- (void)viewDidLoad { | ||
| 88 | - [super viewDidLoad]; | ||
| 89 | - [[[NIMSDK sharedSDK] chatManager] addDelegate:self]; | ||
| 90 | - [[XSTLiveManager shareXSTLiveManager] enterLiveWithRoomId:[_liveDetail f_RoomId] completion:^( BOOL succ, NIMChatroom * room, NIMChatroomMember * member) { | ||
| 91 | - if (!succ) { | ||
| 92 | - [self dismissViewControllerAnimated:YES completion:nil]; | ||
| 93 | - } | ||
| 94 | - }]; | ||
| 95 | - if (!_isApplyChat) { | ||
| 96 | - _chatTableView.hidden = YES; | ||
| 97 | - _sendWordView.hidden = YES; | ||
| 98 | - _sendWordHeight.constant = 0; | ||
| 99 | - } | ||
| 100 | - | ||
| 101 | - AppDelegate * appdelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; | ||
| 102 | - appdelegate.blockRotation = YES; | ||
| 103 | - _shareBtnTopSpace.constant = 0; | ||
| 104 | - _shareBtnHeight.constant = 0; | ||
| 105 | - infor = (LiveDetail *)_liveDetail; | ||
| 106 | - _roomName.text = infor.f_LiveName; | ||
| 107 | - _userName.text = _userNameString; | ||
| 108 | - _messageArr = [[NSMutableArray alloc] init]; | ||
| 109 | - self.view.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1.00f]; | ||
| 110 | - | ||
| 111 | - [_chatTableView setBackgroundColor:[[UIColor groupTableViewBackgroundColor] colorWithAlphaComponent:1]]; | ||
| 112 | - [self.view sendSubviewToBack:_subtitleLocationView]; | ||
| 113 | - | ||
| 114 | - _commentTimer = [NSTimer timerWithTimeInterval:0.1f | ||
| 115 | - target:self selector:@selector(commentTimerFired) | ||
| 116 | - userInfo:nil repeats:YES]; | ||
| 117 | - _commentNUM = 0; | ||
| 118 | - _stopTimer = [NSTimer timerWithTimeInterval:60 | ||
| 119 | - target:self selector:@selector(isStopPlay) | ||
| 120 | - userInfo:nil repeats:YES]; | ||
| 121 | - [[NSRunLoop currentRunLoop] addTimer:_commentTimer forMode:NSRunLoopCommonModes]; | ||
| 122 | - [[NSRunLoop currentRunLoop] addTimer:_stopTimer forMode:NSRunLoopCommonModes]; | ||
| 123 | - _commentArray = [[NSMutableArray alloc] init]; | ||
| 124 | - _manager = [[RiverRunCommentManager alloc]initWithComments:_commentArray delegate:self andPresentView:self.view videoSize:_subtitleLocationView.bounds.size screenSize:_subtitleLocationView.bounds.size isLandscape:[[UIApplication sharedApplication] statusBarOrientation]]; | ||
| 125 | - | ||
| 126 | - if (_isScreenHorizontal) { | ||
| 127 | - _chatTableViewHeight.constant = 0; | ||
| 128 | - CGSize size = CGSizeMake([[UIScreen mainScreen] bounds].size.height, _subtitleLocationView.bounds.size.width-100); | ||
| 129 | - _manager = [[RiverRunCommentManager alloc]initWithComments:_commentArray delegate:self andPresentView:self.view videoSize:size screenSize:size isLandscape:[[UIApplication sharedApplication] statusBarOrientation]]; | ||
| 130 | - } | ||
| 131 | - | ||
| 132 | - | ||
| 133 | - [_manager start]; | ||
| 134 | - | ||
| 135 | - | ||
| 136 | - _sendWordView.backgroundColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:0.5]; | ||
| 137 | - _logArray = [NSMutableArray array]; | ||
| 138 | - | ||
| 139 | - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appResignActive) name:UIApplicationWillResignActiveNotification object:nil]; | ||
| 140 | - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appBecomeActive) name:UIApplicationDidBecomeActiveNotification object:nil]; | ||
| 141 | - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil]; | ||
| 142 | - UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGesture:)]; | ||
| 143 | - [self.view addGestureRecognizer:gesture]; | ||
| 144 | - | ||
| 145 | - UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchGesture:)]; | ||
| 146 | - [self.view addGestureRecognizer:pinch]; | ||
| 147 | - | ||
| 148 | - // _timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timeUpdate) userInfo:nil repeats:YES]; | ||
| 149 | - | ||
| 150 | - [self testPushCapture]; | ||
| 151 | - // NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:@"log.txt"]; | ||
| 152 | - // [[NSFileManager defaultManager] removeItemAtPath:path error:nil]; | ||
| 153 | - // [[NSFileManager defaultManager] createFileAtPath:path contents:nil attributes:nil]; | ||
| 154 | - // _handle = [NSFileHandle fileHandleForWritingAtPath:path]; | ||
| 155 | - // | ||
| 156 | -} | ||
| 157 | - | ||
| 158 | --(void)isStopPlay{ | ||
| 159 | - NSTimeInterval date = [[[NSDate alloc] init] timeIntervalSince1970]; | ||
| 160 | - if (_endTimer - date < 60) { | ||
| 161 | - if (date >= _endTimer) { | ||
| 162 | - [self closePlayer]; | ||
| 163 | - }else{ | ||
| 164 | - [self.view makeToast:@"直播时间即将结束,请您做好准备" duration:5 position:CSToastPositionCenter]; | ||
| 165 | - } | ||
| 166 | - } | ||
| 167 | -} | ||
| 168 | - | ||
| 169 | --(void)viewWillAppear:(BOOL)animated{ | ||
| 170 | - [super viewWillAppear:animated]; | ||
| 171 | - // [self.navigationController setNavigationBarHidden:NO]; | ||
| 172 | - [[XSTLiveManager shareXSTLiveManager] fetchLiveInfoWithRoomId:[_liveDetail f_RoomId] completion:^(BOOL suc, NIMChatroom * room) { | ||
| 173 | - if (suc) { | ||
| 174 | - self.activeNum = [room onlineUserCount]; | ||
| 175 | - self.roomActivePersonNumber.text = [NSString stringWithFormat:@"在线人数:%ld",self.activeNum]; | ||
| 176 | - } | ||
| 177 | - }]; | ||
| 178 | - | ||
| 179 | - // CGAffineTransform transform; | ||
| 180 | - // if (_isScreenHorizontal && _liveSession.devicePosition == AVCaptureDevicePositionFront){ | ||
| 181 | - // transform = CGAffineTransformMakeRotation(-M_PI_2); | ||
| 182 | - // }else{ | ||
| 183 | - // transform = CGAffineTransformMakeRotation(0); | ||
| 184 | - // } | ||
| 185 | - // [_liveSession previewView].transform = transform; | ||
| 186 | - // [[_liveSession previewView] layoutSubviews]; | ||
| 187 | - | ||
| 188 | - // if (_isScreenHorizontal){ | ||
| 189 | - // [self.navigationController setNavigationBarHidden:YES]; | ||
| 190 | - // CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI/2); | ||
| 191 | - // self.view.transform = transform; | ||
| 192 | - // self.view.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width); | ||
| 193 | - // [self.view layoutSubviews]; | ||
| 194 | - // CGAffineTransform transforms = CGAffineTransformMakeRotation(-M_PI/2); | ||
| 195 | - // [_liveSession previewView].transform = transforms; | ||
| 196 | - // [_liveSession previewView].frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width); | ||
| 197 | - // | ||
| 198 | - // [[_liveSession previewView] layoutSubviews]; | ||
| 199 | - // } | ||
| 200 | -} | ||
| 201 | - | ||
| 202 | -- (CGFloat)willShowComments:(BOOL)seek { | ||
| 203 | - return _commentNUM; | ||
| 204 | -} | ||
| 205 | - | ||
| 206 | --(void)commentTimerFired | ||
| 207 | -{ | ||
| 208 | - _commentNUM+=0.1; | ||
| 209 | -} | ||
| 210 | - | ||
| 211 | -- (NSArray*)createVideoComment:(NIMMessage *)message { | ||
| 212 | - NSMutableArray *videoComments = [NSMutableArray array]; | ||
| 213 | - NSInteger vpos = 200; | ||
| 214 | - | ||
| 215 | - NSDictionary *commentInfo = @{ | ||
| 216 | - @"vpos": @(vpos), | ||
| 217 | - @"body": [message text], | ||
| 218 | - @"position": @([RiverRunCommentUtil commentPosition:[RiverRunCommentUtil getRandomPosition]]), | ||
| 219 | - @"fontSize": @([RiverRunCommentUtil commentSize:[RiverRunCommentUtil getRandomFontSize]]), | ||
| 220 | - @"color": @"0xffffff", | ||
| 221 | - @"duration":@(3.f), | ||
| 222 | - }; | ||
| 223 | - [videoComments addObject:commentInfo]; | ||
| 224 | - return videoComments; | ||
| 225 | -} | ||
| 226 | - | ||
| 227 | --(void)onRecvMessages:(NSArray<NIMMessage *> *)messages{ | ||
| 228 | - BOOL isScroll = NO; | ||
| 229 | - if ([_chatTableView cellForRowAtIndexPath:[NSIndexPath indexPathForItem:_messageArr.count-1 inSection:0]]){ | ||
| 230 | - isScroll = YES; | ||
| 231 | - } | ||
| 232 | - for (NIMMessage * message in messages) { | ||
| 233 | - if (message.messageType == NIMMessageTypeNotification){ | ||
| 234 | - if ([((NIMChatroomNotificationContent *)((NIMNotificationObject *)message.messageObject).content).notifyExt containsString:@"name"]){ | ||
| 235 | - self.activeNum = self.activeNum+1; | ||
| 236 | - }else{ | ||
| 237 | - self.activeNum = self.activeNum-1; | ||
| 238 | - } | ||
| 239 | - self.roomActivePersonNumber.text = [NSString stringWithFormat:@"在线人数:%ld",self.activeNum]; | ||
| 240 | - } | ||
| 241 | - if ([[[message session] sessionId] isEqualToString:[_liveDetail f_RoomId]]&&message.text != nil){ | ||
| 242 | - [_messageArr addObject:message]; | ||
| 243 | - if (!_subTitleStart.isSelected){ | ||
| 244 | - [_manager.comments addObjectsFromArray:[self createVideoComment:message]] ; | ||
| 245 | - } | ||
| 246 | - } | ||
| 247 | - } | ||
| 248 | - [_chatTableView reloadData]; | ||
| 249 | - if (isScroll) { | ||
| 250 | - [_chatTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForItem:_messageArr.count-1 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:YES]; | ||
| 251 | - } | ||
| 252 | - | ||
| 253 | - | ||
| 254 | -} | ||
| 255 | - | ||
| 256 | --(void)sendMessage:(NIMMessage *)message didCompleteWithError:(NSError *)error{ | ||
| 257 | - if (error == nil){ | ||
| 258 | - if (!_subTitleStart.isSelected){ | ||
| 259 | - [_manager.comments addObjectsFromArray:[self createVideoComment:message]] ; | ||
| 260 | - } | ||
| 261 | - [_messageArr addObject:message]; | ||
| 262 | - [_chatTableView reloadData]; | ||
| 263 | - _messageStrText.text = @""; | ||
| 264 | - [_chatTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForItem:_messageArr.count-1 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:YES]; | ||
| 265 | - }else{ | ||
| 266 | - | ||
| 267 | - } | ||
| 268 | -} | ||
| 269 | - | ||
| 270 | -- (IBAction)sendMessage:(id)sender { | ||
| 271 | - [[XSTLiveManager shareXSTLiveManager] sendMessageWithStr:_messageStrText.text roomId:[_liveDetail f_RoomId] completion:^(BOOL suc) { | ||
| 272 | - }]; | ||
| 273 | -} | ||
| 274 | -/* | ||
| 275 | --(void)previewViewTrans{ | ||
| 276 | - if (_setCaptureBtn.isSelected){ | ||
| 277 | - [_liveSession previewView].transform = _transFront; | ||
| 278 | - }else{ | ||
| 279 | - [_liveSession previewView].transform = _transBack; | ||
| 280 | - } | ||
| 281 | -} | ||
| 282 | -*/ | ||
| 283 | --(void)keyBoardWillChangeFrame:(NSNotification*)noti{ | ||
| 284 | - NSDictionary * dic = noti.userInfo; | ||
| 285 | - CGRect rect = [[dic objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; | ||
| 286 | - [UIView animateWithDuration:0.25 animations:^{ | ||
| 287 | - self.sendWordBottomSpace.constant = [UIScreen mainScreen].bounds.size.height - rect.origin.y; | ||
| 288 | - [self.sendWordView layoutIfNeeded]; | ||
| 289 | - }]; | ||
| 290 | -} | ||
| 291 | -- (IBAction)expressionBtnClickAction:(UIButton*)sender { | ||
| 292 | - if (sender.isSelected){ | ||
| 293 | - [UIView animateWithDuration:0.25 animations:^{ | ||
| 294 | - self.sendWordBottomSpace.constant = 216; | ||
| 295 | - [self.sendWordView layoutIfNeeded]; | ||
| 296 | - }]; | ||
| 297 | - }else{ | ||
| 298 | - [UIView animateWithDuration:0.25 animations:^{ | ||
| 299 | - self.sendWordBottomSpace.constant = 0; | ||
| 300 | - [self.sendWordView layoutIfNeeded]; | ||
| 301 | - }]; | ||
| 302 | - } | ||
| 303 | -} | ||
| 304 | - | ||
| 305 | --(BOOL)textFieldShouldReturn:(UITextField *)textField{ | ||
| 306 | - [textField resignFirstResponder]; | ||
| 307 | - return YES; | ||
| 308 | -} | ||
| 309 | - | ||
| 310 | -- (void)timeUpdate{ | ||
| 311 | - AlivcLDebugInfo *i = [_liveSession dumpDebugInfo]; | ||
| 312 | - NSDate *date = [NSDate dateWithTimeIntervalSince1970:i.connectStatusChangeTime]; | ||
| 313 | - | ||
| 314 | - NSMutableString *msg = [[NSMutableString alloc] init]; | ||
| 315 | - [msg appendFormat:@"周期性延迟(%0.2fms)\n",i.cycleDelay]; | ||
| 316 | - [msg appendFormat:@"bitrate(%zd) 当前buffer视频帧数(%zd)\n",[_liveSession alivcLiveVideoBitRate] ,_liveSession.dumpDebugInfo.localBufferVideoCount]; | ||
| 317 | - [msg appendFormat:@" 所有编码帧数(%zd) 所有发送帧数(%zd)\n",i.encodeFrameCount, i.pushFrameCount]; | ||
| 318 | - [msg appendFormat:@"编码帧数%0.2f 编码速度%0.2fKB/s 当前上传速度%0.2fKB/s\n", i.fps,i.encodeSpeed, i.speed/1024]; | ||
| 319 | - [msg appendFormat:@"本地buffer大小%lluB 当前上传数据大小(%lluB) status(%zd) %@",i.localBufferSize, i.pushSize, i.connectStatus, date]; | ||
| 320 | - [msg appendFormat:@" 编码耗时%0.2fms\n",i.localDelay]; | ||
| 321 | - [msg appendFormat:@"当前输出流Video:%zd\n当前输出流audio pts:%zd\n", i.currentVideoPTS,i.currentAudioPTS]; | ||
| 322 | - | ||
| 323 | - // NSLog(@"%@", msg); | ||
| 324 | - | ||
| 325 | - // _textView.text = msg; | ||
| 326 | - // _textView.text = @"正在直播"; | ||
| 327 | - [_logArray addObject:msg]; | ||
| 328 | - | ||
| 329 | - // NSLog(@"%@", i.eventArray); | ||
| 330 | -} | ||
| 331 | - | ||
| 332 | -- (void)tapGesture:(UITapGestureRecognizer *)gesture{ | ||
| 333 | - CGPoint point = [gesture locationInView:self.view]; | ||
| 334 | - CGPoint percentPoint = CGPointZero; | ||
| 335 | - percentPoint.x = point.x / CGRectGetWidth(self.view.bounds); | ||
| 336 | - percentPoint.y = point.y / CGRectGetHeight(self.view.bounds); | ||
| 337 | - [_liveSession alivcLiveVideoFocusAtAdjustedPoint:percentPoint autoFocus:YES]; | ||
| 338 | - | ||
| 339 | -} | ||
| 340 | - | ||
| 341 | -- (void)pinchGesture:(UIPinchGestureRecognizer *)gesture { | ||
| 342 | - | ||
| 343 | - if (_currentPosition == AVCaptureDevicePositionFront) { | ||
| 344 | - return; | ||
| 345 | - } | ||
| 346 | - | ||
| 347 | - if (gesture.numberOfTouches != 2) { | ||
| 348 | - return; | ||
| 349 | - } | ||
| 350 | - CGPoint p1 = [gesture locationOfTouch:0 inView:self.view]; | ||
| 351 | - CGPoint p2 = [gesture locationOfTouch:1 inView:self.view]; | ||
| 352 | - CGFloat dx = (p2.x - p1.x); | ||
| 353 | - CGFloat dy = (p2.y - p1.y); | ||
| 354 | - CGFloat dist = sqrt(dx*dx + dy*dy); | ||
| 355 | - if (gesture.state == UIGestureRecognizerStateBegan) { | ||
| 356 | - _lastPinchDistance = dist; | ||
| 357 | - } | ||
| 358 | - | ||
| 359 | - CGFloat change = dist - _lastPinchDistance; | ||
| 360 | - // change = change / (CGRectGetWidth(self.view.bounds) * 0.5) * 2.0; | ||
| 361 | - // | ||
| 362 | - [_liveSession alivcLiveVideoZoomCamera:(change / 1000 )]; | ||
| 363 | - | ||
| 364 | -} | ||
| 365 | - | ||
| 366 | -- (void)viewDidAppear:(BOOL)animated{ | ||
| 367 | - [super viewDidAppear:animated]; | ||
| 368 | -} | ||
| 369 | - | ||
| 370 | --(void)viewWillDisappear:(BOOL)animated{ | ||
| 371 | - [self destroySession]; | ||
| 372 | - [[[NIMSDK sharedSDK] chatManager] removeDelegate:self]; | ||
| 373 | - [[XSTLiveManager shareXSTLiveManager] removeLiveWithRoomId:[_liveDetail f_RoomId] completion:^(BOOL suc) { | ||
| 374 | - if (suc) { | ||
| 375 | - | ||
| 376 | - } | ||
| 377 | - }]; | ||
| 378 | -} | ||
| 379 | - | ||
| 380 | -- (void)appResignActive{ | ||
| 381 | - [self destroySession]; | ||
| 382 | - | ||
| 383 | - // 监听电话 | ||
| 384 | - _callCenter = [[CTCallCenter alloc] init]; | ||
| 385 | - _isCTCallStateDisconnected = NO; | ||
| 386 | - _callCenter.callEventHandler = ^(CTCall* call) { | ||
| 387 | - if ([call.callState isEqualToString:CTCallStateDisconnected]) | ||
| 388 | - { | ||
| 389 | - _isCTCallStateDisconnected = YES; | ||
| 390 | - } | ||
| 391 | - else if([call.callState isEqualToString:CTCallStateConnected]) | ||
| 392 | - | ||
| 393 | - { | ||
| 394 | - _callCenter = nil; | ||
| 395 | - } | ||
| 396 | - }; | ||
| 397 | - | ||
| 398 | -} | ||
| 399 | - | ||
| 400 | -- (void)appBecomeActive{ | ||
| 401 | - | ||
| 402 | - if (_isCTCallStateDisconnected) { | ||
| 403 | - sleep(2); | ||
| 404 | - } | ||
| 405 | - | ||
| 406 | - [self testPushCapture]; | ||
| 407 | - [self supportedInterfaceOrientations]; | ||
| 408 | -} | ||
| 409 | - | ||
| 410 | -- (void)testPushCapture{ | ||
| 411 | - | ||
| 412 | - AlivcLConfiguration *configuration = [[AlivcLConfiguration alloc] init]; | ||
| 413 | - configuration.url = [NSString stringWithFormat:@"rtmp://video-center.alivecdn.com/LiveVod/S%@?vhost=live.on168.com.cn",_url]; | ||
| 414 | - if (_definition == 0) { | ||
| 415 | - configuration.videoSize = CGSizeMake(360, 640);// 横屏状态宽高不需要互换 | ||
| 416 | - configuration.videoBitRate = 400 * 1000; | ||
| 417 | - }else if (_definition == 1){ | ||
| 418 | - configuration.videoSize = CGSizeMake(480, 640*4/3);// 横屏状态宽高不需要互换 | ||
| 419 | - configuration.videoBitRate = 800 * 1000; | ||
| 420 | - }else if (_definition == 2){ | ||
| 421 | - configuration.videoSize = CGSizeMake(720, 1280);// 横屏状态宽高不需要互换 | ||
| 422 | - configuration.videoBitRate = 1500 * 1000; | ||
| 423 | - } | ||
| 424 | - configuration.videoMaxBitRate = 1500 * 1000; | ||
| 425 | - configuration.videoMinBitRate = 400 * 1000; | ||
| 426 | - configuration.audioBitRate = 96 * 1000; | ||
| 427 | - configuration.fps = 20; | ||
| 428 | - configuration.preset = AVCaptureSessionPresetiFrame1280x720; | ||
| 429 | - configuration.screenOrientation = _isScreenHorizontal; | ||
| 430 | - configuration.reconnectTimeout = 5; | ||
| 431 | - if (_currentPosition) { | ||
| 432 | - configuration.position = _currentPosition; | ||
| 433 | - } else { | ||
| 434 | - configuration.position = AVCaptureDevicePositionBack; | ||
| 435 | - _currentPosition = AVCaptureDevicePositionBack; | ||
| 436 | - } | ||
| 437 | -// if (_isScreenHorizontal){ | ||
| 438 | -// _setCaptureBtn.hidden = YES; | ||
| 439 | -// | ||
| 440 | -// } | ||
| 441 | - | ||
| 442 | - _liveSession = [[AlivcLiveSession alloc] initWithConfiguration:configuration]; | ||
| 443 | - _liveSession.delegate = self; | ||
| 444 | - [_liveSession setEnableSkin:YES]; | ||
| 445 | - [_liveSession alivcLiveVideoStartPreview]; | ||
| 446 | - _liveSession.devicePosition = _currentPosition; | ||
| 447 | - [_liveSession alivcLiveVideoUpdateConfiguration:^(AlivcLConfiguration *configuration) { | ||
| 448 | - configuration.videoMaxBitRate = 1500 * 1000; | ||
| 449 | - configuration.videoBitRate = 600 * 1000; | ||
| 450 | - configuration.videoMinBitRate = 400 * 1000; | ||
| 451 | - configuration.audioBitRate = 64 * 1000; | ||
| 452 | - configuration.fps = 20; | ||
| 453 | - }]; | ||
| 454 | - [_liveSession alivcLiveVideoConnectServer]; | ||
| 455 | - | ||
| 456 | - dispatch_async(dispatch_get_main_queue(), ^{ | ||
| 457 | - [self.view insertSubview:[_liveSession previewView] atIndex:0]; | ||
| 458 | - }); | ||
| 459 | - | ||
| 460 | -} | ||
| 461 | - | ||
| 462 | --(BOOL)shouldAutorotate{ | ||
| 463 | - return YES; | ||
| 464 | -} | ||
| 465 | - | ||
| 466 | --(UIInterfaceOrientationMask)supportedInterfaceOrientations{ | ||
| 467 | - if (_isScreenHorizontal){ | ||
| 468 | - CGAffineTransform transform = CGAffineTransformMakeRotation(-M_PI/2); | ||
| 469 | - [_liveSession previewView].transform = transform; | ||
| 470 | - // CGRect rect = [_liveSession previewView].frame; | ||
| 471 | - CGFloat screenWidth = [UIScreen mainScreen].bounds.size.width; | ||
| 472 | - CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height; | ||
| 473 | - CGFloat width = screenWidth>screenHeight?screenWidth:screenHeight; | ||
| 474 | - CGFloat height = screenWidth<screenHeight?screenWidth:screenHeight; | ||
| 475 | - [_liveSession previewView].frame = CGRectMake(0, 0, width, height); | ||
| 476 | - | ||
| 477 | - [[_liveSession previewView] layoutSubviews]; | ||
| 478 | - | ||
| 479 | - return UIInterfaceOrientationMaskLandscapeRight; | ||
| 480 | - }else{ | ||
| 481 | - return UIInterfaceOrientationMaskPortrait; | ||
| 482 | - } | ||
| 483 | -} | ||
| 484 | - | ||
| 485 | - | ||
| 486 | -- (void)destroySession{ | ||
| 487 | - | ||
| 488 | - [_liveSession alivcLiveVideoDisconnectServer]; | ||
| 489 | - [_liveSession alivcLiveVideoStopPreview]; | ||
| 490 | - [_liveSession.previewView removeFromSuperview]; | ||
| 491 | - | ||
| 492 | - _liveSession = nil; | ||
| 493 | -} | ||
| 494 | - | ||
| 495 | - | ||
| 496 | -- (void)alivcLiveVideoLiveSession:(AlivcLiveSession *)session error:(NSError *)error{ | ||
| 497 | - dispatch_async(dispatch_get_main_queue(), ^{ | ||
| 498 | - NSString *msg = [NSString stringWithFormat:@"%zd %@",error.code, error.localizedDescription]; | ||
| 499 | - UIAlertController * alertVC = [UIAlertController alertControllerWithTitle:@"Live Error" message:msg preferredStyle:UIAlertControllerStyleAlert]; | ||
| 500 | - [alertVC addAction:[UIAlertAction actionWithTitle:@"重新连接" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { | ||
| 501 | - [_liveSession alivcLiveVideoConnectServer]; | ||
| 502 | - _textView.text = @""; | ||
| 503 | - }]]; | ||
| 504 | - [alertVC addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:nil]]; | ||
| 505 | - [self presentViewController:alertVC animated:YES completion:nil]; | ||
| 506 | - }); | ||
| 507 | -} | ||
| 508 | - | ||
| 509 | -- (void)alivcLiveVideoLiveSessionConnectSuccess:(AlivcLiveSession *)session { | ||
| 510 | - | ||
| 511 | - NSLog(@"connect success!"); | ||
| 512 | -} | ||
| 513 | - | ||
| 514 | -- (void)alivcLiveVideoLiveSessionNetworkSlow:(AlivcLiveSession *)session{ | ||
| 515 | - dispatch_async(dispatch_get_main_queue(), ^{ | ||
| 516 | - _textView.text = @"\n\n\n网络很差,不建议直播"; | ||
| 517 | - }); | ||
| 518 | -} | ||
| 519 | - | ||
| 520 | -- (void)alivcLiveVideoLiveSession:(AlivcLiveSession *)session OpenAudioError:(NSError *)error { | ||
| 521 | - dispatch_async(dispatch_get_main_queue(), ^{ | ||
| 522 | - UIAlertController * alertVC = [UIAlertController alertControllerWithTitle:@"Error" message:@"麦克风获取失败" preferredStyle:UIAlertControllerStyleAlert]; | ||
| 523 | - [alertVC addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil]]; | ||
| 524 | - [self presentViewController:alertVC animated:YES completion:nil]; | ||
| 525 | - }); | ||
| 526 | -} | ||
| 527 | - | ||
| 528 | -- (void)alivcLiveVideoLiveSession:(AlivcLiveSession *)session OpenVideoError:(NSError *)error { | ||
| 529 | - | ||
| 530 | - dispatch_async(dispatch_get_main_queue(), ^{ | ||
| 531 | - UIAlertController * alertVC = [UIAlertController alertControllerWithTitle:@"Error" message:@"摄像头获取失败" preferredStyle:UIAlertControllerStyleAlert]; | ||
| 532 | - [alertVC addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil]]; | ||
| 533 | - [self presentViewController:alertVC animated:YES completion:nil]; | ||
| 534 | - }); | ||
| 535 | -} | ||
| 536 | - | ||
| 537 | -- (void)alivcLiveVideoLiveSession:(AlivcLiveSession *)session EncodeAudioError:(NSError *)error { | ||
| 538 | - dispatch_async(dispatch_get_main_queue(), ^{ | ||
| 539 | - UIAlertController * alertVC = [UIAlertController alertControllerWithTitle:@"Error" message:@"音频编码初始化失败" preferredStyle:UIAlertControllerStyleAlert]; | ||
| 540 | - [alertVC addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil]]; | ||
| 541 | - [self presentViewController:alertVC animated:YES completion:nil]; | ||
| 542 | - }); | ||
| 543 | - | ||
| 544 | -} | ||
| 545 | - | ||
| 546 | -- (void)alivcLiveVideoLiveSession:(AlivcLiveSession *)session EncodeVideoError:(NSError *)error { | ||
| 547 | - dispatch_async(dispatch_get_main_queue(), ^{ | ||
| 548 | - UIAlertController * alertVC = [UIAlertController alertControllerWithTitle:@"Error" message:@"视频编码初始化失败" preferredStyle:UIAlertControllerStyleAlert]; | ||
| 549 | - [alertVC addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil]]; | ||
| 550 | - [self presentViewController:alertVC animated:YES completion:nil]; | ||
| 551 | - }); | ||
| 552 | -} | ||
| 553 | - | ||
| 554 | -- (IBAction)buttonCloseClick:(id)sender { | ||
| 555 | - UIAlertController * alertVC = [UIAlertController alertControllerWithTitle:@"" message:@"您即将离开直播,你舍得吗?" preferredStyle:UIAlertControllerStyleAlert]; | ||
| 556 | - [alertVC addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { | ||
| 557 | - [self closePlayer]; | ||
| 558 | - // [self.navigationController popViewControllerAnimated:YES]; | ||
| 559 | - }]]; | ||
| 560 | - [alertVC addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:nil]]; | ||
| 561 | - [self presentViewController:alertVC animated:YES completion:nil]; | ||
| 562 | -} | ||
| 563 | - | ||
| 564 | --(void)closePlayer{ | ||
| 565 | - AppDelegate * appdelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; | ||
| 566 | - appdelegate.blockRotation = NO; | ||
| 567 | - _isScreenHorizontal = false; | ||
| 568 | - [self destroySession]; | ||
| 569 | - [_timer invalidate]; | ||
| 570 | - _timer = nil; | ||
| 571 | - [self dismissViewControllerAnimated:true completion:nil]; | ||
| 572 | -} | ||
| 573 | - | ||
| 574 | -- (void)didReceiveMemoryWarning { | ||
| 575 | - [super didReceiveMemoryWarning]; | ||
| 576 | - // Dispose of any resources that can be recreated. | ||
| 577 | -} | ||
| 578 | - | ||
| 579 | - | ||
| 580 | -- (IBAction)cameraButtonClick:(UIButton *)button { | ||
| 581 | - button.selected = !button.isSelected; | ||
| 582 | - _liveSession.devicePosition = button.isSelected ? AVCaptureDevicePositionFront : AVCaptureDevicePositionBack; | ||
| 583 | - _currentPosition = _liveSession.devicePosition; | ||
| 584 | - | ||
| 585 | - | ||
| 586 | -// [_liveSession previewView].transform = CGAffineTransformScale([_liveSession previewView].transform , 1.0, -1.0); | ||
| 587 | - | ||
| 588 | - // CGAffineTransform transform; | ||
| 589 | - // if (_isScreenHorizontal && _liveSession.devicePosition == AVCaptureDevicePositionFront){ | ||
| 590 | - // transform = CGAffineTransformMakeRotation(-M_PI_2); | ||
| 591 | - // }else{ | ||
| 592 | - // transform = CGAffineTransformMakeRotation(0); | ||
| 593 | - // } | ||
| 594 | - // [_liveSession previewView].transform = transform; | ||
| 595 | - // [[_liveSession previewView] layoutSubviews]; | ||
| 596 | - | ||
| 597 | -} | ||
| 598 | - | ||
| 599 | -- (IBAction)skinButtonClick:(UIButton *)button { | ||
| 600 | - button.selected = !button.isSelected; | ||
| 601 | - [_liveSession setEnableSkin:button.isSelected]; | ||
| 602 | -} | ||
| 603 | - | ||
| 604 | -- (IBAction)flashButtonClick:(UIButton *)button { | ||
| 605 | - button.selected = !button.isSelected; | ||
| 606 | - _liveSession.torchMode = button.isSelected ? AVCaptureTorchModeOn : AVCaptureTorchModeOff; | ||
| 607 | -} | ||
| 608 | - | ||
| 609 | - | ||
| 610 | -- (IBAction)disconnectButtonClick:(id)sender { | ||
| 611 | - UIButton * btn = (UIButton *)sender; | ||
| 612 | - btn.selected = !btn.selected; | ||
| 613 | - if (btn.selected) { | ||
| 614 | - [btn setBackgroundImage:[UIImage imageNamed:@"starLive"] forState:UIControlStateNormal]; | ||
| 615 | - [_liveSession alivcLiveVideoStopPreview]; | ||
| 616 | - [_liveSession alivcLiveVideoDisconnectServer]; | ||
| 617 | - }else{ | ||
| 618 | - [btn setBackgroundImage:[UIImage imageNamed:@"暂停"] forState:UIControlStateNormal]; | ||
| 619 | - [_liveSession alivcLiveVideoStartPreview]; | ||
| 620 | - [_liveSession alivcLiveVideoConnectServer]; | ||
| 621 | - } | ||
| 622 | -} | ||
| 623 | -- (IBAction)muteClickAction:(UIButton *)button { | ||
| 624 | - button.selected = !button.isSelected; | ||
| 625 | - if (button.selected) { | ||
| 626 | - [button setBackgroundImage:[UIImage imageNamed:@"静音"] forState:UIControlStateNormal]; | ||
| 627 | - [_liveSession setEnableMute:YES]; | ||
| 628 | - }else{ | ||
| 629 | - [button setBackgroundImage:[UIImage imageNamed:@"unMute"] forState:UIControlStateNormal]; | ||
| 630 | - [_liveSession setEnableMute:NO]; | ||
| 631 | - } | ||
| 632 | -} | ||
| 633 | - | ||
| 634 | -- (IBAction)subtitleClickAction:(UIButton *)sender { | ||
| 635 | - sender.selected = !sender.selected; | ||
| 636 | - if (!sender.selected) { | ||
| 637 | - [_manager start]; | ||
| 638 | - [_subTitleStart setBackgroundImage:[UIImage imageNamed:@"subTitle_on"] forState:UIControlStateNormal]; | ||
| 639 | - }else{ | ||
| 640 | - [_manager stop]; | ||
| 641 | - [_manager deleteAllCommentLayer]; | ||
| 642 | - [self.commentTimer invalidate]; | ||
| 643 | - [_subTitleStart setBackgroundImage:[UIImage imageNamed:@"subTitle_off"] forState:UIControlStateNormal]; | ||
| 644 | - | ||
| 645 | - } | ||
| 646 | -} | ||
| 647 | - | ||
| 648 | -- (IBAction)fullScreenClickAction:(UIButton *)sender { | ||
| 649 | - if (_isScreenHorizontal) { | ||
| 650 | - // [self buttonCloseClick:sender]; | ||
| 651 | - return ; | ||
| 652 | - } | ||
| 653 | - sender.selected = !sender.selected; | ||
| 654 | - // [self.navigationController setNavigationBarHidden:NO]; | ||
| 655 | - if (sender.selected) { | ||
| 656 | - if (_isScreenHorizontal){ | ||
| 657 | - CGAffineTransform transform = CGAffineTransformMakeRotation(0); | ||
| 658 | - self.view.transform = transform; | ||
| 659 | - [self.view layoutSubviews]; | ||
| 660 | - CGAffineTransform transforms = CGAffineTransformMakeRotation(0); | ||
| 661 | - [_liveSession previewView].transform = transforms; | ||
| 662 | - [_liveSession previewView].frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - 200); | ||
| 663 | - [[_liveSession previewView] layoutSubviews]; | ||
| 664 | - }else{ | ||
| 665 | - [_liveSession previewView].frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - 200); | ||
| 666 | - [[_liveSession previewView] layoutSubviews]; | ||
| 667 | - | ||
| 668 | - } | ||
| 669 | - _chatTableView.hidden = false; | ||
| 670 | - }else{ | ||
| 671 | - if (_isScreenHorizontal){ | ||
| 672 | - //[self.navigationController setNavigationBarHidden:YES]; | ||
| 673 | - CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI/2); | ||
| 674 | - self.view.transform = transform; | ||
| 675 | - [self.view layoutSubviews]; | ||
| 676 | - CGAffineTransform transforms = CGAffineTransformMakeRotation(-M_PI/2); | ||
| 677 | - [_liveSession previewView].transform = transforms; | ||
| 678 | - [_liveSession previewView].frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width); | ||
| 679 | - }else{ | ||
| 680 | - [_liveSession previewView].frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height); | ||
| 681 | - } | ||
| 682 | - [[_liveSession previewView] layoutSubviews]; | ||
| 683 | - _chatTableView.hidden = true; | ||
| 684 | - } | ||
| 685 | -} | ||
| 686 | - | ||
| 687 | - | ||
| 688 | - | ||
| 689 | -- (IBAction)shareLiveCClickAction:(id)sender { | ||
| 690 | - | ||
| 691 | -} | ||
| 692 | - | ||
| 693 | - | ||
| 694 | -- (void)dealloc{ | ||
| 695 | - [[NSNotificationCenter defaultCenter] removeObserver:self]; | ||
| 696 | - [_handle closeFile]; | ||
| 697 | -} | ||
| 698 | - | ||
| 699 | --(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ | ||
| 700 | - UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"cell"]; | ||
| 701 | - if (cell == nil){ | ||
| 702 | - cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"]; | ||
| 703 | - } | ||
| 704 | - [cell setBackgroundColor:[UIColor clearColor]]; | ||
| 705 | - // cell.imageView.image = [UIImage imageNamed:@"表情"]; | ||
| 706 | - | ||
| 707 | - cell.textLabel.text = [NSString stringWithFormat:@"%@ : %@",[((NIMMessage *)_messageArr[indexPath.row]) remoteExt][@"name"],[((NIMMessage *)_messageArr[indexPath.row]) text]]; | ||
| 708 | - cell.textLabel.numberOfLines = 0; | ||
| 709 | - [cell.textLabel sizeToFit]; | ||
| 710 | - cell.textLabel.font = [UIFont systemFontOfSize:15]; | ||
| 711 | - | ||
| 712 | - return cell; | ||
| 713 | -} | ||
| 714 | - | ||
| 715 | --(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ | ||
| 716 | - return _messageArr.count; | ||
| 717 | -} | ||
| 718 | - | ||
| 719 | --(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ | ||
| 720 | - [_liveSession alivcLiveVideoDisconnectServer]; | ||
| 721 | - [_liveSession alivcLiveVideoUpdateConfiguration:^(AlivcLConfiguration *configuration) { | ||
| 722 | - }]; | ||
| 723 | -} | ||
| 724 | - | ||
| 725 | -- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ | ||
| 726 | - NSMutableString *str; | ||
| 727 | - str=[NSMutableString stringWithFormat:@"%@ : %@",[((NIMMessage *)_messageArr[indexPath.row]) remoteExt][@"name"],[((NIMMessage *)_messageArr[indexPath.row]) text]]; | ||
| 728 | - return [str boundingRectWithSize:CGSizeMake([[UIScreen mainScreen] bounds].size.width-50, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:15.f],NSFontAttributeName, nil] context:nil].size.height+11; | ||
| 729 | -} | ||
| 730 | - | ||
| 731 | -@end | ||
| 732 | - | ||
| 733 | - |
YouerLiveVideo/YouerLiveVideo/Aliv/AlivcLiveViewController.xib
| @@ -1,325 +0,0 @@ | @@ -1,325 +0,0 @@ | ||
| 1 | -<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
| 2 | -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11542" systemVersion="15G31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> | ||
| 3 | - <device id="retina4_7" orientation="portrait"> | ||
| 4 | - <adaptation id="fullscreen"/> | ||
| 5 | - </device> | ||
| 6 | - <dependencies> | ||
| 7 | - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11524"/> | ||
| 8 | - <capability name="Aspect ratio constraints" minToolsVersion="5.1"/> | ||
| 9 | - <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | ||
| 10 | - </dependencies> | ||
| 11 | - <objects> | ||
| 12 | - <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="AlivcLiveViewController"> | ||
| 13 | - <connections> | ||
| 14 | - <outlet property="chatTableView" destination="IaS-fs-RRM" id="Z8G-B6-LCc"/> | ||
| 15 | - <outlet property="chatTableViewHeight" destination="mip-eN-Syh" id="r7Y-qo-KUh"/> | ||
| 16 | - <outlet property="messageStrText" destination="8OC-d9-HgV" id="5Mv-Xk-5qt"/> | ||
| 17 | - <outlet property="roomActivePersonNumber" destination="6XQ-lm-mx1" id="npS-GQ-VeI"/> | ||
| 18 | - <outlet property="roomName" destination="JBk-3B-IbF" id="XPa-te-nLY"/> | ||
| 19 | - <outlet property="sendWordBottomSpace" destination="MpV-GC-2zm" id="6wu-ch-9kE"/> | ||
| 20 | - <outlet property="sendWordHeight" destination="2k1-OD-xil" id="kkp-uc-xol"/> | ||
| 21 | - <outlet property="sendWordView" destination="OCh-5v-nqi" id="nbd-eZ-sbH"/> | ||
| 22 | - <outlet property="setCaptureBtn" destination="Mzf-sk-O3F" id="zAU-GG-qzY"/> | ||
| 23 | - <outlet property="shareBtnHeight" destination="vAA-GU-Nw7" id="w43-ku-jbF"/> | ||
| 24 | - <outlet property="shareBtnTopSpace" destination="aNH-KX-ayZ" id="wKu-L8-gt7"/> | ||
| 25 | - <outlet property="subTitleStart" destination="3zW-eV-kuq" id="pu9-Vp-q7s"/> | ||
| 26 | - <outlet property="subtitleLocationView" destination="4IZ-TQ-99k" id="akN-lg-MtV"/> | ||
| 27 | - <outlet property="textView" destination="pHN-RD-dZj" id="e4v-Ab-N7c"/> | ||
| 28 | - <outlet property="userName" destination="aAd-UM-ced" id="ZTJ-8T-KDm"/> | ||
| 29 | - <outlet property="userPhotoHeight" destination="XOB-ET-YgN" id="VfO-bJ-f2b"/> | ||
| 30 | - <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> | ||
| 31 | - </connections> | ||
| 32 | - </placeholder> | ||
| 33 | - <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> | ||
| 34 | - <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> | ||
| 35 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 36 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 37 | - <subviews> | ||
| 38 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="VJK-mp-TsX"> | ||
| 39 | - <rect key="frame" x="329" y="118" width="30" height="30"/> | ||
| 40 | - <constraints> | ||
| 41 | - <constraint firstAttribute="height" constant="30" id="DUm-NC-hMI"/> | ||
| 42 | - </constraints> | ||
| 43 | - <color key="tintColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 44 | - <state key="normal" backgroundImage="暂停.png"/> | ||
| 45 | - <connections> | ||
| 46 | - <action selector="disconnectButtonClick:" destination="-1" eventType="touchUpInside" id="lra-Un-vRW"/> | ||
| 47 | - </connections> | ||
| 48 | - </button> | ||
| 49 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dtl-qB-O1a"> | ||
| 50 | - <rect key="frame" x="329" y="156" width="30" height="30"/> | ||
| 51 | - <constraints> | ||
| 52 | - <constraint firstAttribute="height" constant="30" id="vAA-GU-Nw7"/> | ||
| 53 | - </constraints> | ||
| 54 | - <color key="tintColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 55 | - <state key="normal" backgroundImage="分享.png"/> | ||
| 56 | - <connections> | ||
| 57 | - <action selector="shareLiveCClickAction:" destination="-1" eventType="touchUpInside" id="WoJ-gQ-zPe"/> | ||
| 58 | - </connections> | ||
| 59 | - </button> | ||
| 60 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="JoJ-cq-Rki"> | ||
| 61 | - <rect key="frame" x="327" y="42" width="30" height="30"/> | ||
| 62 | - <constraints> | ||
| 63 | - <constraint firstAttribute="width" secondItem="JoJ-cq-Rki" secondAttribute="height" multiplier="1:1" id="pev-Wl-ClD"/> | ||
| 64 | - <constraint firstAttribute="height" constant="30" id="xeD-Tr-GE0"/> | ||
| 65 | - </constraints> | ||
| 66 | - <color key="tintColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 67 | - <state key="normal" backgroundImage="全屏.png"/> | ||
| 68 | - <connections> | ||
| 69 | - <action selector="fullScreenClickAction:" destination="-1" eventType="touchUpInside" id="Xzm-P8-4Cp"/> | ||
| 70 | - </connections> | ||
| 71 | - </button> | ||
| 72 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="aHo-qz-PfW"> | ||
| 73 | - <rect key="frame" x="330" y="4" width="30" height="30"/> | ||
| 74 | - <constraints> | ||
| 75 | - <constraint firstAttribute="width" secondItem="aHo-qz-PfW" secondAttribute="height" multiplier="1:1" id="Nfq-t2-2Iq"/> | ||
| 76 | - <constraint firstAttribute="height" constant="30" id="zPD-zb-Sr2"/> | ||
| 77 | - </constraints> | ||
| 78 | - <color key="tintColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 79 | - <state key="normal" backgroundImage="closeAlive"/> | ||
| 80 | - <connections> | ||
| 81 | - <action selector="buttonCloseClick:" destination="-1" eventType="touchUpInside" id="FfZ-UX-cJ5"/> | ||
| 82 | - </connections> | ||
| 83 | - </button> | ||
| 84 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="AOl-sF-ffX"> | ||
| 85 | - <rect key="frame" x="329" y="80" width="30" height="30"/> | ||
| 86 | - <constraints> | ||
| 87 | - <constraint firstAttribute="height" constant="30" id="ocE-xy-hhj"/> | ||
| 88 | - </constraints> | ||
| 89 | - <color key="tintColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 90 | - <state key="normal" backgroundImage="unMute"/> | ||
| 91 | - <connections> | ||
| 92 | - <action selector="muteClickAction:" destination="-1" eventType="touchUpInside" id="N8Q-tr-0YL"/> | ||
| 93 | - </connections> | ||
| 94 | - </button> | ||
| 95 | - <textView clipsSubviews="YES" multipleTouchEnabled="YES" userInteractionEnabled="NO" contentMode="scaleToFill" textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="pHN-RD-dZj"> | ||
| 96 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 97 | - <color key="textColor" red="0.98823529409999999" green="0.52941176469999995" blue="0.15686274510000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 98 | - <fontDescription key="fontDescription" type="system" pointSize="16"/> | ||
| 99 | - <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/> | ||
| 100 | - </textView> | ||
| 101 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Mzf-sk-O3F"> | ||
| 102 | - <rect key="frame" x="289" y="4" width="30" height="30"/> | ||
| 103 | - <constraints> | ||
| 104 | - <constraint firstAttribute="height" constant="30" id="lu0-J5-5tk"/> | ||
| 105 | - </constraints> | ||
| 106 | - <color key="tintColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 107 | - <state key="normal" backgroundImage="摄像头翻转.png"/> | ||
| 108 | - <connections> | ||
| 109 | - <action selector="cameraButtonClick:" destination="-1" eventType="touchUpInside" id="sQz-M2-2o3"/> | ||
| 110 | - </connections> | ||
| 111 | - </button> | ||
| 112 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FDb-6v-daQ"> | ||
| 113 | - <rect key="frame" x="16" y="4" width="85" height="35"/> | ||
| 114 | - <subviews> | ||
| 115 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="o0l-Du-LeS"> | ||
| 116 | - <rect key="frame" x="6" y="3" width="30" height="30"/> | ||
| 117 | - <color key="backgroundColor" red="0.50980392159999999" green="0.81176470590000005" blue="0.44705882349999998" alpha="1" colorSpace="calibratedRGB"/> | ||
| 118 | - <constraints> | ||
| 119 | - <constraint firstAttribute="height" constant="30" id="XOB-ET-YgN"/> | ||
| 120 | - </constraints> | ||
| 121 | - <color key="tintColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 122 | - <state key="normal" backgroundImage="default_userRoom"/> | ||
| 123 | - <userDefinedRuntimeAttributes> | ||
| 124 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 125 | - <integer key="value" value="15"/> | ||
| 126 | - </userDefinedRuntimeAttribute> | ||
| 127 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 128 | - </userDefinedRuntimeAttributes> | ||
| 129 | - <connections> | ||
| 130 | - <action selector="cameraButtonClick:" destination="-1" eventType="touchUpInside" id="jPA-zk-h9g"/> | ||
| 131 | - </connections> | ||
| 132 | - </button> | ||
| 133 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="昵称" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aAd-UM-ced"> | ||
| 134 | - <rect key="frame" x="38" y="4" width="41" height="12"/> | ||
| 135 | - <fontDescription key="fontDescription" type="system" pointSize="10"/> | ||
| 136 | - <nil key="textColor"/> | ||
| 137 | - <nil key="highlightedColor"/> | ||
| 138 | - </label> | ||
| 139 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="在线人数" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6XQ-lm-mx1"> | ||
| 140 | - <rect key="frame" x="38" y="19" width="41" height="12"/> | ||
| 141 | - <fontDescription key="fontDescription" type="system" pointSize="10"/> | ||
| 142 | - <nil key="textColor"/> | ||
| 143 | - <nil key="highlightedColor"/> | ||
| 144 | - </label> | ||
| 145 | - </subviews> | ||
| 146 | - <color key="backgroundColor" white="1" alpha="0.70373205236486491" colorSpace="calibratedWhite"/> | ||
| 147 | - <constraints> | ||
| 148 | - <constraint firstItem="aAd-UM-ced" firstAttribute="top" secondItem="FDb-6v-daQ" secondAttribute="top" constant="4" id="3y3-OA-Nzs"/> | ||
| 149 | - <constraint firstAttribute="trailing" secondItem="6XQ-lm-mx1" secondAttribute="trailing" constant="6" id="MBU-Kl-L0W"/> | ||
| 150 | - <constraint firstItem="o0l-Du-LeS" firstAttribute="centerY" secondItem="FDb-6v-daQ" secondAttribute="centerY" id="QV7-29-LUE"/> | ||
| 151 | - <constraint firstItem="o0l-Du-LeS" firstAttribute="width" secondItem="o0l-Du-LeS" secondAttribute="height" multiplier="1:1" id="cyi-DA-vQe"/> | ||
| 152 | - <constraint firstAttribute="height" constant="35" id="fGy-fi-zn8"/> | ||
| 153 | - <constraint firstItem="aAd-UM-ced" firstAttribute="leading" secondItem="o0l-Du-LeS" secondAttribute="trailing" constant="2" id="fkZ-37-IKK"/> | ||
| 154 | - <constraint firstAttribute="bottom" secondItem="6XQ-lm-mx1" secondAttribute="bottom" constant="4" id="hAK-05-vuf"/> | ||
| 155 | - <constraint firstAttribute="trailing" secondItem="aAd-UM-ced" secondAttribute="trailing" constant="6" id="ob8-f3-qMz"/> | ||
| 156 | - <constraint firstItem="6XQ-lm-mx1" firstAttribute="leading" secondItem="o0l-Du-LeS" secondAttribute="trailing" constant="2" id="pBM-sh-jeX"/> | ||
| 157 | - <constraint firstItem="o0l-Du-LeS" firstAttribute="leading" secondItem="FDb-6v-daQ" secondAttribute="leading" constant="6" id="u7t-4f-QBC"/> | ||
| 158 | - </constraints> | ||
| 159 | - <userDefinedRuntimeAttributes> | ||
| 160 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 161 | - <integer key="value" value="17"/> | ||
| 162 | - </userDefinedRuntimeAttribute> | ||
| 163 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 164 | - </userDefinedRuntimeAttributes> | ||
| 165 | - </view> | ||
| 166 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="OCh-5v-nqi"> | ||
| 167 | - <rect key="frame" x="0.0" y="627" width="375" height="40"/> | ||
| 168 | - <subviews> | ||
| 169 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2on-1g-It0"> | ||
| 170 | - <rect key="frame" x="0.0" y="0.0" width="375" height="1"/> | ||
| 171 | - <color key="backgroundColor" red="0.87843137250000003" green="0.87843137250000003" blue="0.87843137250000003" alpha="1" colorSpace="calibratedRGB"/> | ||
| 172 | - <constraints> | ||
| 173 | - <constraint firstAttribute="height" constant="1" id="Q4K-n7-bhw"/> | ||
| 174 | - </constraints> | ||
| 175 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 176 | - <nil key="textColor"/> | ||
| 177 | - <nil key="highlightedColor"/> | ||
| 178 | - </label> | ||
| 179 | - <button hidden="YES" opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="kwG-Rd-5fk"> | ||
| 180 | - <rect key="frame" x="15" y="5" width="30" height="30"/> | ||
| 181 | - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
| 182 | - <state key="normal" backgroundImage="表情.png"/> | ||
| 183 | - <connections> | ||
| 184 | - <action selector="expressionBtnClickAction:" destination="-1" eventType="touchUpInside" id="kFV-C2-rCv"/> | ||
| 185 | - </connections> | ||
| 186 | - </button> | ||
| 187 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="OzC-wX-kls"> | ||
| 188 | - <rect key="frame" x="300" y="5" width="60" height="30"/> | ||
| 189 | - <color key="backgroundColor" red="0.92549019607843142" green="0.25882352941176473" blue="0.29803921568627451" alpha="1" colorSpace="calibratedRGB"/> | ||
| 190 | - <constraints> | ||
| 191 | - <constraint firstAttribute="width" constant="60" id="B2u-vw-abx"/> | ||
| 192 | - </constraints> | ||
| 193 | - <state key="normal" title="发送"> | ||
| 194 | - <color key="titleColor" red="0.99607843139999996" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> | ||
| 195 | - </state> | ||
| 196 | - <connections> | ||
| 197 | - <action selector="sendMessage:" destination="-1" eventType="touchUpInside" id="wco-UN-0o1"/> | ||
| 198 | - </connections> | ||
| 199 | - </button> | ||
| 200 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="a38-YW-LDt"> | ||
| 201 | - <rect key="frame" x="0.0" y="8" width="1" height="24"/> | ||
| 202 | - <color key="backgroundColor" red="0.87843137250000003" green="0.87843137250000003" blue="0.87843137250000003" alpha="1" colorSpace="calibratedRGB"/> | ||
| 203 | - <constraints> | ||
| 204 | - <constraint firstAttribute="width" constant="1" id="ag4-6H-jxV"/> | ||
| 205 | - </constraints> | ||
| 206 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 207 | - <nil key="textColor"/> | ||
| 208 | - <nil key="highlightedColor"/> | ||
| 209 | - </label> | ||
| 210 | - <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="和大家说点什么" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="8OC-d9-HgV"> | ||
| 211 | - <rect key="frame" x="9" y="11" width="283" height="18"/> | ||
| 212 | - <nil key="textColor"/> | ||
| 213 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 214 | - <textInputTraits key="textInputTraits"/> | ||
| 215 | - <connections> | ||
| 216 | - <outlet property="delegate" destination="-1" id="IeI-fO-4jp"/> | ||
| 217 | - </connections> | ||
| 218 | - </textField> | ||
| 219 | - </subviews> | ||
| 220 | - <constraints> | ||
| 221 | - <constraint firstAttribute="height" constant="40" id="2k1-OD-xil"/> | ||
| 222 | - <constraint firstAttribute="trailing" secondItem="OzC-wX-kls" secondAttribute="trailing" constant="15" id="Nds-EI-ft7"/> | ||
| 223 | - <constraint firstItem="8OC-d9-HgV" firstAttribute="leading" secondItem="a38-YW-LDt" secondAttribute="trailing" constant="8" id="PK4-L5-4BR"/> | ||
| 224 | - <constraint firstItem="a38-YW-LDt" firstAttribute="leading" secondItem="OCh-5v-nqi" secondAttribute="leading" id="Qtp-Cz-Ski"/> | ||
| 225 | - <constraint firstItem="OzC-wX-kls" firstAttribute="leading" secondItem="8OC-d9-HgV" secondAttribute="trailing" constant="8" id="S0k-eM-bBy"/> | ||
| 226 | - <constraint firstItem="a38-YW-LDt" firstAttribute="centerY" secondItem="OCh-5v-nqi" secondAttribute="centerY" id="Tym-ZG-fj1"/> | ||
| 227 | - <constraint firstItem="2on-1g-It0" firstAttribute="top" secondItem="OCh-5v-nqi" secondAttribute="top" id="b1f-2i-mKj"/> | ||
| 228 | - <constraint firstItem="a38-YW-LDt" firstAttribute="top" secondItem="OCh-5v-nqi" secondAttribute="top" constant="8" id="fd8-8G-LZU"/> | ||
| 229 | - <constraint firstItem="8OC-d9-HgV" firstAttribute="centerY" secondItem="OCh-5v-nqi" secondAttribute="centerY" id="gP0-2d-Gze"/> | ||
| 230 | - <constraint firstItem="OzC-wX-kls" firstAttribute="centerY" secondItem="OCh-5v-nqi" secondAttribute="centerY" id="oIo-Z0-yaa"/> | ||
| 231 | - <constraint firstAttribute="trailing" secondItem="2on-1g-It0" secondAttribute="trailing" id="wH5-Wi-aSO"/> | ||
| 232 | - <constraint firstItem="2on-1g-It0" firstAttribute="leading" secondItem="OCh-5v-nqi" secondAttribute="leading" id="xX0-y9-NV3"/> | ||
| 233 | - </constraints> | ||
| 234 | - </view> | ||
| 235 | - <tableView hidden="YES" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" keyboardDismissMode="onDrag" style="plain" separatorStyle="none" allowsSelection="NO" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="IaS-fs-RRM"> | ||
| 236 | - <rect key="frame" x="0.0" y="467" width="375" height="160"/> | ||
| 237 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 238 | - <constraints> | ||
| 239 | - <constraint firstAttribute="height" constant="160" id="mip-eN-Syh"/> | ||
| 240 | - </constraints> | ||
| 241 | - <connections> | ||
| 242 | - <outlet property="dataSource" destination="-1" id="UeO-Gn-2dT"/> | ||
| 243 | - <outlet property="delegate" destination="-1" id="kZf-RQ-YLw"/> | ||
| 244 | - </connections> | ||
| 245 | - </tableView> | ||
| 246 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="3zW-eV-kuq"> | ||
| 247 | - <rect key="frame" x="330" y="194" width="30" height="30"/> | ||
| 248 | - <constraints> | ||
| 249 | - <constraint firstAttribute="height" constant="30" id="bot-0i-Opx"/> | ||
| 250 | - </constraints> | ||
| 251 | - <color key="tintColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 252 | - <state key="normal" backgroundImage="subTitle_on"/> | ||
| 253 | - <connections> | ||
| 254 | - <action selector="subtitleClickAction:" destination="-1" eventType="touchUpInside" id="LOI-ZE-z1D"/> | ||
| 255 | - </connections> | ||
| 256 | - </button> | ||
| 257 | - <view hidden="YES" userInteractionEnabled="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4IZ-TQ-99k"> | ||
| 258 | - <rect key="frame" x="0.0" y="50" width="375" height="417"/> | ||
| 259 | - </view> | ||
| 260 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JBk-3B-IbF"> | ||
| 261 | - <rect key="frame" x="109" y="8" width="172" height="15"/> | ||
| 262 | - <constraints> | ||
| 263 | - <constraint firstAttribute="height" constant="15" id="74k-Qv-BIP"/> | ||
| 264 | - </constraints> | ||
| 265 | - <fontDescription key="fontDescription" type="system" pointSize="11"/> | ||
| 266 | - <nil key="textColor"/> | ||
| 267 | - <nil key="highlightedColor"/> | ||
| 268 | - </label> | ||
| 269 | - </subviews> | ||
| 270 | - <constraints> | ||
| 271 | - <constraint firstAttribute="trailing" secondItem="4IZ-TQ-99k" secondAttribute="trailing" id="1EK-3K-Gkr"/> | ||
| 272 | - <constraint firstItem="Mzf-sk-O3F" firstAttribute="leading" secondItem="JBk-3B-IbF" secondAttribute="trailing" constant="8" id="6tM-gq-SkV"/> | ||
| 273 | - <constraint firstItem="OCh-5v-nqi" firstAttribute="top" secondItem="IaS-fs-RRM" secondAttribute="bottom" id="9us-dv-6UX"/> | ||
| 274 | - <constraint firstAttribute="trailing" secondItem="pHN-RD-dZj" secondAttribute="trailing" id="Aap-AA-RIE"/> | ||
| 275 | - <constraint firstItem="dtl-qB-O1a" firstAttribute="width" secondItem="dtl-qB-O1a" secondAttribute="height" multiplier="1:1" id="BiI-IQ-9aE"/> | ||
| 276 | - <constraint firstItem="4IZ-TQ-99k" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="DJy-BN-sa6"/> | ||
| 277 | - <constraint firstItem="FDb-6v-daQ" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" constant="4" id="EaC-mT-bnh"/> | ||
| 278 | - <constraint firstItem="4IZ-TQ-99k" firstAttribute="top" secondItem="pHN-RD-dZj" secondAttribute="top" constant="50" id="Efq-E1-lCC"/> | ||
| 279 | - <constraint firstItem="pHN-RD-dZj" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="GwV-dC-rDS"/> | ||
| 280 | - <constraint firstAttribute="trailing" secondItem="3zW-eV-kuq" secondAttribute="trailing" constant="15" id="HX6-SN-TgO"/> | ||
| 281 | - <constraint firstItem="3zW-eV-kuq" firstAttribute="top" secondItem="dtl-qB-O1a" secondAttribute="bottom" constant="8" id="Iit-8I-cJS"/> | ||
| 282 | - <constraint firstAttribute="trailing" secondItem="dtl-qB-O1a" secondAttribute="trailing" constant="16" id="KbQ-pG-rNg"/> | ||
| 283 | - <constraint firstItem="IaS-fs-RRM" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="KrE-gy-IoK"/> | ||
| 284 | - <constraint firstAttribute="trailing" secondItem="IaS-fs-RRM" secondAttribute="trailing" id="LFS-Xw-dr0"/> | ||
| 285 | - <constraint firstItem="JBk-3B-IbF" firstAttribute="leading" secondItem="FDb-6v-daQ" secondAttribute="trailing" constant="8" id="M8K-dZ-vtD"/> | ||
| 286 | - <constraint firstAttribute="trailing" secondItem="AOl-sF-ffX" secondAttribute="trailing" constant="16" id="Mcd-PZ-dBc"/> | ||
| 287 | - <constraint firstAttribute="bottom" secondItem="OCh-5v-nqi" secondAttribute="bottom" id="MpV-GC-2zm"/> | ||
| 288 | - <constraint firstItem="3zW-eV-kuq" firstAttribute="width" secondItem="3zW-eV-kuq" secondAttribute="height" multiplier="1:1" id="PDX-o1-AvL"/> | ||
| 289 | - <constraint firstAttribute="trailing" secondItem="VJK-mp-TsX" secondAttribute="trailing" constant="16" id="R3f-J7-cbg"/> | ||
| 290 | - <constraint firstItem="pHN-RD-dZj" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="ROo-ht-HE4"/> | ||
| 291 | - <constraint firstAttribute="trailing" secondItem="JoJ-cq-Rki" secondAttribute="trailing" constant="18" id="SzR-mv-rWg"/> | ||
| 292 | - <constraint firstItem="JBk-3B-IbF" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" constant="8" id="Ths-5c-ax3"/> | ||
| 293 | - <constraint firstItem="JoJ-cq-Rki" firstAttribute="leading" secondItem="Mzf-sk-O3F" secondAttribute="trailing" constant="8" id="UuQ-AT-oUm"/> | ||
| 294 | - <constraint firstAttribute="trailing" secondItem="OCh-5v-nqi" secondAttribute="trailing" id="Vyn-53-IhQ"/> | ||
| 295 | - <constraint firstItem="VJK-mp-TsX" firstAttribute="width" secondItem="VJK-mp-TsX" secondAttribute="height" multiplier="1:1" id="WIj-DH-07b"/> | ||
| 296 | - <constraint firstItem="aHo-qz-PfW" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" constant="4" id="XPT-iZ-Ifd"/> | ||
| 297 | - <constraint firstItem="dtl-qB-O1a" firstAttribute="top" secondItem="VJK-mp-TsX" secondAttribute="bottom" constant="8" id="aNH-KX-ayZ"/> | ||
| 298 | - <constraint firstItem="Mzf-sk-O3F" firstAttribute="width" secondItem="Mzf-sk-O3F" secondAttribute="height" multiplier="1:1" id="b0q-Uu-5Mc"/> | ||
| 299 | - <constraint firstAttribute="trailing" secondItem="aHo-qz-PfW" secondAttribute="trailing" constant="15" id="fEI-gd-Vu9"/> | ||
| 300 | - <constraint firstItem="JoJ-cq-Rki" firstAttribute="top" secondItem="aHo-qz-PfW" secondAttribute="bottom" constant="8" id="gEO-D1-COW"/> | ||
| 301 | - <constraint firstAttribute="bottom" secondItem="pHN-RD-dZj" secondAttribute="bottom" id="j1Z-b8-Tgc"/> | ||
| 302 | - <constraint firstItem="VJK-mp-TsX" firstAttribute="top" secondItem="AOl-sF-ffX" secondAttribute="bottom" constant="8" id="lVL-4i-hTA"/> | ||
| 303 | - <constraint firstItem="IaS-fs-RRM" firstAttribute="top" secondItem="4IZ-TQ-99k" secondAttribute="bottom" id="oam-wx-G2u"/> | ||
| 304 | - <constraint firstItem="AOl-sF-ffX" firstAttribute="top" secondItem="JoJ-cq-Rki" secondAttribute="bottom" constant="8" id="qa8-yq-arL"/> | ||
| 305 | - <constraint firstItem="Mzf-sk-O3F" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" constant="4" id="vcA-mk-eAS"/> | ||
| 306 | - <constraint firstItem="FDb-6v-daQ" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="16" id="wlW-VM-Vp2"/> | ||
| 307 | - <constraint firstItem="OCh-5v-nqi" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="yEC-fi-9y2"/> | ||
| 308 | - <constraint firstItem="AOl-sF-ffX" firstAttribute="width" secondItem="AOl-sF-ffX" secondAttribute="height" multiplier="1:1" id="ztH-wq-okv"/> | ||
| 309 | - </constraints> | ||
| 310 | - <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> | ||
| 311 | - <point key="canvasLocation" x="-7" y="-45"/> | ||
| 312 | - </view> | ||
| 313 | - </objects> | ||
| 314 | - <resources> | ||
| 315 | - <image name="closeAlive" width="33" height="33"/> | ||
| 316 | - <image name="default_userRoom" width="19" height="17"/> | ||
| 317 | - <image name="subTitle_on" width="33" height="33"/> | ||
| 318 | - <image name="unMute" width="22" height="22"/> | ||
| 319 | - <image name="全屏.png" width="45" height="45"/> | ||
| 320 | - <image name="分享.png" width="45" height="45"/> | ||
| 321 | - <image name="摄像头翻转.png" width="45" height="45"/> | ||
| 322 | - <image name="暂停.png" width="45" height="45"/> | ||
| 323 | - <image name="表情.png" width="50" height="47"/> | ||
| 324 | - </resources> | ||
| 325 | -</document> |
YouerLiveVideo/YouerLiveVideo/Aliv/CustomScrollView.swift
| @@ -1,150 +0,0 @@ | @@ -1,150 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// CustomScrollView.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 左丞 on 16/11/17. | ||
| 6 | -// Copyright © 2016年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class CustomScrollView:UIView,UIScrollViewDelegate{ | ||
| 12 | - var expressionScrollView: UIScrollView! | ||
| 13 | - var expressionPage: UIPageControl! | ||
| 14 | - var EXPRESSION_SCROLL_VIEW_TAG:Int = 1000 | ||
| 15 | - var MOREFUCTION_SCROLL_VIEW_TAG:Int = 1001 | ||
| 16 | - ///pragma mark - UIScrollViewDelegate | ||
| 17 | - override init(frame: CGRect) { | ||
| 18 | - super.init(frame: frame) | ||
| 19 | - expressionScrollView = UIScrollView(frame: CGRect(x:0, y:0, width:frame.size.width, height:180)) | ||
| 20 | - expressionScrollView.showsHorizontalScrollIndicator = false | ||
| 21 | - expressionScrollView.isPagingEnabled = true | ||
| 22 | - expressionScrollView.delegate = self | ||
| 23 | - expressionPage = UIPageControl(frame: CGRect(x:0, y:180, width:frame.size.width, height:frame.size.height - 180)) | ||
| 24 | - expressionPage.center = CGPoint(x:getScreenWidth()/2, y:180 + (216 - 180)/2) | ||
| 25 | - expressionPage.addTarget(self, action: #selector(CustomScrollView.pageTurn(_:)), for: UIControlEvents.touchUpInside) | ||
| 26 | - expressionPage.currentPageIndicatorTintColor = Theme.topBarColor() | ||
| 27 | - expressionPage.pageIndicatorTintColor = UIColor.black | ||
| 28 | - expressionPage.numberOfPages = 0 | ||
| 29 | - self.backgroundColor = UIColor.white | ||
| 30 | - self.addSubview(expressionScrollView) | ||
| 31 | - self.addSubview(expressionPage) | ||
| 32 | - } | ||
| 33 | - | ||
| 34 | - required init(coder aDecoder: NSCoder) { | ||
| 35 | - fatalError("init(coder:) has not been implemented") | ||
| 36 | - } | ||
| 37 | - | ||
| 38 | - func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) { | ||
| 39 | - | ||
| 40 | - if scrollView.tag == EXPRESSION_SCROLL_VIEW_TAG || scrollView.tag == MOREFUCTION_SCROLL_VIEW_TAG { | ||
| 41 | - //更新UIPageControl的当前页 | ||
| 42 | - let offset = scrollView.contentOffset; | ||
| 43 | - let bounds = scrollView.frame; | ||
| 44 | - expressionPage.currentPage = Int(offset.x/bounds.size.width) | ||
| 45 | - } | ||
| 46 | - } | ||
| 47 | - | ||
| 48 | - @IBAction func pageTurn(_ sender: AnyObject) { | ||
| 49 | - //令UIScrollView做出相应的滑动显示 | ||
| 50 | - | ||
| 51 | - let viewSize = expressionPage.frame.size | ||
| 52 | - expressionScrollView.setContentOffset(CGPoint(x:CGFloat(sender.currentPage) * viewSize.width, y:0), animated: true) | ||
| 53 | - } | ||
| 54 | -} | ||
| 55 | - | ||
| 56 | - | ||
| 57 | -class ExpressionView: CustomScrollView,UIPageViewControllerDelegate { | ||
| 58 | - var delegate:ExpressionViewDelegate! | ||
| 59 | - var pageNumber:Int = 7 | ||
| 60 | - var expressionArray:[String]! | ||
| 61 | - override init(frame: CGRect) { | ||
| 62 | - super.init(frame: frame) | ||
| 63 | - initExpressins() | ||
| 64 | - } | ||
| 65 | - required init(coder aDecoder: NSCoder) { | ||
| 66 | - fatalError("init(coder:) has not been implemented") | ||
| 67 | - } | ||
| 68 | - | ||
| 69 | - | ||
| 70 | - func initExpressins(){ | ||
| 71 | - let row:Int = 4 | ||
| 72 | - let column = 7 | ||
| 73 | - var number = 0 | ||
| 74 | - expressionArray = ["😄","😊","😃","☺","😏","😍","😘","😚","😳","😌","😆","😁","😉","😜","😝","😀","😙","😛","😴","😟","😬","😒","😅","😓","😥","😔","😞","😖","😨","😰","😣","😢","😭","😂","😲","😱","😠","😡","😤","😪","😋","😷","😎","😵","😈","👿","😇","👽","❤","💔","💕","💞","💘","💖","✨","🌟","💫","💥","💢","❗","❓","❕","❔","💤","💨","💦","🎵","🔥","👍","👎","👌","👊","✊","✌","👋","👇","👈","👉","🙌","🙏","👆","👏","💪","🏃","👫","👪","👬","👭","🙆","🙅","💁","🙋","👰","🙎","🙍","🙇","💏","💑","👶","👦","👧","👨","👩","👴","👵","👱","🙈","🙉","🙊","💋","💧","👂","👀","👃","👅","💌","☕","🍵","🍶","🍼","🍺","🍸","🍷","🍴","🍕","🍔","🍟","🍗","🍖","🍚","🍜","🍲","🍢","🍡","🍳","🍞","🍩","🍮","🍦","🍨","🍧","🎂","🍪","🍫","🍬","🍭","🍯","🍎","🍏","🍊","🍋","🍒","🍇","🍉","🍓","🍑","🍈","🍌","🍐","🍍","🍠","🍆","🍅","🌽","1⃣","2⃣","3⃣","4⃣","5⃣","6⃣","7⃣","8⃣","9⃣","0⃣","🔟","#⃣","◀","▶","🔼","↩","⬆","⬇","⬅","➡","↗","↖","↘","↙","⏫","⏬","🔤"] | ||
| 75 | - pageNumber = (expressionArray.count-1)/row/column + 1 | ||
| 76 | - expressionPage.numberOfPages = pageNumber | ||
| 77 | - expressionScrollView.tag = EXPRESSION_SCROLL_VIEW_TAG | ||
| 78 | - expressionScrollView.contentSize = CGSize(width: expressionScrollView.frame.size.width*CGFloat(pageNumber), height: 0) | ||
| 79 | - | ||
| 80 | - let width:CGFloat = (UIScreen.main.bounds.width - 40)/7 | ||
| 81 | - for p:Int in 0 ..< pageNumber { | ||
| 82 | - let pageOrginX = CGFloat(p)*expressionScrollView.frame.size.width | ||
| 83 | - for j:Int in 0 ..< row { | ||
| 84 | - let row_y = 15 + 40 * CGFloat(j) | ||
| 85 | - for i:Int in 0 ..< column { | ||
| 86 | - let column_x = 20 + width * CGFloat(i) | ||
| 87 | - if number > expressionArray.count{ | ||
| 88 | - break | ||
| 89 | - } | ||
| 90 | - if j != row - 1 || i != column - 1 { | ||
| 91 | - let btn = UIButton(frame: CGRect(x: pageOrginX+column_x, y: row_y, width: width, height: 30)) | ||
| 92 | - btn.tag = number | ||
| 93 | - btn.backgroundColor = UIColor.clear | ||
| 94 | - btn.titleLabel?.font = UIFont.systemFont(ofSize: 30) | ||
| 95 | - btn.setTitle(expressionArray[number], for: .normal) | ||
| 96 | - btn.addTarget(self, action: #selector(ExpressionView.putExpress(_:)), for: UIControlEvents.touchUpInside) | ||
| 97 | - expressionScrollView.addSubview(btn) | ||
| 98 | - number += 1 | ||
| 99 | - } | ||
| 100 | - } | ||
| 101 | - } | ||
| 102 | - let delBtn = UIButton(frame: CGRect(x:pageOrginX+UIScreen.main.bounds.width - 20 - width, y:137, width:width, height:35)) | ||
| 103 | - delBtn.setImage(UIImage(named: "emoji_delete"), for: UIControlState.normal) | ||
| 104 | - delBtn.addTarget(self, action: #selector(ExpressionView.backspaceText(_:)), for: UIControlEvents.touchUpInside) | ||
| 105 | - expressionScrollView.addSubview(delBtn) | ||
| 106 | - } | ||
| 107 | - let sendBtn = UIButton() | ||
| 108 | - sendBtn.frame = CGRect(x:self.frame.size.width-width*2, y:self.frame.size.height-40, width:60, height:30) | ||
| 109 | - sendBtn.backgroundColor = Theme.topBarColor() | ||
| 110 | - sendBtn.setTitle("发送", for: UIControlState.normal) | ||
| 111 | - sendBtn.layer.cornerRadius = 5 | ||
| 112 | - sendBtn.titleLabel?.font = UIFont.systemFont(ofSize: 13) | ||
| 113 | - sendBtn.addTarget(self, action: #selector(ExpressionView.emojiSendBtn(_:)), for: UIControlEvents.touchUpInside) | ||
| 114 | - self.addSubview(sendBtn) | ||
| 115 | - } | ||
| 116 | - | ||
| 117 | - func initMoreFudation(){ | ||
| 118 | - | ||
| 119 | - } | ||
| 120 | - | ||
| 121 | - func putExpress(_ sender:AnyObject){ | ||
| 122 | - let button_tag = sender as! UIButton | ||
| 123 | - if delegate != nil { | ||
| 124 | - // delegate.emojiBtnInput(button_tag.tag) | ||
| 125 | - delegate.emojiBtnInput(emoji: expressionArray[button_tag.tag]) | ||
| 126 | - } | ||
| 127 | - } | ||
| 128 | - | ||
| 129 | - func backspaceText(_ sender:AnyObject){ | ||
| 130 | - if delegate != nil { | ||
| 131 | - delegate.backSpaceText() | ||
| 132 | - } | ||
| 133 | - } | ||
| 134 | - | ||
| 135 | - func emojiSendBtn(_ sender:AnyObject){ | ||
| 136 | - if delegate != nil { | ||
| 137 | - delegate.sendMessage() | ||
| 138 | - } | ||
| 139 | - } | ||
| 140 | -} | ||
| 141 | - | ||
| 142 | -///MARK: - 表情的协议 | ||
| 143 | -protocol ExpressionViewDelegate : NSObjectProtocol { | ||
| 144 | - // func emojiBtnInput(emojiTag:Int) | ||
| 145 | - func emojiBtnInput(emoji:String) | ||
| 146 | - | ||
| 147 | - func backSpaceText() | ||
| 148 | - func sendMessage() | ||
| 149 | -} | ||
| 150 | - |
YouerLiveVideo/YouerLiveVideo/Aliv/LiveVideoViewController.swift
| @@ -1,56 +0,0 @@ | @@ -1,56 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// LiveVideoViewController.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 左丞 on 16/11/9. | ||
| 6 | -// Copyright © 2016年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | -import CoreTelephony | ||
| 11 | -class LiveVideoViewController: UIViewController { | ||
| 12 | - | ||
| 13 | - var callCenter:CTCallCenter! | ||
| 14 | - var liveSession:AlivcLiveSession! | ||
| 15 | - var url:String! | ||
| 16 | - var timer:Timer! | ||
| 17 | - var handle:FileHandle! | ||
| 18 | - var currentPosition:AVCaptureDevicePosition! | ||
| 19 | - var last:Int! | ||
| 20 | - var logArray:NSMutableArray! | ||
| 21 | - var lastPinchDistance:CGFloat! | ||
| 22 | - var isCTCallStateDisconnected:Bool! | ||
| 23 | - | ||
| 24 | - override var preferredStatusBarStyle : UIStatusBarStyle { | ||
| 25 | - return .default | ||
| 26 | - } | ||
| 27 | - | ||
| 28 | - override var prefersStatusBarHidden:Bool{ | ||
| 29 | - return true | ||
| 30 | - } | ||
| 31 | - | ||
| 32 | - override func viewDidLoad() { | ||
| 33 | - super.viewDidLoad() | ||
| 34 | - logArray = NSMutableArray() | ||
| 35 | - | ||
| 36 | - // Do any additional setup after loading the view. | ||
| 37 | - } | ||
| 38 | - | ||
| 39 | - override func didReceiveMemoryWarning() { | ||
| 40 | - super.didReceiveMemoryWarning() | ||
| 41 | - // Dispose of any resources that can be recreated. | ||
| 42 | - } | ||
| 43 | - | ||
| 44 | - | ||
| 45 | - /* | ||
| 46 | - // MARK: - Navigation | ||
| 47 | - | ||
| 48 | - // In a storyboard-based application, you will often want to do a little preparation before navigation | ||
| 49 | - override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { | ||
| 50 | - // Get the new view controller using segue.destinationViewController. | ||
| 51 | - // Pass the selected object to the new view controller. | ||
| 52 | - } | ||
| 53 | - */ | ||
| 54 | - | ||
| 55 | -} | ||
| 56 | - |
YouerLiveVideo/YouerLiveVideo/Aliv/MessageTableViewCell.swift
| @@ -1,27 +0,0 @@ | @@ -1,27 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// MessageTableViewCell.swift | ||
| 3 | -// TableViewCellTest | ||
| 4 | -// | ||
| 5 | -// Created by 葛建军 on 16/11/19. | ||
| 6 | -// Copyright © 2016年 HANGZHOUTEAM. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class MessageTableViewCell: UITableViewCell { | ||
| 12 | - @IBOutlet var personImageView: UIImageView! | ||
| 13 | - @IBOutlet var contentLabel: UILabel! | ||
| 14 | - @IBOutlet var contentHeight: NSLayoutConstraint! | ||
| 15 | - @IBOutlet var contentWidth: NSLayoutConstraint! | ||
| 16 | - override func awakeFromNib() { | ||
| 17 | - super.awakeFromNib() | ||
| 18 | - // Initialization code | ||
| 19 | - } | ||
| 20 | - | ||
| 21 | - override func setSelected(_ selected: Bool, animated: Bool) { | ||
| 22 | - super.setSelected(selected, animated: animated) | ||
| 23 | - | ||
| 24 | - // Configure the view for the selected state | ||
| 25 | - } | ||
| 26 | - | ||
| 27 | -} |
YouerLiveVideo/YouerLiveVideo/Aliv/MessageTableViewCell.xib
| @@ -1,52 +0,0 @@ | @@ -1,52 +0,0 @@ | ||
| 1 | -<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
| 2 | -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11201" systemVersion="15G31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> | ||
| 3 | - <dependencies> | ||
| 4 | - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11161"/> | ||
| 5 | - <capability name="Constraints to layout margins" minToolsVersion="6.0"/> | ||
| 6 | - <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | ||
| 7 | - </dependencies> | ||
| 8 | - <objects> | ||
| 9 | - <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> | ||
| 10 | - <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> | ||
| 11 | - <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="28" id="KGk-i7-Jjw" customClass="MessageTableViewCell" customModule="YouerLiveVideo" customModuleProvider="target"> | ||
| 12 | - <rect key="frame" x="0.0" y="0.0" width="320" height="28"/> | ||
| 13 | - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
| 14 | - <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" restorationIdentifier="MessageTableViewCell" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM"> | ||
| 15 | - <frame key="frameInset" width="320" height="27"/> | ||
| 16 | - <autoresizingMask key="autoresizingMask"/> | ||
| 17 | - <subviews> | ||
| 18 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="x2S-y4-nB8"> | ||
| 19 | - <constraints> | ||
| 20 | - <constraint firstAttribute="height" constant="20" id="Sev-X4-7BV"/> | ||
| 21 | - <constraint firstAttribute="width" constant="20" id="sbk-4c-kjT"/> | ||
| 22 | - </constraints> | ||
| 23 | - </imageView> | ||
| 24 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bH7-1c-xjC"> | ||
| 25 | - <color key="backgroundColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> | ||
| 26 | - <constraints> | ||
| 27 | - <constraint firstAttribute="height" constant="17" id="pVR-q3-0t8"/> | ||
| 28 | - <constraint firstAttribute="width" constant="35.5" id="wO5-f6-3GH"/> | ||
| 29 | - </constraints> | ||
| 30 | - <fontDescription key="fontDescription" type="system" pointSize="14"/> | ||
| 31 | - <nil key="textColor"/> | ||
| 32 | - <nil key="highlightedColor"/> | ||
| 33 | - </label> | ||
| 34 | - </subviews> | ||
| 35 | - <color key="backgroundColor" red="0.1058823529" green="0.82745098039999998" blue="0.74509803919999995" alpha="1" colorSpace="calibratedRGB"/> | ||
| 36 | - <constraints> | ||
| 37 | - <constraint firstItem="bH7-1c-xjC" firstAttribute="leading" secondItem="x2S-y4-nB8" secondAttribute="trailing" constant="8" id="5ck-CI-g4R"/> | ||
| 38 | - <constraint firstAttribute="topMargin" secondItem="x2S-y4-nB8" secondAttribute="top" id="8Fk-kd-Yaj"/> | ||
| 39 | - <constraint firstAttribute="leadingMargin" secondItem="x2S-y4-nB8" secondAttribute="leading" id="Mls-bw-OUb"/> | ||
| 40 | - <constraint firstItem="bH7-1c-xjC" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="topMargin" constant="3" id="iSK-8C-cgN"/> | ||
| 41 | - </constraints> | ||
| 42 | - </tableViewCellContentView> | ||
| 43 | - <connections> | ||
| 44 | - <outlet property="contentHeight" destination="pVR-q3-0t8" id="MCG-ob-6KF"/> | ||
| 45 | - <outlet property="contentLabel" destination="bH7-1c-xjC" id="L0L-sE-RWm"/> | ||
| 46 | - <outlet property="contentWidth" destination="wO5-f6-3GH" id="xYt-kD-dbG"/> | ||
| 47 | - <outlet property="personImageView" destination="x2S-y4-nB8" id="Hem-Nb-QBh"/> | ||
| 48 | - </connections> | ||
| 49 | - <point key="canvasLocation" x="26" y="44"/> | ||
| 50 | - </tableViewCell> | ||
| 51 | - </objects> | ||
| 52 | -</document> |
YouerLiveVideo/YouerLiveVideo/AliveVideoPlayer/AlivcInforViewController.swift
| @@ -1,150 +0,0 @@ | @@ -1,150 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// AlivcInforViewController.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 左丞 on 17/1/16. | ||
| 6 | -// Copyright © 2017年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class AlivcInforViewController: UIViewController { | ||
| 12 | - | ||
| 13 | - | ||
| 14 | - @IBOutlet weak var contentView: UIView! | ||
| 15 | - @IBOutlet weak var scrollView: UIScrollView! | ||
| 16 | - @IBOutlet weak var alivcInfor: UILabel! | ||
| 17 | - @IBOutlet weak var remainBtn: UIButton! | ||
| 18 | - @IBOutlet weak var userNum: UILabel! | ||
| 19 | - @IBOutlet weak var nickName: UILabel! | ||
| 20 | - @IBOutlet weak var image: UIImageView! | ||
| 21 | - | ||
| 22 | - @IBOutlet weak var contentheight: NSLayoutConstraint! | ||
| 23 | - @IBOutlet weak var fileLine: UILabel!//直播上方的一条线 | ||
| 24 | - @IBOutlet weak var alivcAccessories: UIView! | ||
| 25 | - var liveDetail:LiveDetail! | ||
| 26 | - var fileArr:[FileInfor] = [] | ||
| 27 | - override func viewDidLoad() { | ||
| 28 | - super.viewDidLoad() | ||
| 29 | - if liveDetail.f_IsAttention == 1{ | ||
| 30 | - remainBtn.setTitle("已关注", for: .normal) | ||
| 31 | - } | ||
| 32 | - nickName.text = "昵称 : " + liveDetail.f_RealName | ||
| 33 | - alivcInfor.text = JSON.fromString(jsonString: liveDetail.f_Description)!.dictionaryValue["announcement"]!.stringValue | ||
| 34 | - userNum.text = "帐号 : " + liveDetail.f_Account | ||
| 35 | - image.sd_setImage(with: URL(string: liveDetail.f_HeadIcon), placeholderImage: #imageLiteral(resourceName: "default_userRoom")) | ||
| 36 | - image.layer.cornerRadius = image.frame.size.width/2 | ||
| 37 | - image.layer.masksToBounds = true | ||
| 38 | - creatAlivcAccessoriesView() | ||
| 39 | -// image | ||
| 40 | - | ||
| 41 | - // Do any additional setup after loading the view. | ||
| 42 | - } | ||
| 43 | - @IBAction func isActionClick(_ sender: UIButton) { | ||
| 44 | - if !NIMSDK.shared().loginManager.isLogined(){ | ||
| 45 | - AppDelegate.instance().window?.makeToast("请您先登录!") | ||
| 46 | - return | ||
| 47 | - } | ||
| 48 | - var isAttention = 0 | ||
| 49 | - var str = "是否确认取消关注" | ||
| 50 | - if liveDetail.f_IsAttention == 0{ | ||
| 51 | - isAttention = 1 | ||
| 52 | - str = "是否确认关注" | ||
| 53 | - } | ||
| 54 | - | ||
| 55 | - let alert = UIAlertController(title: nil, message: str, preferredStyle: .alert) | ||
| 56 | - alert.addAction(UIAlertAction(title: "确定", style: .default, handler: { (action) in | ||
| 57 | - AppDelegate.instance().httpServer.setIsAction(parameters: ["F_OrganizeId":self.liveDetail.f_OrganizeId as AnyObject,"F_Action":isAttention as AnyObject]) { (str, error) in | ||
| 58 | - if error == nil { | ||
| 59 | - if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 60 | - if isAttention == 1{ | ||
| 61 | - self.remainBtn.setTitle("已关注", for: .normal) | ||
| 62 | - }else{ | ||
| 63 | - self.remainBtn.setTitle("+ 关注", for: .normal) | ||
| 64 | - } | ||
| 65 | - self.liveDetail.f_IsAttention = isAttention | ||
| 66 | - }else{ | ||
| 67 | - self.view.makeToast("关注失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
| 68 | - } | ||
| 69 | - } | ||
| 70 | - else{ | ||
| 71 | - self.view.makeToast("关注失败:\(error?.localizedFailureReason)") | ||
| 72 | - } | ||
| 73 | - } | ||
| 74 | - })) | ||
| 75 | - alert.addAction(UIAlertAction(title: "取消", style: .cancel, handler: nil)) | ||
| 76 | - self.present(alert, animated: false, completion: nil) | ||
| 77 | - | ||
| 78 | - } | ||
| 79 | - | ||
| 80 | - override func viewWillAppear(_ animated: Bool) { | ||
| 81 | - super.viewWillAppear(animated) | ||
| 82 | - } | ||
| 83 | - | ||
| 84 | - func creatAlivcAccessoriesView(){ | ||
| 85 | - let des = JSON.fromString(jsonString: liveDetail.f_Description)!["attachFiles"].arrayValue | ||
| 86 | - for item in des{ | ||
| 87 | - fileArr.append(FileInfor(json: item)) | ||
| 88 | - } | ||
| 89 | - if fileArr.count == 0{ | ||
| 90 | - fileLine.isHidden = true | ||
| 91 | - alivcAccessories.isHidden = true | ||
| 92 | - }else{ | ||
| 93 | - fileLine.isHidden = false | ||
| 94 | - alivcAccessories.isHidden = false | ||
| 95 | - for i in 0..<fileArr.count{ | ||
| 96 | - let views = UIView(frame: CGRect(x: 0, y: alivcAccessories.frame.maxY+(20+8)*CGFloat(i)+4, width: getScreenWidth(), height: 28)) | ||
| 97 | - let image = UIImageView(frame: CGRect(x: alivcAccessories.frame.origin.x, y: 4, width: 20, height: 20)) | ||
| 98 | - let imageName = selectImageFromString(string: fileArr[i].name) | ||
| 99 | - image.image = UIImage(named: imageName) | ||
| 100 | - views.addSubview(image) | ||
| 101 | - let label = UILabel(frame: CGRect(x: image.frame.maxX+8, y: image.frame.origin.y, width: self.view.frame.size.width - image.frame.maxX+8 - 20, height: 20)) | ||
| 102 | - label.font = UIFont.systemFont(ofSize: 13) | ||
| 103 | - label.textAlignment = .left | ||
| 104 | - label.textColor = UIColor.black | ||
| 105 | - label.text = fileArr[i].name | ||
| 106 | - views.addSubview(label) | ||
| 107 | - views.tag = i+10000 | ||
| 108 | - views.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(AlivcInforViewController.tapGestureClickAction(tap:)))) | ||
| 109 | - contentView.addSubview(views) | ||
| 110 | - } | ||
| 111 | - contentheight.constant = contentView.viewWithTag(10000+fileArr.count-1)!.frame.maxY | ||
| 112 | - } | ||
| 113 | - } | ||
| 114 | - | ||
| 115 | - func tapGestureClickAction(tap:UIGestureRecognizer){ | ||
| 116 | - let num = tap.view!.tag - 10000 | ||
| 117 | - let down=DownLoad.share | ||
| 118 | - down.superVC=self | ||
| 119 | - down.downLoadWithUrl(url: fileArr[num].url) | ||
| 120 | - | ||
| 121 | - } | ||
| 122 | - | ||
| 123 | - override func didReceiveMemoryWarning() { | ||
| 124 | - super.didReceiveMemoryWarning() | ||
| 125 | - // Dispose of any resources that can be recreated. | ||
| 126 | - } | ||
| 127 | - | ||
| 128 | - | ||
| 129 | - /* | ||
| 130 | - // MARK: - Navigation | ||
| 131 | - | ||
| 132 | - // In a storyboard-based application, you will often want to do a little preparation before navigation | ||
| 133 | - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { | ||
| 134 | - // Get the new view controller using segue.destinationViewController. | ||
| 135 | - // Pass the selected object to the new view controller. | ||
| 136 | - } | ||
| 137 | - */ | ||
| 138 | - | ||
| 139 | -} | ||
| 140 | - | ||
| 141 | -class FileInfor { | ||
| 142 | - var name:String! | ||
| 143 | - var url:String! | ||
| 144 | - var fileSize:NSNumber! | ||
| 145 | - init(json:JSON){ | ||
| 146 | - name = json["fileName"].stringValue | ||
| 147 | - url = json["fileUrl"].stringValue | ||
| 148 | - fileSize = json["fileSize"].numberValue | ||
| 149 | - } | ||
| 150 | -} |
YouerLiveVideo/YouerLiveVideo/AliveVideoPlayer/MoivePlayerViewController.swift
| @@ -1,966 +0,0 @@ | @@ -1,966 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// MoivePlayerViewController.swift | ||
| 3 | -// XSTVideoPalyer | ||
| 4 | -// | ||
| 5 | -// Created by 左丞 on 16/11/23. | ||
| 6 | -// Copyright © 2016年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | -import Foundation | ||
| 11 | - | ||
| 12 | -class MoivePlayerViewController: UIViewController,AliVcAccessKeyProtocol,RiverRunCommentManagerDelegate,NIMChatManagerDelegate,UITextFieldDelegate,UITableViewDelegate,UITableViewDataSource,UIScrollViewDelegate { | ||
| 13 | - | ||
| 14 | - | ||
| 15 | - @IBOutlet weak var shareView: UIView! | ||
| 16 | - @IBOutlet weak var shareViewBottom: NSLayoutConstraint! | ||
| 17 | - | ||
| 18 | - @IBOutlet weak var scrollHeight: NSLayoutConstraint! | ||
| 19 | - @IBOutlet weak var scrollBottom: NSLayoutConstraint! | ||
| 20 | - @IBOutlet weak var scrollView: UIScrollView! | ||
| 21 | - @IBOutlet weak var scrollviewLocalView: UIView! | ||
| 22 | - @IBOutlet weak var scrollViewContanctWidth: NSLayoutConstraint! | ||
| 23 | - | ||
| 24 | - @IBOutlet weak var userImage: UIImageView! | ||
| 25 | - | ||
| 26 | - @IBOutlet weak var activeNum: UILabel! | ||
| 27 | - @IBOutlet weak var userName: UILabel! | ||
| 28 | - @IBOutlet weak var screenHorizontalBtn: UIButton! | ||
| 29 | - @IBOutlet weak var chatTableView: UITableView! | ||
| 30 | - @IBOutlet weak var leaveMessageTableView: UITableView! | ||
| 31 | - @IBOutlet weak var sunTitleView: UIView! | ||
| 32 | - var sendWord: UITextField! | ||
| 33 | - var sendWordView: UIView! | ||
| 34 | -// var recharge:UIButton! | ||
| 35 | -// var presentView:UIButton! | ||
| 36 | - var sendWordBtn:UIButton! | ||
| 37 | - | ||
| 38 | - var mPlayerView:UIView! | ||
| 39 | - var activityBackgroundView:UIView! | ||
| 40 | - var activityIndicator:UIActivityIndicatorView! | ||
| 41 | - var mPlayer:AliVcMediaPlayer! | ||
| 42 | - @IBOutlet weak var chatLocalView: UIView! | ||
| 43 | - @IBOutlet weak var leaveMessageLocalView: UIView! | ||
| 44 | - var systemBrightness:CGFloat!//屏幕亮度 | ||
| 45 | - var conn:Reachability! | ||
| 46 | - var isReplay:Bool = false | ||
| 47 | - var mPaused:Bool = false | ||
| 48 | - var mSourceURL:URL! | ||
| 49 | - | ||
| 50 | - | ||
| 51 | - var accessKeyID = "LTAIDOJoPQejwtoF" | ||
| 52 | - var accessKeySecret = "rCRMo1TFvBWIkKASB59DRmRJxm9GyK" | ||
| 53 | - var commentTimer:Timer! | ||
| 54 | - var manager:RiverRunCommentManager! | ||
| 55 | - var commentNUM:CGFloat! | ||
| 56 | - var commentArray:[Any] = [] | ||
| 57 | - var liveDetail:LiveDetail!//当前没有传发送消息会闪退 | ||
| 58 | - var messageArr:[NIMMessage] = [] | ||
| 59 | - var leaveMessageArr:[Comment] = [] | ||
| 60 | - var timer:Timer! | ||
| 61 | - var isSendChatMessage:Int = 0//0聊天,1简介,2留言板 | ||
| 62 | - var activePersonNum:NSInteger = 0 | ||
| 63 | - func getAccessKeyIDSecret() -> AliVcAccesskey! { | ||
| 64 | - let accessKey = AliVcAccesskey() | ||
| 65 | - accessKey.accessKeyId = accessKeyID | ||
| 66 | - accessKey.accessKeySecret = accessKeySecret | ||
| 67 | - return accessKey | ||
| 68 | - } | ||
| 69 | - override func viewDidLoad() { | ||
| 70 | - super.viewDidLoad() | ||
| 71 | - mSourceURL = URL(string:creatAlivcURLString(sid: liveDetail.f_Sid)) | ||
| 72 | - userName.text = liveDetail.f_RealName | ||
| 73 | - userImage.sd_setImage(with: URL(string: liveDetail.f_HeadIcon), placeholderImage: #imageLiteral(resourceName: "default_userRoom")) | ||
| 74 | - NIMSDK.shared().chatManager.add(self) | ||
| 75 | - scrollHeight.constant = 100 | ||
| 76 | - btnFlagLabel.frame = CGRect(x: 0, y: 28, width: (getScreenWidth()-2)/3, height: 4) | ||
| 77 | - scrollViewContanctWidth.constant = getScreenWidth()*3 | ||
| 78 | - scrollView.isPagingEnabled = true | ||
| 79 | - scrollView.showsHorizontalScrollIndicator = false | ||
| 80 | - scrollView.showsVerticalScrollIndicator = false | ||
| 81 | - | ||
| 82 | - AliVcMediaPlayer.setAccessKeyDelegate(self) | ||
| 83 | - NotificationCenter.default.addObserver(self, selector: #selector(MoivePlayerViewController.becomeActive), name: NSNotification.Name.UIApplicationDidBecomeActive, object: nil) | ||
| 84 | - NotificationCenter.default.addObserver(self, selector: #selector(MoivePlayerViewController.resignActive), name: NSNotification.Name.UIApplicationWillResignActive, object: nil) | ||
| 85 | - NotificationCenter.default.addObserver(self, selector: #selector(MoivePlayerViewController.keyboardFrrameChange(noti:)), name: NSNotification.Name.UIKeyboardWillChangeFrame, object: nil) | ||
| 86 | - | ||
| 87 | - playMoive() | ||
| 88 | - changeMPlayFrame() | ||
| 89 | - mPlayer.scalingMode = scalingModeAspectFit | ||
| 90 | - commentTimer = Timer(timeInterval: 0.1, target: self, selector: #selector(MoivePlayerViewController.commentTimerFired), userInfo: nil, repeats: true) | ||
| 91 | - commentNUM = 0 | ||
| 92 | - RunLoop.current.add(commentTimer, forMode: .commonModes) | ||
| 93 | - manager = RiverRunCommentManager(comments: commentArray, delegate: self, andPresent: sunTitleView) | ||
| 94 | - manager.start() | ||
| 95 | - self.view.sendSubview(toBack: sunTitleView) | ||
| 96 | - | ||
| 97 | - NotificationCenter.default.addObserver(self, selector: #selector(MoivePlayerViewController.networkStateChange), name: NSNotification.Name.reachabilityChanged, object: nil) | ||
| 98 | - conn = Reachability.forInternetConnection() | ||
| 99 | - conn.startNotifier() | ||
| 100 | - toolsCreat() | ||
| 101 | - let parameters:Dictionary<String,AnyObject>=["LiveId":liveDetail.f_Id as AnyObject] | ||
| 102 | - AppDelegate.instance().httpServer.postLiveComment(parameters: parameters) { (str, error) in | ||
| 103 | - if error==nil { | ||
| 104 | - | ||
| 105 | - if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 106 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 107 | - for item in json.contentData().arrayValue{ | ||
| 108 | - self.leaveMessageArr.append(Comment(json: item)) | ||
| 109 | - } | ||
| 110 | - self.leaveMessageArr.sort(by: { (l1, l2) -> Bool in | ||
| 111 | - return l1.f_CreatorTime < l2.f_CreatorTime | ||
| 112 | - }) | ||
| 113 | - self.leaveMessageTableView.reloadData() | ||
| 114 | - if self.leaveMessageArr.count > 0{ | ||
| 115 | - self.leaveMessageTableView.scrollToRow(at: IndexPath(row: self.leaveMessageArr.count-1, section: 0), at: .bottom, animated: false) | ||
| 116 | - } | ||
| 117 | - }, failHandler: { (error) in | ||
| 118 | - self.view.makeToast("获取留言失败:\(error.localizedDescription)") | ||
| 119 | - }) | ||
| 120 | - } | ||
| 121 | - } | ||
| 122 | - } | ||
| 123 | - | ||
| 124 | - XSTLiveManager.shareXSTLiveManager().enterLive(roomId: liveDetail.f_RoomId, completion: { | ||
| 125 | - succ,room,member in | ||
| 126 | - if !succ{ | ||
| 127 | - self.sendWord.placeholder = "请您先登录,在发送消息" | ||
| 128 | - self.sendWord.isUserInteractionEnabled = false | ||
| 129 | - | ||
| 130 | - }else{ | ||
| 131 | - self.activePersonNum = room!.onlineUserCount | ||
| 132 | - self.activeNum.text = "\(room!.onlineUserCount)" | ||
| 133 | - } | ||
| 134 | - }) | ||
| 135 | - XSTLiveManager.shareXSTLiveManager().fetchLiveInfo(roomId: liveDetail.f_RoomId, completion: { suc , room in | ||
| 136 | - if suc { | ||
| 137 | - } | ||
| 138 | - }) | ||
| 139 | - sendWordView.frame = CGRect(x: 0, y: getScreenHeight()-50, width: getScreenWidth(), height: 50) | ||
| 140 | - | ||
| 141 | - | ||
| 142 | - // Do any additional setup after loading the view. | ||
| 143 | - } | ||
| 144 | - | ||
| 145 | - func toolsCreat(){ | ||
| 146 | - sendWordView = UIView(frame: CGRect(x: 0, y: getScreenHeight()-50, width: getScreenWidth(), height: 50)) | ||
| 147 | - sendWordView.backgroundColor = UIColor.lightGray.withAlphaComponent(0.7) | ||
| 148 | - self.view.insertSubview(sendWordView, belowSubview: shareView) | ||
| 149 | -// presentView = UIButton(frame: CGRect(x: sendWordView.frame.size.width-42, y: 8, width: 34, height: 34)) | ||
| 150 | -// presentView.setImage(#imageLiteral(resourceName: "礼物数量.png").withRenderingMode(.alwaysTemplate), for: .normal) | ||
| 151 | -// presentView.tintColor = Theme.topBarColor() | ||
| 152 | -// | ||
| 153 | -// presentView.backgroundColor = UIColor.white | ||
| 154 | -// presentView.layer.cornerRadius = 5 | ||
| 155 | -// presentView.layer.masksToBounds = true | ||
| 156 | -// presentView.addTarget(self, action: #selector(MoivePlayerViewController.presentBtnClick), for: .touchUpInside) | ||
| 157 | -// sendWordView.addSubview(presentView) | ||
| 158 | - | ||
| 159 | -// recharge = UIButton(frame: CGRect(x: presentView.frame.origin.x - 58, y: 8, width: 50, height: 34)) | ||
| 160 | -// recharge.backgroundColor = UIColor.white | ||
| 161 | -// recharge.setTitle("充值", for: .normal) | ||
| 162 | -// recharge.titleLabel?.font = UIFont.systemFont(ofSize: 15) | ||
| 163 | -// recharge.setTitleColor(Theme.topBarColor(), for: .normal) | ||
| 164 | -// | ||
| 165 | -// recharge.layer.cornerRadius = 5 | ||
| 166 | -// recharge.layer.masksToBounds = true | ||
| 167 | -// | ||
| 168 | -// recharge.addTarget(self, action: #selector(MoivePlayerViewController.rechargeBtnClick), for: .touchUpInside) | ||
| 169 | -// sendWordView.addSubview(recharge) | ||
| 170 | -// | ||
| 171 | -// sendWord = UITextField(frame: CGRect(x: 8, y: 8, width: recharge.frame.origin.x - 16, height: 34)) | ||
| 172 | - sendWord = UITextField(frame: CGRect(x: 8, y: 8, width: getScreenWidth() - 16 - 76, height: 34)) | ||
| 173 | - | ||
| 174 | - sendWord.delegate = self | ||
| 175 | - sendWord.returnKeyType = .send | ||
| 176 | - sendWord.layer.cornerRadius = 5 | ||
| 177 | - sendWord.placeholder = "请输入聊天内容" | ||
| 178 | - sendWord.backgroundColor = UIColor.white | ||
| 179 | - sendWord.font = UIFont.systemFont(ofSize: 15) | ||
| 180 | - sendWord.layer.masksToBounds = true | ||
| 181 | - sendWord.layer.borderColor = UIColor.lightGray.cgColor | ||
| 182 | - sendWord.layer.borderWidth = 1 | ||
| 183 | - sendWordView.addSubview(sendWord) | ||
| 184 | - | ||
| 185 | - sendWordBtn = UIButton(frame: CGRect(x: sendWord.frame.maxX + 8, y: 8, width: 60, height: 34)) | ||
| 186 | - sendWordBtn.backgroundColor = Theme.topBarColor() | ||
| 187 | - sendWordBtn.setTitle("发 送", for: .normal) | ||
| 188 | - sendWordBtn.titleLabel?.font = UIFont.systemFont(ofSize: 15) | ||
| 189 | - sendWordBtn.setTitleColor(UIColor.white, for: .normal) | ||
| 190 | - | ||
| 191 | - sendWordBtn.layer.cornerRadius = 5 | ||
| 192 | - sendWordBtn.layer.masksToBounds = true | ||
| 193 | - | ||
| 194 | - sendWordBtn.addTarget(self, action: #selector(MoivePlayerViewController.sendmessage(_:)), for: .touchUpInside) | ||
| 195 | - sendWordView.addSubview(sendWordBtn) | ||
| 196 | - | ||
| 197 | - | ||
| 198 | - } | ||
| 199 | - // 返回状态栏的样式 | ||
| 200 | - override var preferredStatusBarStyle: UIStatusBarStyle{ | ||
| 201 | - return UIStatusBarStyle.lightContent | ||
| 202 | - } | ||
| 203 | - | ||
| 204 | - func rechargeBtnClick(){ | ||
| 205 | - AppDelegate.instance().window?.makeToast("敬请期待...") | ||
| 206 | - } | ||
| 207 | - | ||
| 208 | - func presentBtnClick(){ | ||
| 209 | - AppDelegate.instance().window?.makeToast("敬请期待...") | ||
| 210 | - } | ||
| 211 | - | ||
| 212 | - override func viewWillDisappear(_ animated: Bool) { | ||
| 213 | - super.viewWillDisappear(animated) | ||
| 214 | - if timer != nil{ | ||
| 215 | - timer.invalidate() | ||
| 216 | - timer = nil | ||
| 217 | - } | ||
| 218 | - XSTLiveManager.shareXSTLiveManager().removeLive(roomId: liveDetail.f_RoomId, completion: { | ||
| 219 | - succ in | ||
| 220 | - | ||
| 221 | - }) | ||
| 222 | - } | ||
| 223 | - | ||
| 224 | - override func viewDidAppear(_ animated: Bool) { | ||
| 225 | - super.viewDidAppear(animated) | ||
| 226 | - AppDelegate.instance().blockRotation = true | ||
| 227 | - systemBrightness = UIScreen.main.brightness | ||
| 228 | - } | ||
| 229 | - | ||
| 230 | - override func viewDidDisappear(_ animated: Bool) { | ||
| 231 | - super.viewDidDisappear(animated) | ||
| 232 | - UIScreen.main.brightness = systemBrightness | ||
| 233 | - } | ||
| 234 | - | ||
| 235 | - func keyboardFrrameChange(noti:NSNotification){ | ||
| 236 | - self.view.insertSubview(sendWordView, belowSubview: shareView) | ||
| 237 | - sendWordView.frame.origin.x = 0 | ||
| 238 | - sendWordView.frame.origin.y = getScreenHeight() - 50 | ||
| 239 | - let userinfor = noti.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue | ||
| 240 | - let rect = userinfor!.cgRectValue | ||
| 241 | - UIView.animate(withDuration: 0.25, animations: { | ||
| 242 | - self.sendWordView.frame.origin.y = getScreenHeight() - rect.size.height - 50 | ||
| 243 | - }, completion: { finsh in | ||
| 244 | - if rect.origin.y != getScreenHeight(){ | ||
| 245 | - self.displayAllBtn() | ||
| 246 | - } | ||
| 247 | - }) | ||
| 248 | - } | ||
| 249 | - | ||
| 250 | - func becomeActive(){ | ||
| 251 | - EnterForeGroundPlayVideo() | ||
| 252 | - | ||
| 253 | - } | ||
| 254 | - | ||
| 255 | - func resignActive(){ | ||
| 256 | - EnterBackGroundPauseVideo() | ||
| 257 | - } | ||
| 258 | - | ||
| 259 | - func EnterBackGroundPauseVideo(){ | ||
| 260 | - if mPlayer != nil && !mPaused { | ||
| 261 | - mPlayer.pause() | ||
| 262 | - } | ||
| 263 | - UIScreen.main.brightness = systemBrightness | ||
| 264 | - } | ||
| 265 | - | ||
| 266 | - func EnterForeGroundPlayVideo(){ | ||
| 267 | - if mPlayer != nil && !mPaused { | ||
| 268 | - mPlayer.play() | ||
| 269 | - | ||
| 270 | - } | ||
| 271 | - UIScreen.main.brightness = systemBrightness | ||
| 272 | - } | ||
| 273 | - | ||
| 274 | - func networkStateChange(){ | ||
| 275 | - if mSourceURL != nil && mSourceURL.isFileURL{ | ||
| 276 | - checkNetworkState() | ||
| 277 | - } | ||
| 278 | - } | ||
| 279 | - | ||
| 280 | - func checkNetworkState(){ | ||
| 281 | - let wifi = Reachability.forLocalWiFi() | ||
| 282 | - conn = Reachability.forInternetConnection() | ||
| 283 | - if wifi?.currentReachabilityStatus() != NotReachable{ | ||
| 284 | - NSLog("有wifi") | ||
| 285 | - }else if conn.currentReachabilityStatus() != NotReachable{ | ||
| 286 | - NSLog("使用手机自带网络进行上网") | ||
| 287 | - }else{ | ||
| 288 | - NSLog("没有网络") | ||
| 289 | - } | ||
| 290 | - } | ||
| 291 | - func displayAllBtn(){ | ||
| 292 | - for i in 0...4{ | ||
| 293 | - self.view.viewWithTag(200+i)?.isHidden = false | ||
| 294 | - } | ||
| 295 | - sendWordView.isHidden = false | ||
| 296 | - if timer != nil{ | ||
| 297 | - timer.invalidate() | ||
| 298 | - timer = nil | ||
| 299 | - } | ||
| 300 | - if self.sendWordView.frame.origin.y == getScreenHeight()-50{ | ||
| 301 | - timer = Timer.scheduledTimer(timeInterval: 3, target: self, selector: #selector(MoivePlayerViewController.hiddenAllBtn), userInfo: nil, repeats: false) | ||
| 302 | - } | ||
| 303 | - } | ||
| 304 | - | ||
| 305 | - func hiddenAllBtn(){ | ||
| 306 | - for i in 0...4{ | ||
| 307 | - self.view.viewWithTag(200+i)?.isHidden = true | ||
| 308 | - } | ||
| 309 | - if screenHorizontalBtn.isSelected{ | ||
| 310 | - sendWordView.isHidden = true | ||
| 311 | - } | ||
| 312 | - } | ||
| 313 | - | ||
| 314 | - func setupControls(){ | ||
| 315 | - mPlayerView = UIView(frame: CGRect(x: 0, y: 0, width: getScreenWidth(), height: getScreenHeight())) | ||
| 316 | - mPlayerView.backgroundColor = UIColor.clear | ||
| 317 | - self.view.insertSubview(mPlayerView, at: 0) | ||
| 318 | - //缓冲指示 | ||
| 319 | - activityBackgroundView = UIView() | ||
| 320 | - activityBackgroundView.backgroundColor = UIColor.black.withAlphaComponent(0.5) | ||
| 321 | - activityBackgroundView.alpha = 0 | ||
| 322 | - activityBackgroundView.center = mPlayerView.center | ||
| 323 | - activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: .whiteLarge) | ||
| 324 | - activityIndicator.hidesWhenStopped = true | ||
| 325 | - activityIndicator.center = mPlayerView.center | ||
| 326 | - activityIndicator.alpha = 0 | ||
| 327 | - | ||
| 328 | - } | ||
| 329 | - | ||
| 330 | - func playMoive(){ | ||
| 331 | - if mSourceURL == nil{ | ||
| 332 | - return | ||
| 333 | - } | ||
| 334 | - setupControls() | ||
| 335 | - mPlayer = AliVcMediaPlayer() | ||
| 336 | - mPlayer.create(mPlayerView) | ||
| 337 | - mPlayer.view.isUserInteractionEnabled = true | ||
| 338 | - addPlayerObserver() | ||
| 339 | - mPlayer.mediaType = MediaType_AUTO | ||
| 340 | - mPlayer.timeout = 25000 | ||
| 341 | - mPlayer.dropBufferDuration = 8000 | ||
| 342 | - mPlayer.scalingMode = scalingModeAspectFitWithCropping | ||
| 343 | - isReplay = false | ||
| 344 | - | ||
| 345 | - var err = mPlayer.prepare(toPlay: mSourceURL) | ||
| 346 | - if err != ALIVC_SUCCESS{ | ||
| 347 | - activityBackgroundView.removeFromSuperview() | ||
| 348 | - activityIndicator.removeFromSuperview() | ||
| 349 | - return | ||
| 350 | - } | ||
| 351 | - err = mPlayer.play() | ||
| 352 | - if err != ALIVC_SUCCESS{ | ||
| 353 | - return | ||
| 354 | - } | ||
| 355 | - showLoadingIndicators() | ||
| 356 | - | ||
| 357 | - } | ||
| 358 | - | ||
| 359 | - func replayMoive(){ | ||
| 360 | - mPlayer.prepare(toPlay: mSourceURL) | ||
| 361 | - isReplay = false | ||
| 362 | - mPlayer.play() | ||
| 363 | - } | ||
| 364 | - | ||
| 365 | - var scroolPage:CGFloat=0 | ||
| 366 | - @IBAction func isHorScreenClickAction(_ sender: UIButton) { | ||
| 367 | - sendWord.resignFirstResponder() | ||
| 368 | - screenHorizontalBtn.isSelected = !screenHorizontalBtn.isSelected | ||
| 369 | - scrollviewLocalView.isHidden = screenHorizontalBtn.isSelected | ||
| 370 | - if screenHorizontalBtn.isSelected{ | ||
| 371 | - scroolPage = scrollView.contentOffset.x | ||
| 372 | - screenHorizontalBtn.setBackgroundImage(#imageLiteral(resourceName: "screen_part"), for: .normal) | ||
| 373 | - displayAllBtn() | ||
| 374 | - UIApplication.shared.statusBarOrientation = .landscapeRight | ||
| 375 | - UIApplication.shared.keyWindow?.transform = CGAffineTransform(rotationAngle: CGFloat(M_PI_2)) | ||
| 376 | - UIApplication.shared.keyWindow?.frame = CGRect(x: 0, y: 0, width: getScreenHeight(), height: getScreenWidth()) | ||
| 377 | - }else{ | ||
| 378 | - screenHorizontalBtn.setBackgroundImage(#imageLiteral(resourceName: "screen_full"), for: .normal) | ||
| 379 | - UIApplication.shared.statusBarOrientation = .portrait | ||
| 380 | - UIApplication.shared.keyWindow?.transform = CGAffineTransform(rotationAngle: 0) | ||
| 381 | - UIApplication.shared.keyWindow?.frame = CGRect(x: 0, y: 0, width: getScreenWidth(), height: getScreenHeight()) | ||
| 382 | - scrollView.contentOffset.x = scroolPage | ||
| 383 | - } | ||
| 384 | - changeMPlayFrame() | ||
| 385 | - sendWordView.frame = CGRect(x: 0, y: getScreenHeight()-50, width: getScreenWidth(), height: 50) | ||
| 386 | -// presentView.frame.origin.x = sendWordView.frame.size.width - 42 | ||
| 387 | -// recharge.frame.origin.x = presentView.frame.origin.x - 58 | ||
| 388 | -// sendWord.frame.size.width = recharge.frame.origin.x - 16 | ||
| 389 | - sendWord.frame.size.width = getScreenWidth() - 76 | ||
| 390 | - sendWordBtn.frame.origin.x = sendWord.frame.maxX + 8 | ||
| 391 | - | ||
| 392 | - if isSendChatMessage != 1{ | ||
| 393 | - self.view.insertSubview(sendWordView, belowSubview: shareView) | ||
| 394 | - } | ||
| 395 | - } | ||
| 396 | - | ||
| 397 | - override var shouldAutorotate: Bool{ | ||
| 398 | - return false | ||
| 399 | - } | ||
| 400 | - | ||
| 401 | - @IBAction func subTitleCloseClickAction(_ sender: UIButton) { | ||
| 402 | - displayAllBtn() | ||
| 403 | - sender.isSelected = !sender.isSelected | ||
| 404 | - subtitleOff = sender.isSelected | ||
| 405 | - if !sender.isSelected{ | ||
| 406 | - sender.setBackgroundImage(#imageLiteral(resourceName: "subTitle_on"), for: .normal) | ||
| 407 | - }else{ | ||
| 408 | - sender.setBackgroundImage(#imageLiteral(resourceName: "subTitle_off"), for: .normal) | ||
| 409 | - } | ||
| 410 | - subTitleClickAction(isOff: sender.isSelected) | ||
| 411 | - } | ||
| 412 | - | ||
| 413 | - @IBAction func cancleKeyboaed(_ sender: Any) { | ||
| 414 | - self.view.endEditing(true) | ||
| 415 | - self.sendWordView.frame.origin.y = getScreenHeight() - (self.sendWordView.superview!.frame.size.height - self.sendWordView.frame.maxY) - 50 | ||
| 416 | - if isSendChatMessage != 1{ | ||
| 417 | - self.view.insertSubview(sendWordView, belowSubview: shareView) | ||
| 418 | - } | ||
| 419 | - UIView.animate(withDuration: 0.25, animations: { | ||
| 420 | - self.sendWordView.frame.origin.y = getScreenHeight() - 50 | ||
| 421 | - self.shareViewBottom.constant = -120 | ||
| 422 | - self.view.layer.layoutIfNeeded() | ||
| 423 | - }, completion: { finsh in | ||
| 424 | - self.displayAllBtn() | ||
| 425 | - }) | ||
| 426 | - } | ||
| 427 | - | ||
| 428 | - @IBAction func subTitleTapClickAction(_ sender: Any) { | ||
| 429 | - cancleKeyboaed(sender) | ||
| 430 | - } | ||
| 431 | - | ||
| 432 | - @IBAction func backBtnClickAction(_ sender: UIButton) { | ||
| 433 | - if screenHorizontalBtn.isSelected{ | ||
| 434 | - isHorScreenClickAction(screenHorizontalBtn) | ||
| 435 | - displayAllBtn() | ||
| 436 | - }else{ | ||
| 437 | - UIApplication.shared.statusBarOrientation = .portrait | ||
| 438 | - UIApplication.shared.keyWindow?.transform = CGAffineTransform(rotationAngle: 0) | ||
| 439 | - UIApplication.shared.keyWindow?.frame = CGRect(x: 0, y: 0, width: getScreenWidth(), height: getScreenHeight()) | ||
| 440 | - | ||
| 441 | - AppDelegate.instance().blockRotation = false | ||
| 442 | - if mPlayer != nil{ | ||
| 443 | - mPlayer.destroy() | ||
| 444 | - } | ||
| 445 | - removePlayerObserver() | ||
| 446 | - mPlayer = nil | ||
| 447 | - mSourceURL = nil | ||
| 448 | - self.dismiss(animated: true, completion: nil) | ||
| 449 | - } | ||
| 450 | - } | ||
| 451 | - | ||
| 452 | - var subtitleOff:Bool = false | ||
| 453 | - @IBAction func playPauseClickAction(_ sender: UIButton) { | ||
| 454 | - displayAllBtn() | ||
| 455 | - if sender.isSelected{ | ||
| 456 | - sender.setBackgroundImage(#imageLiteral(resourceName: "starLive"), for: .normal) | ||
| 457 | - if isReplay { | ||
| 458 | - mPlayer.prepare(toPlay: mSourceURL) | ||
| 459 | - isReplay = false | ||
| 460 | - } | ||
| 461 | - subTitleClickAction(isOff: subtitleOff); | ||
| 462 | - mPlayer.play() | ||
| 463 | - mPaused = false | ||
| 464 | - mPlayer.muteMode = false | ||
| 465 | - }else{ | ||
| 466 | - sender.setBackgroundImage(#imageLiteral(resourceName: "暂停.png"), for: .normal) | ||
| 467 | - subTitleClickAction(isOff: true); | ||
| 468 | - mPlayer.pause() | ||
| 469 | - mPaused = true | ||
| 470 | - } | ||
| 471 | - sender.isSelected = !sender.isSelected | ||
| 472 | - // self.perform(#selector(MoivePlayerViewController.hideControls(com)), with: nil, afterDelay: fadeDelay) | ||
| 473 | - | ||
| 474 | - } | ||
| 475 | - | ||
| 476 | - @IBAction func shareBtnClick(_ sender: UIButton) { | ||
| 477 | - displayAllBtn() | ||
| 478 | - UIView.animate(withDuration: 0.25, animations: { | ||
| 479 | - self.shareViewBottom.constant = 0 | ||
| 480 | - self.view.layer.layoutIfNeeded() | ||
| 481 | - }) | ||
| 482 | - } | ||
| 483 | - | ||
| 484 | - @IBAction func shareTapGestrueClick(_ sender: UITapGestureRecognizer) { | ||
| 485 | - var platformType:UMSocialPlatformType! | ||
| 486 | - var text:String = "大家快来观看,\(AppDelegate.instance().accountManager.name())正在直播" | ||
| 487 | - switch sender.view!.tag { | ||
| 488 | - case 300://微信朋友圈 | ||
| 489 | - platformType=UMSocialPlatformType.wechatTimeLine | ||
| 490 | - break | ||
| 491 | - case 301://微信 | ||
| 492 | - platformType=UMSocialPlatformType.wechatSession | ||
| 493 | - text = "\(AppDelegate.instance().accountManager.name())给您分享了一个直播,快来看啊" | ||
| 494 | - break | ||
| 495 | - case 302://QQ空间 | ||
| 496 | - platformType=UMSocialPlatformType.qzone | ||
| 497 | - | ||
| 498 | - break | ||
| 499 | - case 303://新浪微博 | ||
| 500 | - platformType=UMSocialPlatformType.sina | ||
| 501 | - //要求text加url | ||
| 502 | - break | ||
| 503 | - case 304://QQ | ||
| 504 | - platformType=UMSocialPlatformType.QQ | ||
| 505 | - text = "\(AppDelegate.instance().accountManager.name())给您分享了一个直播,快来看啊" | ||
| 506 | - break | ||
| 507 | - default: | ||
| 508 | - break | ||
| 509 | - } | ||
| 510 | - var title:String = liveDetail.f_LiveName | ||
| 511 | - if liveDetail.f_LiveName.characters.count > 8{ | ||
| 512 | - title = (liveDetail.f_LiveName as NSString).substring(to: 7)+"..." | ||
| 513 | - } | ||
| 514 | - shareUrl(text: text, url: "http://www.sxspy.net/MZhiBo/Index?LiveId="+liveDetail.f_Id, VC: self, image: #imageLiteral(resourceName: "subTitle_on"), platformType: platformType,title:title) | ||
| 515 | - } | ||
| 516 | - | ||
| 517 | - | ||
| 518 | - | ||
| 519 | - func textFieldShouldReturn(_ textField: UITextField) -> Bool { | ||
| 520 | - textField.resignFirstResponder() | ||
| 521 | - UIView.animate(withDuration: 0.25, animations: { | ||
| 522 | - self.sendWordView.frame.origin.y = getScreenHeight() - 50 | ||
| 523 | - }, completion: { finsh in | ||
| 524 | - self.displayAllBtn() | ||
| 525 | - }) | ||
| 526 | - sendMessage() | ||
| 527 | - return false | ||
| 528 | - } | ||
| 529 | - | ||
| 530 | - func sendMessage(){ | ||
| 531 | - if sendWord.text != ""&&sendWord.text?.replacingOccurrences(of:" " , with: "") != ""{ | ||
| 532 | - if isSendChatMessage == 0{ | ||
| 533 | - XSTLiveManager.shareXSTLiveManager().sendMessage(str: sendWord.text!, roomId: liveDetail.f_RoomId, completion: {succ in | ||
| 534 | - if !succ{ | ||
| 535 | - AppDelegate.instance().window?.makeToast("消息发送失败") | ||
| 536 | - } | ||
| 537 | - }) | ||
| 538 | - }else{//发送留言 | ||
| 539 | - AppDelegate.instance().httpServer.getLiveUserComment(parameters: ["LiveId":liveDetail.f_Id as AnyObject,"CommentDetail":sendWord.text! as AnyObject], completionHandler: { (str, error) in | ||
| 540 | - if error == nil && JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 541 | - AppDelegate.instance().window?.makeToast("留言成功") | ||
| 542 | - let com = Comment() | ||
| 543 | - com.f_RealName = AppDelegate.instance().accountManager.name() | ||
| 544 | - com.f_HeadIcon = AppDelegate.instance().accountManager.photo() | ||
| 545 | - com.f_CreatorUserId = AppDelegate.instance().accountManager.userid | ||
| 546 | - com.f_CreatorTime = currentTime() | ||
| 547 | - com.liveId = self.liveDetail.f_Id | ||
| 548 | - com.commentDetail = self.sendWord.text! | ||
| 549 | - self.leaveMessageArr.append(com) | ||
| 550 | - self.sendWord.text = "" | ||
| 551 | - self.leaveMessageTableView.insertRows(at: [IndexPath(item: self.leaveMessageArr.count - 1, section: 0)], with: .bottom) | ||
| 552 | - self.leaveMessageTableView.scrollToRow(at: IndexPath(item: self.leaveMessageArr.count-1, section: 0), at: .bottom, animated: true) | ||
| 553 | - | ||
| 554 | - }else{ | ||
| 555 | - AppDelegate.instance().window?.makeToast("留言失败:\(error?.localizedDescription)") | ||
| 556 | - } | ||
| 557 | - }) | ||
| 558 | - } | ||
| 559 | - }else{ | ||
| 560 | - if isSendChatMessage == 0{ | ||
| 561 | - AppDelegate.instance().window?.makeToast("不能发送内容为空消息") | ||
| 562 | - }else{ | ||
| 563 | - AppDelegate.instance().window?.makeToast("不能发送内容为空留言") | ||
| 564 | - } | ||
| 565 | - } | ||
| 566 | - } | ||
| 567 | - | ||
| 568 | - @IBAction func sendmessage(_ sender: UIButton) { | ||
| 569 | - sendMessage() | ||
| 570 | - } | ||
| 571 | - | ||
| 572 | - @IBAction func sendLeavemessagemessage(_ sender: UIButton) { | ||
| 573 | - | ||
| 574 | - } | ||
| 575 | - | ||
| 576 | - func onRecvMessages(_ messages: [NIMMessage]) { | ||
| 577 | - for message in messages { | ||
| 578 | - if message.messageType == NIMMessageType.notification{ | ||
| 579 | - if message.messageType == NIMMessageType.notification{ | ||
| 580 | - | ||
| 581 | - if let name = ((message.messageObject as! NIMNotificationObject).content as! NIMChatroomNotificationContent).notifyExt { | ||
| 582 | - if name != "name"+AppDelegate.instance().accountManager.name(){ | ||
| 583 | - self.activePersonNum = self.activePersonNum+1 | ||
| 584 | - } | ||
| 585 | - }else{ | ||
| 586 | - self.activePersonNum = self.activePersonNum-1 | ||
| 587 | - } | ||
| 588 | - self.activeNum.text = "在线人数:\(self.activePersonNum)" | ||
| 589 | - } | ||
| 590 | - } | ||
| 591 | - | ||
| 592 | - if message.session?.sessionId == liveDetail.f_RoomId && message.text != nil{ | ||
| 593 | - messageArr.append(message) | ||
| 594 | - chatTableView.insertRows(at: [IndexPath(row: messageArr.count-1, section: 0)], with: .middle) | ||
| 595 | - chatTableView.scrollToRow(at: IndexPath(item: messageArr.count-1, section: 0), at: .bottom, animated: true) | ||
| 596 | - if !subtitleOff{ | ||
| 597 | - manager.comments.addObjects(from: self.createVideoComment(message: message)) | ||
| 598 | - } | ||
| 599 | - } | ||
| 600 | - } | ||
| 601 | - } | ||
| 602 | - | ||
| 603 | - func send(_ message: NIMMessage, didCompleteWithError error: Error?) { | ||
| 604 | - if error == nil{ | ||
| 605 | - if !subtitleOff{ | ||
| 606 | - manager.comments.addObjects(from: self.createVideoComment(message: message)) | ||
| 607 | - } | ||
| 608 | - messageArr.append(message) | ||
| 609 | - chatTableView.insertRows(at: [IndexPath(row: messageArr.count-1, section: 0)], with: .bottom) | ||
| 610 | - sendWord.text = "" | ||
| 611 | - chatTableView.scrollToRow(at: IndexPath(item: messageArr.count-1, section: 0), at: .bottom, animated: true) | ||
| 612 | - }else{ | ||
| 613 | - | ||
| 614 | - } | ||
| 615 | - } | ||
| 616 | - | ||
| 617 | - func showLoadingIndicators(){ | ||
| 618 | - self.view.addSubview(activityBackgroundView) | ||
| 619 | - self.view.addSubview(activityIndicator) | ||
| 620 | - activityIndicator.startAnimating() | ||
| 621 | - UIView.animate(withDuration: 0.2, animations: { | ||
| 622 | - self.activityBackgroundView.alpha = 1 | ||
| 623 | - self.activityIndicator.alpha = 1 | ||
| 624 | - }) | ||
| 625 | - } | ||
| 626 | - | ||
| 627 | - func hideLoadingIndicators(){ | ||
| 628 | - UIView.animate(withDuration: 0.2, delay: 0, options: .layoutSubviews, animations: { | ||
| 629 | - self.activityBackgroundView.alpha = 0 | ||
| 630 | - self.activityIndicator.alpha = 0 | ||
| 631 | - | ||
| 632 | - }) { (finish) in | ||
| 633 | - self.activityBackgroundView.removeFromSuperview() | ||
| 634 | - self.activityIndicator.removeFromSuperview() | ||
| 635 | - | ||
| 636 | - } | ||
| 637 | - } | ||
| 638 | - | ||
| 639 | - func changeMPlayFrame(){ | ||
| 640 | - if mPlayer != nil && mPlayer.videoWidth != 0{ | ||
| 641 | - let widthbi = CGFloat(mPlayer.videoWidth)/getScreenWidth() | ||
| 642 | - let heightBi = CGFloat(mPlayer.videoHeight)/getScreenHeight() | ||
| 643 | - if widthbi < heightBi || getScreenWidth()>getScreenHeight(){ | ||
| 644 | - mPlayerView.frame = CGRect(x: 0, y: 0, width: getScreenWidth(), height: getScreenHeight()) | ||
| 645 | - }else{ | ||
| 646 | - mPlayerView.frame = CGRect(x: 0, y: 0, width: getScreenWidth(), height: CGFloat(ceil(CGFloat(mPlayer.videoHeight)/widthbi))) | ||
| 647 | - } | ||
| 648 | - | ||
| 649 | - let height = getScreenHeight() - mPlayerView.frame.size.height | ||
| 650 | - if height > 100{ | ||
| 651 | - scrollHeight.constant = height | ||
| 652 | - }else{ | ||
| 653 | - scrollHeight.constant = 50 | ||
| 654 | - } | ||
| 655 | - }else{ | ||
| 656 | - mPlayerView.frame = CGRect(x: 0, y: 0, width: getScreenWidth(), height: getScreenWidth()/5*3) | ||
| 657 | - let height = getScreenHeight() - mPlayerView.frame.size.height | ||
| 658 | - if height > 100{ | ||
| 659 | - scrollHeight.constant = height | ||
| 660 | - }else{ | ||
| 661 | - scrollHeight.constant = 50 | ||
| 662 | - } | ||
| 663 | - } | ||
| 664 | - mPlayer.view = mPlayerView | ||
| 665 | - activityIndicator.center = mPlayerView.center | ||
| 666 | - activityBackgroundView.center = mPlayerView.center | ||
| 667 | - } | ||
| 668 | - | ||
| 669 | - func OnVideoPrepared(noti:Notification){ | ||
| 670 | - timer = Timer.scheduledTimer(timeInterval: 3, target: self, selector: #selector(MoivePlayerViewController.hiddenAllBtn), userInfo: nil, repeats: false) | ||
| 671 | - changeMPlayFrame() | ||
| 672 | - hideLoadingIndicators() | ||
| 673 | - } | ||
| 674 | - | ||
| 675 | - func OnVideoError(noti:Notification){ | ||
| 676 | - isReplay = true | ||
| 677 | - var error_msg = "未知的错误" | ||
| 678 | - let error_code:AliVcMovieErrorCode = mPlayer.errorCode | ||
| 679 | - switch error_code { | ||
| 680 | - case ALIVC_ERR_FUNCTION_DENIED: | ||
| 681 | - error_msg = "未授权" | ||
| 682 | - case ALIVC_ERR_ILLEGALSTATUS: | ||
| 683 | - error_msg = "非法的播放流程" | ||
| 684 | - case ALIVC_ERR_INVALID_INPUTFILE: | ||
| 685 | - error_msg = " 主播还未开播..." | ||
| 686 | - hideLoadingIndicators() | ||
| 687 | - case ALIVC_ERR_NO_INPUTFILE: | ||
| 688 | - error_msg = "无输入文件" | ||
| 689 | - hideLoadingIndicators() | ||
| 690 | - case ALIVC_ERR_NO_NETWORK: | ||
| 691 | - error_msg = "网络连接失败" | ||
| 692 | - case ALIVC_ERR_NO_SUPPORT_CODEC: | ||
| 693 | - error_msg = "不支持的视频编码格式" | ||
| 694 | - hideLoadingIndicators() | ||
| 695 | - case ALIVC_ERR_NO_VIEW: | ||
| 696 | - error_msg = "无显示窗口" | ||
| 697 | - hideLoadingIndicators() | ||
| 698 | - case ALIVC_ERR_NO_MEMORY: | ||
| 699 | - error_msg = "内存不足" | ||
| 700 | - case ALIVC_ERR_DOWNLOAD_TIMEOUT: | ||
| 701 | - error_msg = "网络超时" | ||
| 702 | - case ALIVC_ERR_UNKOWN: | ||
| 703 | - error_msg = "未知错误" | ||
| 704 | - default: | ||
| 705 | - break; | ||
| 706 | - } | ||
| 707 | - if error_code > 500||error_code == ALIVC_ERR_FUNCTION_DENIED{ | ||
| 708 | - mPlayer.reset() | ||
| 709 | - let alertView = UIAlertController(title: nil, message: error_msg, preferredStyle: .alert) | ||
| 710 | - alertView.addAction(UIAlertAction(title: "取消", style: .cancel, handler: nil)) | ||
| 711 | - self.present(alertView, animated: true, completion: nil) | ||
| 712 | - } | ||
| 713 | - if error_code == ALIVC_ERR_DOWNLOAD_TIMEOUT{ | ||
| 714 | - mPlayer.pause() | ||
| 715 | - let alertView = UIAlertController(title: nil, message: error_msg, preferredStyle: .alert) | ||
| 716 | - alertView.addAction(UIAlertAction(title: "等待", style: .cancel, handler: nil)) | ||
| 717 | - alertView.addAction(UIAlertAction(title: "重新连接", style: .default, handler: { (action) in | ||
| 718 | - self.mPlayer.stop() | ||
| 719 | - self.showLoadingIndicators() | ||
| 720 | - self.isReplay = true | ||
| 721 | -// replay() | ||
| 722 | - })) | ||
| 723 | - self.present(alertView, animated: true, completion: nil) | ||
| 724 | - | ||
| 725 | - } | ||
| 726 | - | ||
| 727 | - } | ||
| 728 | - | ||
| 729 | - func OnVideoFinish(noti:Notification){ | ||
| 730 | - isReplay = true | ||
| 731 | - | ||
| 732 | - } | ||
| 733 | - | ||
| 734 | - func OnSeekDone(noti:Notification){ | ||
| 735 | - | ||
| 736 | - } | ||
| 737 | - | ||
| 738 | - func OnStartCache(noti:Notification){ | ||
| 739 | - showLoadingIndicators() | ||
| 740 | - } | ||
| 741 | - | ||
| 742 | - func OnEndCache(noti:Notification){ | ||
| 743 | - hideLoadingIndicators() | ||
| 744 | - } | ||
| 745 | - | ||
| 746 | - | ||
| 747 | - func addPlayerObserver(){ | ||
| 748 | - NotificationCenter.default.addObserver(self, selector: #selector(MoivePlayerViewController.OnVideoPrepared(noti:)), name: NSNotification.Name.AliVcMediaPlayerLoadDidPrepared, object: mPlayer) | ||
| 749 | - NotificationCenter.default.addObserver(self, selector: #selector(MoivePlayerViewController.OnVideoError(noti:)), name: NSNotification.Name.AliVcMediaPlayerPlaybackError, object: mPlayer) | ||
| 750 | - NotificationCenter.default.addObserver(self, selector: #selector(MoivePlayerViewController.OnVideoFinish(noti:)), name: NSNotification.Name.AliVcMediaPlayerPlaybackDidFinish, object: mPlayer) | ||
| 751 | - NotificationCenter.default.addObserver(self, selector: #selector(MoivePlayerViewController.OnSeekDone(noti:)), name: NSNotification.Name.AliVcMediaPlayerSeekingDidFinish, object: mPlayer) | ||
| 752 | - NotificationCenter.default.addObserver(self, selector: #selector(MoivePlayerViewController.OnStartCache(noti:)), name: NSNotification.Name.AliVcMediaPlayerStartCaching, object: mPlayer) | ||
| 753 | - NotificationCenter.default.addObserver(self, selector: #selector(MoivePlayerViewController.OnEndCache(noti:)), name: NSNotification.Name.AliVcMediaPlayerEndCaching, object: mPlayer) | ||
| 754 | - | ||
| 755 | - } | ||
| 756 | - | ||
| 757 | - func removePlayerObserver(){ | ||
| 758 | - NotificationCenter.default.removeObserver(self, name: NSNotification.Name.AliVcMediaPlayerLoadDidPrepared, object: mPlayer) | ||
| 759 | - NotificationCenter.default.removeObserver(self, name: NSNotification.Name.AliVcMediaPlayerPlaybackError, object: mPlayer) | ||
| 760 | - NotificationCenter.default.removeObserver(self, name: NSNotification.Name.AliVcMediaPlayerPlaybackDidFinish, object: mPlayer) | ||
| 761 | - NotificationCenter.default.removeObserver(self, name: NSNotification.Name.AliVcMediaPlayerSeekingDidFinish, object: mPlayer) | ||
| 762 | - NotificationCenter.default.removeObserver(self, name: NSNotification.Name.AliVcMediaPlayerStartCaching, object: mPlayer) | ||
| 763 | - NotificationCenter.default.removeObserver(self, name: NSNotification.Name.AliVcMediaPlayerEndCaching, object: mPlayer) | ||
| 764 | - } | ||
| 765 | - | ||
| 766 | - func willShowComments(_ seek: Bool) -> CGFloat { | ||
| 767 | - return commentNUM | ||
| 768 | - } | ||
| 769 | - | ||
| 770 | - | ||
| 771 | - func commentTimerFired(){ | ||
| 772 | - commentNUM = 0.1+commentNUM | ||
| 773 | - } | ||
| 774 | - | ||
| 775 | - func createVideoComment(message:NIMMessage)->[Any]{ | ||
| 776 | - var videoComments:[Any] = [] | ||
| 777 | - let vpos:CGFloat = 200 | ||
| 778 | - let commentInfo:[NSString:AnyObject] = ["vpos": vpos as AnyObject, | ||
| 779 | - "body": message.text! as AnyObject, | ||
| 780 | - "position": RiverRunCommentUtil.commentPosition(RiverRunCommentUtil.getRandomPosition()) as AnyObject, | ||
| 781 | - "fontSize": RiverRunCommentUtil.commentSize(RiverRunCommentUtil.getRandomFontSize()) as AnyObject, | ||
| 782 | - "color": "0x000000" as AnyObject, | ||
| 783 | - "duration":3 as AnyObject] | ||
| 784 | - videoComments.append(commentInfo) | ||
| 785 | - return videoComments | ||
| 786 | - } | ||
| 787 | - | ||
| 788 | - override func didReceiveMemoryWarning() { | ||
| 789 | - super.didReceiveMemoryWarning() | ||
| 790 | - // Dispose of any resources that can be recreated. | ||
| 791 | - } | ||
| 792 | - | ||
| 793 | - //弹幕开关 | ||
| 794 | - func subTitleClickAction(isOff:Bool){ | ||
| 795 | - manager.deleteAllCommentLayer() | ||
| 796 | - manager.comments.removeAllObjects() | ||
| 797 | - if isOff{ | ||
| 798 | - manager.stop() | ||
| 799 | - }else{ | ||
| 800 | - manager.start() | ||
| 801 | - } | ||
| 802 | - } | ||
| 803 | - | ||
| 804 | - // MARK: - tableViewDelegate | ||
| 805 | - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | ||
| 806 | - if tableView == chatTableView{ | ||
| 807 | - return messageArr.count | ||
| 808 | - }else{ | ||
| 809 | - return leaveMessageArr.count | ||
| 810 | - } | ||
| 811 | - } | ||
| 812 | - | ||
| 813 | - func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { | ||
| 814 | - var str:String! | ||
| 815 | - if tableView == chatTableView{ | ||
| 816 | - str = messageArr[indexPath.row].remoteExt!["name"] as! String + " : " + messageArr[indexPath.row].text! | ||
| 817 | - }else{ | ||
| 818 | - str = leaveMessageArr[indexPath.row].f_RealName + " : " + leaveMessageArr[indexPath.row].commentDetail | ||
| 819 | - } | ||
| 820 | - return (str as NSString).boundingRect(with: CGSize(width: getScreenWidth()-44, height: CGFloat(MAXFLOAT)), options: .usesLineFragmentOrigin, attributes: [NSFontAttributeName:UIFont.systemFont(ofSize: 13)], context: nil).size.height + 40 | ||
| 821 | - | ||
| 822 | - } | ||
| 823 | - | ||
| 824 | - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | ||
| 825 | - if tableView == chatTableView{ | ||
| 826 | - let item = messageArr[indexPath.row] | ||
| 827 | - let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! ChatCell | ||
| 828 | - cell.backgroundColor = UIColor.clear | ||
| 829 | - cell.context.text = item.remoteExt!["name"] as! String + " : " + item.text! | ||
| 830 | - cell.context.numberOfLines = 0 | ||
| 831 | - cell.context.sizeToFit() | ||
| 832 | - if let imageName = NIMSDK.shared().userManager.userInfo(item.from!)?.userInfo?.avatarUrl{ | ||
| 833 | - cell.userImage.sd_setImage(with: URL(string:imageName), placeholderImage: #imageLiteral(resourceName: "default_userRoom")) | ||
| 834 | - }else{ | ||
| 835 | - cell.userImage.image = #imageLiteral(resourceName: "default_userRoom") | ||
| 836 | - } | ||
| 837 | - cell.timeLabel.text = makeTimeIntervalToString(time: item.timestamp) | ||
| 838 | - return cell | ||
| 839 | - }else{ | ||
| 840 | - let item = leaveMessageArr[indexPath.row] | ||
| 841 | - let cell = tableView.dequeueReusableCell(withIdentifier: "cell1", for: indexPath) as! LeaveMessageCell | ||
| 842 | - cell.userImage.sd_setImage(with: URL(string:item.f_HeadIcon), placeholderImage: #imageLiteral(resourceName: "default_userRoom")) | ||
| 843 | - cell.context.text = item.f_RealName + " : " + item.commentDetail! | ||
| 844 | - cell.context.numberOfLines = 0 | ||
| 845 | - cell.context.sizeToFit() | ||
| 846 | - cell.timeLabel.text = item.f_CreatorTime | ||
| 847 | - return cell | ||
| 848 | - } | ||
| 849 | - } | ||
| 850 | - | ||
| 851 | - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { | ||
| 852 | - if segue.identifier == "inforScroll"{ | ||
| 853 | - let vc = segue.destination as! AlivcInforViewController | ||
| 854 | - vc.liveDetail = liveDetail | ||
| 855 | - self.present(vc, animated: false, completion: nil) | ||
| 856 | - } | ||
| 857 | - } | ||
| 858 | - | ||
| 859 | - @IBOutlet weak var btnFlagLabel: UILabel! | ||
| 860 | - func scrollViewDidScroll(_ scrollView: UIScrollView) { | ||
| 861 | - if scrollView.classForCoder != UITableView.classForCoder(){ | ||
| 862 | - sendWord.resignFirstResponder() | ||
| 863 | - if !screenHorizontalBtn.isSelected { | ||
| 864 | - sendWordView.frame.origin.y = scrollView.frame.size.height - 50 | ||
| 865 | - sendWordPlaceholder(isChat: scrollView.contentOffset.x < getScreenWidth()) | ||
| 866 | - let x = Int(scrollView.contentOffset.x) | ||
| 867 | - let width = Int(getScreenWidth()) | ||
| 868 | - var num = 0 | ||
| 869 | - if x%width > width/2{ | ||
| 870 | - num = x/width + 1 | ||
| 871 | - }else{ | ||
| 872 | - num = x/width | ||
| 873 | - } | ||
| 874 | - isSendChatMessage = num | ||
| 875 | - UIView.animate(withDuration: 0.2, animations: { | ||
| 876 | - self.btnFlagLabel.frame.origin.x = self.getBtnFlagLabelOrightX(num: CGFloat(num)) | ||
| 877 | - }) | ||
| 878 | - }else{ | ||
| 879 | - scrollView.contentOffset.x = CGFloat(isSendChatMessage)*getScreenHeight() | ||
| 880 | - } | ||
| 881 | - } | ||
| 882 | - } | ||
| 883 | - | ||
| 884 | - @IBAction func chatBtnClick(_ sender: UIButton) { | ||
| 885 | - sendWord.resignFirstResponder() | ||
| 886 | - sendWordView.frame.origin.y = scrollView.frame.size.height - 50 | ||
| 887 | - sendWordPlaceholder(isChat: sender.tag == 1000) | ||
| 888 | - isSendChatMessage = sender.tag - 1000 | ||
| 889 | - UIView.animate(withDuration: 0.2, animations: { | ||
| 890 | - self.btnFlagLabel.frame.origin.x = self.getBtnFlagLabelOrightX(num: CGFloat(sender.tag-1000)) | ||
| 891 | - self.scrollView.contentOffset.x = getScreenWidth() * CGFloat(sender.tag-1000) | ||
| 892 | - }) | ||
| 893 | - } | ||
| 894 | - | ||
| 895 | - func sendWordPlaceholder(isChat:Bool){ | ||
| 896 | - if isChat{ | ||
| 897 | - chatLocalView.addSubview(sendWordView) | ||
| 898 | - sendWord.placeholder = "请输入聊天内容" | ||
| 899 | - }else{ | ||
| 900 | - leaveMessageLocalView.addSubview(sendWordView) | ||
| 901 | - sendWord.placeholder = "请输入留言信息" | ||
| 902 | - } | ||
| 903 | - if !sendWord.isUserInteractionEnabled { | ||
| 904 | - self.sendWord.placeholder = "请您先登录,在发送消息" | ||
| 905 | - } | ||
| 906 | - } | ||
| 907 | - | ||
| 908 | - func getBtnFlagLabelOrightX(num:CGFloat)->CGFloat{ | ||
| 909 | - return num+num*((getScreenWidth()-2)/3) | ||
| 910 | - } | ||
| 911 | - | ||
| 912 | - /* | ||
| 913 | - // MARK: - Navigation | ||
| 914 | - | ||
| 915 | - // In a storyboard-based application, you will often want to do a little preparation before navigation | ||
| 916 | - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { | ||
| 917 | - // Get the new view controller using segue.destinationViewController. | ||
| 918 | - // Pass the selected object to the new view controller. | ||
| 919 | - } | ||
| 920 | - */ | ||
| 921 | - | ||
| 922 | -} | ||
| 923 | - | ||
| 924 | -class LeaveMessageCell: UITableViewCell { | ||
| 925 | - | ||
| 926 | - @IBOutlet weak var userImage: UIImageView! | ||
| 927 | - @IBOutlet weak var timeLabel: UILabel! | ||
| 928 | - @IBOutlet weak var context: UILabel! | ||
| 929 | - override func awakeFromNib() { | ||
| 930 | - userImage.layer.cornerRadius = userImage.frame.size.height/2 | ||
| 931 | - userImage.layer.masksToBounds = true | ||
| 932 | - } | ||
| 933 | -} | ||
| 934 | - | ||
| 935 | -class ChatCell: UITableViewCell { | ||
| 936 | - | ||
| 937 | - @IBOutlet weak var userImage: UIImageView! | ||
| 938 | - @IBOutlet weak var timeLabel: UILabel! | ||
| 939 | - @IBOutlet weak var context: UILabel! | ||
| 940 | - override func awakeFromNib() { | ||
| 941 | - userImage.layer.cornerRadius = userImage.frame.size.height/2 | ||
| 942 | - userImage.layer.masksToBounds = true | ||
| 943 | - } | ||
| 944 | -} | ||
| 945 | - | ||
| 946 | -class Comment { | ||
| 947 | - var f_CreatorUserId:String! | ||
| 948 | - var f_CreatorTime:String! | ||
| 949 | - var commentDetail:String! | ||
| 950 | - var liveId:String! | ||
| 951 | - var f_HeadIcon:String! | ||
| 952 | - var f_RealName:String! | ||
| 953 | - var f_NickName:String! | ||
| 954 | - init(json:JSON){ | ||
| 955 | - f_CreatorUserId = json["f_CreatorUserId"].stringValue | ||
| 956 | - f_CreatorTime = allTimeStringComp(str:json["f_CreatorTime"].stringValue) | ||
| 957 | - commentDetail = json["commentDetail"].stringValue | ||
| 958 | - liveId = json["liveId"].stringValue | ||
| 959 | - f_HeadIcon = json["f_HeadIcon"].stringValue | ||
| 960 | - f_RealName = json["f_RealName"].stringValue | ||
| 961 | - f_NickName = json["f_NickName"].stringValue | ||
| 962 | - } | ||
| 963 | - init(){ | ||
| 964 | - | ||
| 965 | - } | ||
| 966 | -} |
YouerLiveVideo/YouerLiveVideo/AppDelegate.swift
| @@ -20,7 +20,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate,NIMLoginManagerDelegate { | @@ -20,7 +20,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate,NIMLoginManagerDelegate { | ||
| 20 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { | 20 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { |
| 21 | httpServer.accountManager=accountManager | 21 | httpServer.accountManager=accountManager |
| 22 | accountManager.setTokenInfo(tokenInfo: accountManager.loadToken()) | 22 | accountManager.setTokenInfo(tokenInfo: accountManager.loadToken()) |
| 23 | - setShareSDKSetting() | 23 | +// setShareSDKSetting() |
| 24 | setNIMSDKRegister() | 24 | setNIMSDKRegister() |
| 25 | return true | 25 | return true |
| 26 | } | 26 | } |
YouerLiveVideo/YouerLiveVideo/Base.lproj/Main.storyboard
| @@ -156,7 +156,7 @@ | @@ -156,7 +156,7 @@ | ||
| 156 | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | 156 | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| 157 | <subviews> | 157 | <subviews> |
| 158 | <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="60" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="6sp-FR-RXh"> | 158 | <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="60" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="6sp-FR-RXh"> |
| 159 | - <rect key="frame" x="0.0" y="234" width="375" height="384"/> | 159 | + <rect key="frame" x="0.0" y="190" width="375" height="477"/> |
| 160 | <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | 160 | <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| 161 | <prototypes> | 161 | <prototypes> |
| 162 | <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" restorationIdentifier="cell" selectionStyle="none" indentationWidth="10" reuseIdentifier="cell" id="Bd9-Ys-4oO" customClass="MyTableViewCell" customModule="YouerLiveVideo" customModuleProvider="target"> | 162 | <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" restorationIdentifier="cell" selectionStyle="none" indentationWidth="10" reuseIdentifier="cell" id="Bd9-Ys-4oO" customClass="MyTableViewCell" customModule="YouerLiveVideo" customModuleProvider="target"> |
| @@ -218,7 +218,7 @@ | @@ -218,7 +218,7 @@ | ||
| 218 | </connections> | 218 | </connections> |
| 219 | </tableView> | 219 | </tableView> |
| 220 | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gHW-Fw-ORN"> | 220 | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gHW-Fw-ORN"> |
| 221 | - <rect key="frame" x="0.0" y="64" width="375" height="170"/> | 221 | + <rect key="frame" x="0.0" y="20" width="375" height="170"/> |
| 222 | <subviews> | 222 | <subviews> |
| 223 | <imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="default" translatesAutoresizingMaskIntoConstraints="NO" id="qqi-UG-8sO"> | 223 | <imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="default" translatesAutoresizingMaskIntoConstraints="NO" id="qqi-UG-8sO"> |
| 224 | <rect key="frame" x="0.0" y="0.0" width="375" height="170"/> | 224 | <rect key="frame" x="0.0" y="0.0" width="375" height="170"/> |
| @@ -490,49 +490,11 @@ | @@ -490,49 +490,11 @@ | ||
| 490 | <constraint firstAttribute="width" secondItem="FSI-1e-Z3T" secondAttribute="height" multiplier="16:9" id="U44-KW-O9e"/> | 490 | <constraint firstAttribute="width" secondItem="FSI-1e-Z3T" secondAttribute="height" multiplier="16:9" id="U44-KW-O9e"/> |
| 491 | </constraints> | 491 | </constraints> |
| 492 | </view> | 492 | </view> |
| 493 | - <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="nzt-eB-LqH"> | ||
| 494 | - <rect key="frame" x="0.0" y="275" width="375" height="343"/> | ||
| 495 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 496 | - <sections> | ||
| 497 | - <tableViewSection id="dOf-yB-NTj"> | ||
| 498 | - <cells> | ||
| 499 | - <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="wZJ-ds-TX9"> | ||
| 500 | - <rect key="frame" x="0.0" y="0.0" width="375" height="44"/> | ||
| 501 | - <autoresizingMask key="autoresizingMask"/> | ||
| 502 | - <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="wZJ-ds-TX9" id="8Fl-1N-dEm"> | ||
| 503 | - <rect key="frame" x="0.0" y="0.0" width="375" height="43"/> | ||
| 504 | - <autoresizingMask key="autoresizingMask"/> | ||
| 505 | - </tableViewCellContentView> | ||
| 506 | - </tableViewCell> | ||
| 507 | - <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="sKJ-GX-RPD"> | ||
| 508 | - <rect key="frame" x="0.0" y="44" width="375" height="44"/> | ||
| 509 | - <autoresizingMask key="autoresizingMask"/> | ||
| 510 | - <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="sKJ-GX-RPD" id="q1H-8l-igY"> | ||
| 511 | - <rect key="frame" x="0.0" y="0.0" width="375" height="43"/> | ||
| 512 | - <autoresizingMask key="autoresizingMask"/> | ||
| 513 | - </tableViewCellContentView> | ||
| 514 | - </tableViewCell> | ||
| 515 | - <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="wQI-vf-l1t"> | ||
| 516 | - <rect key="frame" x="0.0" y="88" width="375" height="44"/> | ||
| 517 | - <autoresizingMask key="autoresizingMask"/> | ||
| 518 | - <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="wQI-vf-l1t" id="Huh-bs-KoF"> | ||
| 519 | - <rect key="frame" x="0.0" y="0.0" width="375" height="43"/> | ||
| 520 | - <autoresizingMask key="autoresizingMask"/> | ||
| 521 | - </tableViewCellContentView> | ||
| 522 | - </tableViewCell> | ||
| 523 | - </cells> | ||
| 524 | - </tableViewSection> | ||
| 525 | - </sections> | ||
| 526 | - </tableView> | ||
| 527 | </subviews> | 493 | </subviews> |
| 528 | <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | 494 | <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> |
| 529 | <constraints> | 495 | <constraints> |
| 530 | <constraint firstItem="FSI-1e-Z3T" firstAttribute="top" secondItem="wfh-tO-9fU" secondAttribute="bottom" id="5D2-o8-R3S"/> | 496 | <constraint firstItem="FSI-1e-Z3T" firstAttribute="top" secondItem="wfh-tO-9fU" secondAttribute="bottom" id="5D2-o8-R3S"/> |
| 531 | <constraint firstAttribute="trailing" secondItem="FSI-1e-Z3T" secondAttribute="trailing" id="AYI-Qj-Hxg"/> | 497 | <constraint firstAttribute="trailing" secondItem="FSI-1e-Z3T" secondAttribute="trailing" id="AYI-Qj-Hxg"/> |
| 532 | - <constraint firstItem="nzt-eB-LqH" firstAttribute="top" secondItem="FSI-1e-Z3T" secondAttribute="bottom" id="CSl-qA-NyT"/> | ||
| 533 | - <constraint firstItem="FOv-Or-1ph" firstAttribute="top" secondItem="nzt-eB-LqH" secondAttribute="bottom" id="TLC-Mg-Ad9"/> | ||
| 534 | - <constraint firstItem="nzt-eB-LqH" firstAttribute="leading" secondItem="2QR-eN-M4v" secondAttribute="leading" id="fjY-44-a5L"/> | ||
| 535 | - <constraint firstAttribute="trailing" secondItem="nzt-eB-LqH" secondAttribute="trailing" id="kvr-gf-0fw"/> | ||
| 536 | <constraint firstItem="FSI-1e-Z3T" firstAttribute="leading" secondItem="2QR-eN-M4v" secondAttribute="leading" id="wBm-Qb-5ZL"/> | 498 | <constraint firstItem="FSI-1e-Z3T" firstAttribute="leading" secondItem="2QR-eN-M4v" secondAttribute="leading" id="wBm-Qb-5ZL"/> |
| 537 | </constraints> | 499 | </constraints> |
| 538 | </view> | 500 | </view> |
| @@ -551,673 +513,6 @@ | @@ -551,673 +513,6 @@ | ||
| 551 | </objects> | 513 | </objects> |
| 552 | <point key="canvasLocation" x="-1844" y="2112.5937031484259"/> | 514 | <point key="canvasLocation" x="-1844" y="2112.5937031484259"/> |
| 553 | </scene> | 515 | </scene> |
| 554 | - <!--直播详情--> | ||
| 555 | - <scene sceneID="GeW-WZ-qPF"> | ||
| 556 | - <objects> | ||
| 557 | - <viewController storyboardIdentifier="LiveRoomDetailViewController" id="d1J-cJ-HGJ" customClass="LiveRoomDetailViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 558 | - <layoutGuides> | ||
| 559 | - <viewControllerLayoutGuide type="top" id="WMM-qK-XGq"/> | ||
| 560 | - <viewControllerLayoutGuide type="bottom" id="Sjh-U9-acN"/> | ||
| 561 | - </layoutGuides> | ||
| 562 | - <view key="view" contentMode="scaleToFill" id="AAI-7u-wfg"> | ||
| 563 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 564 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 565 | - <subviews> | ||
| 566 | - <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" bounces="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9G3-Kt-5Qi"> | ||
| 567 | - <rect key="frame" x="0.0" y="64" width="375" height="603"/> | ||
| 568 | - <subviews> | ||
| 569 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aSH-ed-fS3"> | ||
| 570 | - <rect key="frame" x="0.0" y="0.0" width="375" height="504"/> | ||
| 571 | - <subviews> | ||
| 572 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="O11-BV-qvn"> | ||
| 573 | - <rect key="frame" x="0.0" y="50" width="375" height="150"/> | ||
| 574 | - <subviews> | ||
| 575 | - <imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="4kP-W2-Uf5"> | ||
| 576 | - <rect key="frame" x="0.0" y="0.0" width="375" height="150"/> | ||
| 577 | - </imageView> | ||
| 578 | - <label opaque="NO" userInteractionEnabled="NO" alpha="0.80000000000000004" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="顺治直播" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="U5x-hO-jQr"> | ||
| 579 | - <rect key="frame" x="0.0" y="120" width="375" height="30"/> | ||
| 580 | - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> | ||
| 581 | - <constraints> | ||
| 582 | - <constraint firstAttribute="height" constant="30" id="MYa-Ca-QQ4"/> | ||
| 583 | - </constraints> | ||
| 584 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 585 | - <nil key="highlightedColor"/> | ||
| 586 | - </label> | ||
| 587 | - </subviews> | ||
| 588 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 589 | - <constraints> | ||
| 590 | - <constraint firstAttribute="trailing" secondItem="4kP-W2-Uf5" secondAttribute="trailing" id="3NC-lO-A3P"/> | ||
| 591 | - <constraint firstAttribute="trailing" secondItem="U5x-hO-jQr" secondAttribute="trailing" id="G5F-8R-jNM"/> | ||
| 592 | - <constraint firstItem="4kP-W2-Uf5" firstAttribute="leading" secondItem="O11-BV-qvn" secondAttribute="leading" id="Gv9-iT-TPQ"/> | ||
| 593 | - <constraint firstAttribute="bottom" secondItem="4kP-W2-Uf5" secondAttribute="bottom" id="VbZ-24-dV8"/> | ||
| 594 | - <constraint firstAttribute="height" constant="150" id="YlR-P0-0VQ"/> | ||
| 595 | - <constraint firstItem="4kP-W2-Uf5" firstAttribute="top" secondItem="O11-BV-qvn" secondAttribute="top" id="Z5G-gW-oXK"/> | ||
| 596 | - <constraint firstItem="U5x-hO-jQr" firstAttribute="leading" secondItem="O11-BV-qvn" secondAttribute="leading" id="si9-Ri-Mod"/> | ||
| 597 | - <constraint firstAttribute="bottom" secondItem="U5x-hO-jQr" secondAttribute="bottom" id="tha-wj-JM0"/> | ||
| 598 | - </constraints> | ||
| 599 | - </view> | ||
| 600 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="92m-fO-JPa"> | ||
| 601 | - <rect key="frame" x="0.0" y="0.0" width="375" height="50"/> | ||
| 602 | - <subviews> | ||
| 603 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="defphoto.png" translatesAutoresizingMaskIntoConstraints="NO" id="eaL-rv-CLu"> | ||
| 604 | - <rect key="frame" x="8" y="8" width="34" height="34"/> | ||
| 605 | - <constraints> | ||
| 606 | - <constraint firstAttribute="height" constant="34" id="3b0-9m-593"/> | ||
| 607 | - <constraint firstAttribute="width" constant="34" id="V2i-YR-rAQ"/> | ||
| 608 | - </constraints> | ||
| 609 | - <userDefinedRuntimeAttributes> | ||
| 610 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 611 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 612 | - <integer key="value" value="17"/> | ||
| 613 | - </userDefinedRuntimeAttribute> | ||
| 614 | - </userDefinedRuntimeAttributes> | ||
| 615 | - </imageView> | ||
| 616 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="小熊猫" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jnh-PT-9UR"> | ||
| 617 | - <rect key="frame" x="50" y="8" width="46" height="18"/> | ||
| 618 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 619 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 620 | - <nil key="highlightedColor"/> | ||
| 621 | - </label> | ||
| 622 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2016-11-11 11:14:55" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="P97-ha-f3O"> | ||
| 623 | - <rect key="frame" x="50" y="24" width="135.5" height="18"/> | ||
| 624 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 625 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 626 | - <nil key="highlightedColor"/> | ||
| 627 | - </label> | ||
| 628 | - </subviews> | ||
| 629 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 630 | - <constraints> | ||
| 631 | - <constraint firstItem="P97-ha-f3O" firstAttribute="leading" secondItem="eaL-rv-CLu" secondAttribute="trailing" constant="8" id="EtG-gO-eu5"/> | ||
| 632 | - <constraint firstItem="eaL-rv-CLu" firstAttribute="centerY" secondItem="92m-fO-JPa" secondAttribute="centerY" id="F0j-xW-yTl"/> | ||
| 633 | - <constraint firstItem="jnh-PT-9UR" firstAttribute="top" secondItem="92m-fO-JPa" secondAttribute="top" constant="8" id="G1z-Pm-kqw"/> | ||
| 634 | - <constraint firstItem="jnh-PT-9UR" firstAttribute="leading" secondItem="eaL-rv-CLu" secondAttribute="trailing" constant="8" id="Qc1-pW-H3D"/> | ||
| 635 | - <constraint firstAttribute="height" constant="50" id="asv-zF-iOb"/> | ||
| 636 | - <constraint firstAttribute="bottom" secondItem="P97-ha-f3O" secondAttribute="bottom" constant="8" id="xLE-Xo-aGF"/> | ||
| 637 | - <constraint firstItem="eaL-rv-CLu" firstAttribute="leading" secondItem="92m-fO-JPa" secondAttribute="leading" constant="8" id="zfN-bj-Q8u"/> | ||
| 638 | - </constraints> | ||
| 639 | - </view> | ||
| 640 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4w2-kR-uKi"> | ||
| 641 | - <rect key="frame" x="0.0" y="200" width="375" height="50"/> | ||
| 642 | - <subviews> | ||
| 643 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Osl-An-nRm"> | ||
| 644 | - <rect key="frame" x="0.0" y="49" width="375" height="1"/> | ||
| 645 | - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> | ||
| 646 | - <constraints> | ||
| 647 | - <constraint firstAttribute="height" constant="1" id="ZOT-0b-zsA"/> | ||
| 648 | - </constraints> | ||
| 649 | - </view> | ||
| 650 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="直播公告" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yXv-Z8-PTh"> | ||
| 651 | - <rect key="frame" x="8" y="16" width="61.5" height="18"/> | ||
| 652 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 653 | - <nil key="textColor"/> | ||
| 654 | - <nil key="highlightedColor"/> | ||
| 655 | - </label> | ||
| 656 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="顺治直播间" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="s8n-ps-ena"> | ||
| 657 | - <rect key="frame" x="90" y="16" width="76.5" height="18"/> | ||
| 658 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 659 | - <nil key="textColor"/> | ||
| 660 | - <nil key="highlightedColor"/> | ||
| 661 | - </label> | ||
| 662 | - </subviews> | ||
| 663 | - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 664 | - <constraints> | ||
| 665 | - <constraint firstAttribute="bottom" secondItem="Osl-An-nRm" secondAttribute="bottom" id="18w-hy-0td"/> | ||
| 666 | - <constraint firstAttribute="trailing" secondItem="Osl-An-nRm" secondAttribute="trailing" id="D2r-mn-CMp"/> | ||
| 667 | - <constraint firstItem="s8n-ps-ena" firstAttribute="leading" secondItem="yXv-Z8-PTh" secondAttribute="trailing" constant="20.5" id="No0-RF-xen"/> | ||
| 668 | - <constraint firstItem="s8n-ps-ena" firstAttribute="centerY" secondItem="4w2-kR-uKi" secondAttribute="centerY" id="NoP-am-Pqa"/> | ||
| 669 | - <constraint firstItem="yXv-Z8-PTh" firstAttribute="centerY" secondItem="4w2-kR-uKi" secondAttribute="centerY" id="Yh2-HB-M09"/> | ||
| 670 | - <constraint firstAttribute="height" constant="50" id="a3v-P6-RH8"/> | ||
| 671 | - <constraint firstItem="Osl-An-nRm" firstAttribute="leading" secondItem="4w2-kR-uKi" secondAttribute="leading" id="bmu-PQ-580"/> | ||
| 672 | - <constraint firstItem="yXv-Z8-PTh" firstAttribute="leading" secondItem="4w2-kR-uKi" secondAttribute="leading" constant="8" id="uZN-j5-Hmd"/> | ||
| 673 | - </constraints> | ||
| 674 | - </view> | ||
| 675 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UKf-ne-nJN"> | ||
| 676 | - <rect key="frame" x="0.0" y="250" width="375" height="50"/> | ||
| 677 | - <subviews> | ||
| 678 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Jtf-eA-lw5"> | ||
| 679 | - <rect key="frame" x="0.0" y="49" width="375" height="1"/> | ||
| 680 | - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> | ||
| 681 | - <constraints> | ||
| 682 | - <constraint firstAttribute="height" constant="1" id="xsl-7D-evE"/> | ||
| 683 | - </constraints> | ||
| 684 | - </view> | ||
| 685 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="开始时间" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uqQ-L2-Vyw"> | ||
| 686 | - <rect key="frame" x="8" y="16" width="61.5" height="18"/> | ||
| 687 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 688 | - <nil key="textColor"/> | ||
| 689 | - <nil key="highlightedColor"/> | ||
| 690 | - </label> | ||
| 691 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2016-11-11 11:14:55" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qRc-2c-O7X"> | ||
| 692 | - <rect key="frame" x="90" y="16" width="135.5" height="18"/> | ||
| 693 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 694 | - <nil key="textColor"/> | ||
| 695 | - <nil key="highlightedColor"/> | ||
| 696 | - </label> | ||
| 697 | - </subviews> | ||
| 698 | - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 699 | - <constraints> | ||
| 700 | - <constraint firstItem="uqQ-L2-Vyw" firstAttribute="centerY" secondItem="UKf-ne-nJN" secondAttribute="centerY" id="3lT-fU-hof"/> | ||
| 701 | - <constraint firstItem="uqQ-L2-Vyw" firstAttribute="leading" secondItem="UKf-ne-nJN" secondAttribute="leading" constant="8" id="5dK-ZQ-WqJ"/> | ||
| 702 | - <constraint firstItem="Jtf-eA-lw5" firstAttribute="leading" secondItem="UKf-ne-nJN" secondAttribute="leading" id="VaX-iI-BQZ"/> | ||
| 703 | - <constraint firstAttribute="trailing" secondItem="Jtf-eA-lw5" secondAttribute="trailing" id="eub-aI-clh"/> | ||
| 704 | - <constraint firstItem="qRc-2c-O7X" firstAttribute="leading" secondItem="uqQ-L2-Vyw" secondAttribute="trailing" constant="20.5" id="fNg-Vu-awo"/> | ||
| 705 | - <constraint firstItem="qRc-2c-O7X" firstAttribute="centerY" secondItem="UKf-ne-nJN" secondAttribute="centerY" id="im3-Vb-FJU"/> | ||
| 706 | - <constraint firstAttribute="height" constant="50" id="oYQ-J2-9rP"/> | ||
| 707 | - <constraint firstAttribute="bottom" secondItem="Jtf-eA-lw5" secondAttribute="bottom" id="q4p-0f-VSs"/> | ||
| 708 | - </constraints> | ||
| 709 | - </view> | ||
| 710 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hWl-d7-HjU"> | ||
| 711 | - <rect key="frame" x="0.0" y="300" width="375" height="50"/> | ||
| 712 | - <subviews> | ||
| 713 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="E8e-09-jgL"> | ||
| 714 | - <rect key="frame" x="0.0" y="49" width="375" height="1"/> | ||
| 715 | - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> | ||
| 716 | - <constraints> | ||
| 717 | - <constraint firstAttribute="height" constant="1" id="YTg-Bi-ZBT"/> | ||
| 718 | - </constraints> | ||
| 719 | - </view> | ||
| 720 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="结束时间" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Doz-eV-A6r"> | ||
| 721 | - <rect key="frame" x="8" y="16" width="61.5" height="18"/> | ||
| 722 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 723 | - <nil key="textColor"/> | ||
| 724 | - <nil key="highlightedColor"/> | ||
| 725 | - </label> | ||
| 726 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2016-11-11 11:14:55" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gFS-ol-eqE"> | ||
| 727 | - <rect key="frame" x="90" y="16" width="135.5" height="18"/> | ||
| 728 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 729 | - <nil key="textColor"/> | ||
| 730 | - <nil key="highlightedColor"/> | ||
| 731 | - </label> | ||
| 732 | - </subviews> | ||
| 733 | - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 734 | - <constraints> | ||
| 735 | - <constraint firstItem="E8e-09-jgL" firstAttribute="leading" secondItem="hWl-d7-HjU" secondAttribute="leading" id="6OF-8P-VWF"/> | ||
| 736 | - <constraint firstAttribute="trailing" secondItem="E8e-09-jgL" secondAttribute="trailing" id="Gng-L6-MDP"/> | ||
| 737 | - <constraint firstItem="gFS-ol-eqE" firstAttribute="leading" secondItem="Doz-eV-A6r" secondAttribute="trailing" constant="20.5" id="SeM-K0-aty"/> | ||
| 738 | - <constraint firstItem="Doz-eV-A6r" firstAttribute="leading" secondItem="hWl-d7-HjU" secondAttribute="leading" constant="8" id="T87-xC-ah4"/> | ||
| 739 | - <constraint firstAttribute="bottom" secondItem="E8e-09-jgL" secondAttribute="bottom" id="TaN-Rp-qhv"/> | ||
| 740 | - <constraint firstAttribute="height" constant="50" id="XnX-wh-LUy"/> | ||
| 741 | - <constraint firstItem="gFS-ol-eqE" firstAttribute="centerY" secondItem="hWl-d7-HjU" secondAttribute="centerY" id="lfn-H2-iDA"/> | ||
| 742 | - <constraint firstItem="Doz-eV-A6r" firstAttribute="centerY" secondItem="hWl-d7-HjU" secondAttribute="centerY" id="pjK-6l-BKL"/> | ||
| 743 | - </constraints> | ||
| 744 | - </view> | ||
| 745 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Uv7-9u-GaW"> | ||
| 746 | - <rect key="frame" x="0.0" y="350" width="375" height="50"/> | ||
| 747 | - <subviews> | ||
| 748 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="lWz-Ec-2pD"> | ||
| 749 | - <rect key="frame" x="0.0" y="49" width="375" height="1"/> | ||
| 750 | - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> | ||
| 751 | - <constraints> | ||
| 752 | - <constraint firstAttribute="height" constant="1" id="jeI-Ab-fpN"/> | ||
| 753 | - </constraints> | ||
| 754 | - </view> | ||
| 755 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="是否公开" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Wqa-lx-bdx"> | ||
| 756 | - <rect key="frame" x="8" y="16" width="61.5" height="18"/> | ||
| 757 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 758 | - <nil key="textColor"/> | ||
| 759 | - <nil key="highlightedColor"/> | ||
| 760 | - </label> | ||
| 761 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="是" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2Lo-Zh-qml"> | ||
| 762 | - <rect key="frame" x="90" y="16" width="15.5" height="18"/> | ||
| 763 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 764 | - <nil key="textColor"/> | ||
| 765 | - <nil key="highlightedColor"/> | ||
| 766 | - </label> | ||
| 767 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="是" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Qxz-W3-c3g"> | ||
| 768 | - <rect key="frame" x="351" y="16" width="15.5" height="18"/> | ||
| 769 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 770 | - <nil key="textColor"/> | ||
| 771 | - <nil key="highlightedColor"/> | ||
| 772 | - </label> | ||
| 773 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="是否支持互动" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aaa-fg-LGQ"> | ||
| 774 | - <rect key="frame" x="228.5" y="16" width="92" height="18"/> | ||
| 775 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 776 | - <nil key="textColor"/> | ||
| 777 | - <nil key="highlightedColor"/> | ||
| 778 | - </label> | ||
| 779 | - </subviews> | ||
| 780 | - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 781 | - <constraints> | ||
| 782 | - <constraint firstItem="Wqa-lx-bdx" firstAttribute="leading" secondItem="Uv7-9u-GaW" secondAttribute="leading" constant="8" id="2rV-7n-2G1"/> | ||
| 783 | - <constraint firstAttribute="trailing" secondItem="lWz-Ec-2pD" secondAttribute="trailing" id="3OM-1K-yKQ"/> | ||
| 784 | - <constraint firstItem="2Lo-Zh-qml" firstAttribute="centerY" secondItem="Uv7-9u-GaW" secondAttribute="centerY" id="4Tn-1g-FA2"/> | ||
| 785 | - <constraint firstItem="Wqa-lx-bdx" firstAttribute="centerY" secondItem="Uv7-9u-GaW" secondAttribute="centerY" id="55n-tV-tVv"/> | ||
| 786 | - <constraint firstItem="Qxz-W3-c3g" firstAttribute="centerY" secondItem="Uv7-9u-GaW" secondAttribute="centerY" id="8zS-kF-iRE"/> | ||
| 787 | - <constraint firstAttribute="height" constant="50" id="FMG-IR-g1o"/> | ||
| 788 | - <constraint firstItem="aaa-fg-LGQ" firstAttribute="centerY" secondItem="Uv7-9u-GaW" secondAttribute="centerY" id="GTX-IV-Kyi"/> | ||
| 789 | - <constraint firstItem="lWz-Ec-2pD" firstAttribute="leading" secondItem="Uv7-9u-GaW" secondAttribute="leading" id="Hxm-FB-0UX"/> | ||
| 790 | - <constraint firstAttribute="trailing" secondItem="Qxz-W3-c3g" secondAttribute="trailing" constant="8.5" id="MXb-0c-MBw"/> | ||
| 791 | - <constraint firstItem="Qxz-W3-c3g" firstAttribute="leading" secondItem="aaa-fg-LGQ" secondAttribute="trailing" constant="30.5" id="ZK3-Bo-TnB"/> | ||
| 792 | - <constraint firstItem="2Lo-Zh-qml" firstAttribute="leading" secondItem="Wqa-lx-bdx" secondAttribute="trailing" constant="20.5" id="gvj-f4-QmM"/> | ||
| 793 | - <constraint firstAttribute="bottom" secondItem="lWz-Ec-2pD" secondAttribute="bottom" id="sic-72-BGP"/> | ||
| 794 | - </constraints> | ||
| 795 | - </view> | ||
| 796 | - <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LlX-84-ki4"> | ||
| 797 | - <rect key="frame" x="0.0" y="400" width="375" height="50"/> | ||
| 798 | - <subviews> | ||
| 799 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="C1b-KG-kcI"> | ||
| 800 | - <rect key="frame" x="0.0" y="49" width="375" height="1"/> | ||
| 801 | - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> | ||
| 802 | - <constraints> | ||
| 803 | - <constraint firstAttribute="height" constant="1" id="Not-26-wrZ"/> | ||
| 804 | - </constraints> | ||
| 805 | - </view> | ||
| 806 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="附件" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lbi-Yu-mdx"> | ||
| 807 | - <rect key="frame" x="8" y="16" width="31" height="18"/> | ||
| 808 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 809 | - <nil key="textColor"/> | ||
| 810 | - <nil key="highlightedColor"/> | ||
| 811 | - </label> | ||
| 812 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="attach_file.png" translatesAutoresizingMaskIntoConstraints="NO" id="f5B-In-cJ2"> | ||
| 813 | - <rect key="frame" x="342" y="12.5" width="25" height="25"/> | ||
| 814 | - <constraints> | ||
| 815 | - <constraint firstAttribute="height" constant="25" id="6DW-zW-AKv"/> | ||
| 816 | - <constraint firstAttribute="width" constant="25" id="WlQ-8U-Gbq"/> | ||
| 817 | - </constraints> | ||
| 818 | - </imageView> | ||
| 819 | - </subviews> | ||
| 820 | - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 821 | - <constraints> | ||
| 822 | - <constraint firstAttribute="trailing" secondItem="f5B-In-cJ2" secondAttribute="trailing" constant="8" id="3l3-25-VQq"/> | ||
| 823 | - <constraint firstAttribute="bottom" secondItem="C1b-KG-kcI" secondAttribute="bottom" id="4lG-M3-mzX"/> | ||
| 824 | - <constraint firstAttribute="trailing" secondItem="C1b-KG-kcI" secondAttribute="trailing" id="Os6-mV-Xwj"/> | ||
| 825 | - <constraint firstItem="f5B-In-cJ2" firstAttribute="centerY" secondItem="LlX-84-ki4" secondAttribute="centerY" id="SzR-9Z-Zub"/> | ||
| 826 | - <constraint firstItem="lbi-Yu-mdx" firstAttribute="leading" secondItem="LlX-84-ki4" secondAttribute="leading" constant="8" id="VvM-U1-jEb"/> | ||
| 827 | - <constraint firstAttribute="height" constant="50" id="Zjj-Md-sHn"/> | ||
| 828 | - <constraint firstItem="lbi-Yu-mdx" firstAttribute="centerY" secondItem="LlX-84-ki4" secondAttribute="centerY" id="c6e-jU-jw8"/> | ||
| 829 | - <constraint firstItem="C1b-KG-kcI" firstAttribute="leading" secondItem="LlX-84-ki4" secondAttribute="leading" id="zXA-nY-isW"/> | ||
| 830 | - </constraints> | ||
| 831 | - </view> | ||
| 832 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Gem-D3-18H"> | ||
| 833 | - <rect key="frame" x="0.0" y="450" width="375" height="50"/> | ||
| 834 | - <subviews> | ||
| 835 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1Jo-os-Pqi"> | ||
| 836 | - <rect key="frame" x="0.0" y="49" width="375" height="1"/> | ||
| 837 | - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> | ||
| 838 | - <constraints> | ||
| 839 | - <constraint firstAttribute="height" constant="1" id="eYE-Yj-W38"/> | ||
| 840 | - </constraints> | ||
| 841 | - </view> | ||
| 842 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="已审核" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Gs4-Mx-oSq"> | ||
| 843 | - <rect key="frame" x="8" y="16" width="46" height="18"/> | ||
| 844 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 845 | - <nil key="textColor"/> | ||
| 846 | - <nil key="highlightedColor"/> | ||
| 847 | - </label> | ||
| 848 | - </subviews> | ||
| 849 | - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 850 | - <constraints> | ||
| 851 | - <constraint firstAttribute="height" constant="50" id="5dn-qD-rvx"/> | ||
| 852 | - <constraint firstItem="Gs4-Mx-oSq" firstAttribute="leading" secondItem="Gem-D3-18H" secondAttribute="leading" constant="8" id="5eG-aa-Wvb"/> | ||
| 853 | - <constraint firstItem="Gs4-Mx-oSq" firstAttribute="centerY" secondItem="Gem-D3-18H" secondAttribute="centerY" id="KQ1-na-lPf"/> | ||
| 854 | - <constraint firstAttribute="bottom" secondItem="1Jo-os-Pqi" secondAttribute="bottom" id="XG0-99-DSe"/> | ||
| 855 | - <constraint firstItem="1Jo-os-Pqi" firstAttribute="leading" secondItem="Gem-D3-18H" secondAttribute="leading" id="Zku-Ay-8yK"/> | ||
| 856 | - <constraint firstAttribute="trailing" secondItem="1Jo-os-Pqi" secondAttribute="trailing" id="uC8-Fm-pu4"/> | ||
| 857 | - </constraints> | ||
| 858 | - </view> | ||
| 859 | - </subviews> | ||
| 860 | - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 861 | - <constraints> | ||
| 862 | - <constraint firstItem="Gem-D3-18H" firstAttribute="leading" secondItem="aSH-ed-fS3" secondAttribute="leading" id="1Bm-VM-YP0"/> | ||
| 863 | - <constraint firstItem="O11-BV-qvn" firstAttribute="top" secondItem="92m-fO-JPa" secondAttribute="bottom" id="2cr-XN-P7D"/> | ||
| 864 | - <constraint firstItem="4w2-kR-uKi" firstAttribute="leading" secondItem="aSH-ed-fS3" secondAttribute="leading" id="6Ik-Ix-TDe"/> | ||
| 865 | - <constraint firstItem="92m-fO-JPa" firstAttribute="top" secondItem="aSH-ed-fS3" secondAttribute="top" id="79E-mB-tet"/> | ||
| 866 | - <constraint firstAttribute="trailing" secondItem="UKf-ne-nJN" secondAttribute="trailing" id="D29-kk-V5n"/> | ||
| 867 | - <constraint firstAttribute="trailing" secondItem="92m-fO-JPa" secondAttribute="trailing" id="FlK-Ad-R4y"/> | ||
| 868 | - <constraint firstItem="92m-fO-JPa" firstAttribute="leading" secondItem="aSH-ed-fS3" secondAttribute="leading" id="G0b-yk-fCe"/> | ||
| 869 | - <constraint firstItem="Uv7-9u-GaW" firstAttribute="leading" secondItem="aSH-ed-fS3" secondAttribute="leading" id="GVo-SR-7OF"/> | ||
| 870 | - <constraint firstItem="UKf-ne-nJN" firstAttribute="leading" secondItem="aSH-ed-fS3" secondAttribute="leading" id="MTG-0a-j11"/> | ||
| 871 | - <constraint firstAttribute="trailing" secondItem="Uv7-9u-GaW" secondAttribute="trailing" id="MV4-36-oM0"/> | ||
| 872 | - <constraint firstAttribute="trailing" secondItem="LlX-84-ki4" secondAttribute="trailing" id="SU1-uP-wlb"/> | ||
| 873 | - <constraint firstItem="LlX-84-ki4" firstAttribute="top" secondItem="Uv7-9u-GaW" secondAttribute="bottom" id="V4M-Ln-Zvm"/> | ||
| 874 | - <constraint firstAttribute="trailing" secondItem="O11-BV-qvn" secondAttribute="trailing" id="WCL-wX-vVx"/> | ||
| 875 | - <constraint firstAttribute="trailing" secondItem="4w2-kR-uKi" secondAttribute="trailing" id="XHt-VR-3o2"/> | ||
| 876 | - <constraint firstAttribute="trailing" secondItem="hWl-d7-HjU" secondAttribute="trailing" id="a4p-O3-T7o"/> | ||
| 877 | - <constraint firstAttribute="height" constant="504" id="aYV-wO-q2H"/> | ||
| 878 | - <constraint firstItem="hWl-d7-HjU" firstAttribute="leading" secondItem="aSH-ed-fS3" secondAttribute="leading" id="c5V-Rb-5q6"/> | ||
| 879 | - <constraint firstItem="Uv7-9u-GaW" firstAttribute="top" secondItem="hWl-d7-HjU" secondAttribute="bottom" id="iER-Vw-UMX"/> | ||
| 880 | - <constraint firstItem="UKf-ne-nJN" firstAttribute="top" secondItem="4w2-kR-uKi" secondAttribute="bottom" id="og5-eg-yab"/> | ||
| 881 | - <constraint firstItem="hWl-d7-HjU" firstAttribute="top" secondItem="UKf-ne-nJN" secondAttribute="bottom" id="pRb-tI-wJW"/> | ||
| 882 | - <constraint firstItem="4w2-kR-uKi" firstAttribute="top" secondItem="O11-BV-qvn" secondAttribute="bottom" id="pZQ-Px-yi1"/> | ||
| 883 | - <constraint firstItem="Gem-D3-18H" firstAttribute="top" secondItem="LlX-84-ki4" secondAttribute="bottom" id="u58-AA-Jg9"/> | ||
| 884 | - <constraint firstItem="O11-BV-qvn" firstAttribute="leading" secondItem="aSH-ed-fS3" secondAttribute="leading" id="u9Q-Cl-mxt"/> | ||
| 885 | - <constraint firstItem="LlX-84-ki4" firstAttribute="leading" secondItem="aSH-ed-fS3" secondAttribute="leading" id="w4t-wy-SKU"/> | ||
| 886 | - <constraint firstAttribute="trailing" secondItem="Gem-D3-18H" secondAttribute="trailing" id="yJw-Zt-MXl"/> | ||
| 887 | - </constraints> | ||
| 888 | - </view> | ||
| 889 | - </subviews> | ||
| 890 | - <constraints> | ||
| 891 | - <constraint firstAttribute="bottom" secondItem="aSH-ed-fS3" secondAttribute="bottom" id="0Rl-wi-B98"/> | ||
| 892 | - <constraint firstAttribute="trailing" secondItem="aSH-ed-fS3" secondAttribute="trailing" id="4K3-Fi-zNL"/> | ||
| 893 | - <constraint firstItem="aSH-ed-fS3" firstAttribute="leading" secondItem="9G3-Kt-5Qi" secondAttribute="leading" id="5h7-Re-Po7"/> | ||
| 894 | - <constraint firstItem="aSH-ed-fS3" firstAttribute="top" secondItem="9G3-Kt-5Qi" secondAttribute="top" id="nQD-j0-h3d"/> | ||
| 895 | - <constraint firstItem="aSH-ed-fS3" firstAttribute="centerX" secondItem="9G3-Kt-5Qi" secondAttribute="centerX" id="sOf-4G-3Ja"/> | ||
| 896 | - </constraints> | ||
| 897 | - </scrollView> | ||
| 898 | - </subviews> | ||
| 899 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 900 | - <constraints> | ||
| 901 | - <constraint firstItem="9G3-Kt-5Qi" firstAttribute="top" secondItem="WMM-qK-XGq" secondAttribute="bottom" id="Aok-DL-BuC"/> | ||
| 902 | - <constraint firstItem="9G3-Kt-5Qi" firstAttribute="leading" secondItem="AAI-7u-wfg" secondAttribute="leading" id="MeF-KJ-jgV"/> | ||
| 903 | - <constraint firstAttribute="trailing" secondItem="9G3-Kt-5Qi" secondAttribute="trailing" id="YWP-1m-nhY"/> | ||
| 904 | - <constraint firstItem="Sjh-U9-acN" firstAttribute="top" secondItem="9G3-Kt-5Qi" secondAttribute="bottom" id="hAT-uJ-Kdk"/> | ||
| 905 | - </constraints> | ||
| 906 | - </view> | ||
| 907 | - <navigationItem key="navigationItem" title="直播详情" id="MQ5-WG-oZS"/> | ||
| 908 | - <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/> | ||
| 909 | - <connections> | ||
| 910 | - <outlet property="announcementLabel" destination="s8n-ps-ena" id="yUQ-Ng-wfP"/> | ||
| 911 | - <outlet property="attachViewH" destination="Zjj-Md-sHn" id="Jc3-K7-b2d"/> | ||
| 912 | - <outlet property="coverImage" destination="4kP-W2-Uf5" id="3ug-tw-E72"/> | ||
| 913 | - <outlet property="endDetailTimeLabel" destination="gFS-ol-eqE" id="QQ3-Wo-YCE"/> | ||
| 914 | - <outlet property="imageH" destination="YlR-P0-0VQ" id="9Ub-sh-AkT"/> | ||
| 915 | - <outlet property="isExamineLabel" destination="Gs4-Mx-oSq" id="dOj-IG-67W"/> | ||
| 916 | - <outlet property="isInteractive" destination="Qxz-W3-c3g" id="gzv-qr-akN"/> | ||
| 917 | - <outlet property="isPublic" destination="2Lo-Zh-qml" id="iMJ-fH-YC3"/> | ||
| 918 | - <outlet property="personIcon" destination="eaL-rv-CLu" id="m0D-6N-xlm"/> | ||
| 919 | - <outlet property="personNameLabel" destination="jnh-PT-9UR" id="TeC-Y7-IPV"/> | ||
| 920 | - <outlet property="scrollContentViewH" destination="aYV-wO-q2H" id="bk7-F9-w4v"/> | ||
| 921 | - <outlet property="startDetailTimeLabel" destination="qRc-2c-O7X" id="ozp-BC-0iv"/> | ||
| 922 | - <outlet property="startTimeLabel" destination="P97-ha-f3O" id="FQG-2I-Ak4"/> | ||
| 923 | - </connections> | ||
| 924 | - </viewController> | ||
| 925 | - <placeholder placeholderIdentifier="IBFirstResponder" id="VgD-4u-fxN" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 926 | - </objects> | ||
| 927 | - <point key="canvasLocation" x="1206" y="-1012"/> | ||
| 928 | - </scene> | ||
| 929 | - <!--首页--> | ||
| 930 | - <scene sceneID="yEQ-1J-Acj"> | ||
| 931 | - <objects> | ||
| 932 | - <viewController id="Lg1-iI-l7M" customClass="HomeViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 933 | - <layoutGuides> | ||
| 934 | - <viewControllerLayoutGuide type="top" id="Snz-He-CCk"/> | ||
| 935 | - <viewControllerLayoutGuide type="bottom" id="ChF-8z-TH9"/> | ||
| 936 | - </layoutGuides> | ||
| 937 | - <view key="view" contentMode="scaleToFill" id="yJO-0v-cvY"> | ||
| 938 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 939 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 940 | - <subviews> | ||
| 941 | - <containerView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hdg-Ja-BBs"> | ||
| 942 | - <rect key="frame" x="0.0" y="64" width="375" height="554"/> | ||
| 943 | - <connections> | ||
| 944 | - <segue destination="ysB-uo-qBa" kind="embed" id="YMs-qy-CO4"/> | ||
| 945 | - </connections> | ||
| 946 | - </containerView> | ||
| 947 | - </subviews> | ||
| 948 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 949 | - <constraints> | ||
| 950 | - <constraint firstItem="hdg-Ja-BBs" firstAttribute="top" secondItem="Snz-He-CCk" secondAttribute="bottom" id="6ud-AH-q7e"/> | ||
| 951 | - <constraint firstAttribute="trailing" secondItem="hdg-Ja-BBs" secondAttribute="trailing" id="8mo-lE-e3E"/> | ||
| 952 | - <constraint firstItem="ChF-8z-TH9" firstAttribute="top" secondItem="hdg-Ja-BBs" secondAttribute="bottom" id="O1K-Qn-nWe"/> | ||
| 953 | - <constraint firstItem="hdg-Ja-BBs" firstAttribute="leading" secondItem="yJO-0v-cvY" secondAttribute="leading" id="tAe-Au-d9E"/> | ||
| 954 | - </constraints> | ||
| 955 | - </view> | ||
| 956 | - <tabBarItem key="tabBarItem" tag="2" title="首页" image="首页.png" id="3Fm-Xp-bik"/> | ||
| 957 | - </viewController> | ||
| 958 | - <placeholder placeholderIdentifier="IBFirstResponder" id="Xnu-Iy-Kp7" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 959 | - </objects> | ||
| 960 | - <point key="canvasLocation" x="380" y="-1679.0104947526238"/> | ||
| 961 | - </scene> | ||
| 962 | - <!--Navigation Controller--> | ||
| 963 | - <scene sceneID="Wvl-yU-N9b"> | ||
| 964 | - <objects> | ||
| 965 | - <navigationController id="2Ql-aj-R0Y" sceneMemberID="viewController"> | ||
| 966 | - <navigationBar key="navigationBar" contentMode="scaleToFill" id="d0m-bK-XMx"> | ||
| 967 | - <rect key="frame" x="0.0" y="0.0" width="320" height="44"/> | ||
| 968 | - <autoresizingMask key="autoresizingMask"/> | ||
| 969 | - </navigationBar> | ||
| 970 | - <connections> | ||
| 971 | - <segue destination="IpH-lJ-mP4" kind="relationship" relationship="rootViewController" id="sFh-HY-fig"/> | ||
| 972 | - </connections> | ||
| 973 | - </navigationController> | ||
| 974 | - <placeholder placeholderIdentifier="IBFirstResponder" id="Qo3-2v-F4Q" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 975 | - </objects> | ||
| 976 | - <point key="canvasLocation" x="-1150" y="-994"/> | ||
| 977 | - </scene> | ||
| 978 | - <!--教育视频云--> | ||
| 979 | - <scene sceneID="hSs-mq-ocP"> | ||
| 980 | - <objects> | ||
| 981 | - <tabBarController title="教育视频云" automaticallyAdjustsScrollViewInsets="NO" id="IpH-lJ-mP4" customClass="MainViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 982 | - <toolbarItems/> | ||
| 983 | - <navigationItem key="navigationItem" id="Nhg-ab-WIC"/> | ||
| 984 | - <tabBar key="tabBar" contentMode="scaleToFill" id="3o9-JQ-rQm"> | ||
| 985 | - <rect key="frame" x="0.0" y="0.0" width="1000" height="1000"/> | ||
| 986 | - <autoresizingMask key="autoresizingMask"/> | ||
| 987 | - <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 988 | - </tabBar> | ||
| 989 | - <connections> | ||
| 990 | - <segue destination="Lg1-iI-l7M" kind="relationship" relationship="viewControllers" id="APt-im-58m"/> | ||
| 991 | - <segue destination="Xoa-Fo-2KW" kind="relationship" relationship="viewControllers" id="518-KW-hok"/> | ||
| 992 | - </connections> | ||
| 993 | - </tabBarController> | ||
| 994 | - <placeholder placeholderIdentifier="IBFirstResponder" id="Cch-d6-a57" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 995 | - </objects> | ||
| 996 | - <point key="canvasLocation" x="-434" y="-994"/> | ||
| 997 | - </scene> | ||
| 998 | - <!--View Controller--> | ||
| 999 | - <scene sceneID="qYH-Ib-4nE"> | ||
| 1000 | - <objects> | ||
| 1001 | - <viewController id="6M3-Mg-gbM" sceneMemberID="viewController"> | ||
| 1002 | - <layoutGuides> | ||
| 1003 | - <viewControllerLayoutGuide type="top" id="a6u-nW-wHG"/> | ||
| 1004 | - <viewControllerLayoutGuide type="bottom" id="Ogk-cH-9O9"/> | ||
| 1005 | - </layoutGuides> | ||
| 1006 | - <view key="view" contentMode="scaleToFill" id="uws-bD-S2J"> | ||
| 1007 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 1008 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 1009 | - <subviews> | ||
| 1010 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="跳转到录制界面" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YJt-OJ-wFV"> | ||
| 1011 | - <rect key="frame" x="0.0" y="20" width="375" height="647"/> | ||
| 1012 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1013 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1014 | - <nil key="highlightedColor"/> | ||
| 1015 | - </label> | ||
| 1016 | - </subviews> | ||
| 1017 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1018 | - <constraints> | ||
| 1019 | - <constraint firstAttribute="trailing" secondItem="YJt-OJ-wFV" secondAttribute="trailing" id="0zt-ct-nXS"/> | ||
| 1020 | - <constraint firstItem="Ogk-cH-9O9" firstAttribute="top" secondItem="YJt-OJ-wFV" secondAttribute="bottom" id="9gR-RB-7kg"/> | ||
| 1021 | - <constraint firstItem="YJt-OJ-wFV" firstAttribute="leading" secondItem="uws-bD-S2J" secondAttribute="leading" id="AWy-fH-ijV"/> | ||
| 1022 | - <constraint firstItem="YJt-OJ-wFV" firstAttribute="top" secondItem="a6u-nW-wHG" secondAttribute="bottom" id="Lf9-Hz-VER"/> | ||
| 1023 | - </constraints> | ||
| 1024 | - </view> | ||
| 1025 | - <tabBarItem key="tabBarItem" title="" id="aSt-Yn-vVI"/> | ||
| 1026 | - </viewController> | ||
| 1027 | - <placeholder placeholderIdentifier="IBFirstResponder" id="ncC-zA-N4r" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 1028 | - </objects> | ||
| 1029 | - <point key="canvasLocation" x="1889" y="-1012"/> | ||
| 1030 | - </scene> | ||
| 1031 | - <!--Home Detail View Controller--> | ||
| 1032 | - <scene sceneID="L5Q-sn-wUW"> | ||
| 1033 | - <objects> | ||
| 1034 | - <viewController id="ysB-uo-qBa" customClass="HomeDetailViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 1035 | - <layoutGuides> | ||
| 1036 | - <viewControllerLayoutGuide type="top" id="L8p-xj-xyD"/> | ||
| 1037 | - <viewControllerLayoutGuide type="bottom" id="0mD-bE-tdN"/> | ||
| 1038 | - </layoutGuides> | ||
| 1039 | - <view key="view" contentMode="scaleToFill" id="1nb-uH-eKU"> | ||
| 1040 | - <rect key="frame" x="0.0" y="0.0" width="375" height="554"/> | ||
| 1041 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 1042 | - <subviews> | ||
| 1043 | - <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WTB-8t-JEo"> | ||
| 1044 | - <rect key="frame" x="0.0" y="0.0" width="375" height="44"/> | ||
| 1045 | - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 1046 | - <constraints> | ||
| 1047 | - <constraint firstAttribute="height" constant="44" id="dx0-Rc-fyh"/> | ||
| 1048 | - </constraints> | ||
| 1049 | - </scrollView> | ||
| 1050 | - <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" pagingEnabled="YES" showsHorizontalScrollIndicator="NO" translatesAutoresizingMaskIntoConstraints="NO" id="siz-Fk-vlY"> | ||
| 1051 | - <rect key="frame" x="0.0" y="44" width="375" height="510"/> | ||
| 1052 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1053 | - <connections> | ||
| 1054 | - <outlet property="delegate" destination="ysB-uo-qBa" id="fon-K9-eOa"/> | ||
| 1055 | - </connections> | ||
| 1056 | - </scrollView> | ||
| 1057 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="peJ-NI-MRy"> | ||
| 1058 | - <rect key="frame" x="0.0" y="44" width="375" height="1"/> | ||
| 1059 | - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 1060 | - <constraints> | ||
| 1061 | - <constraint firstAttribute="height" constant="1" id="xT3-HT-B9t"/> | ||
| 1062 | - </constraints> | ||
| 1063 | - </view> | ||
| 1064 | - </subviews> | ||
| 1065 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1066 | - <constraints> | ||
| 1067 | - <constraint firstAttribute="trailing" secondItem="peJ-NI-MRy" secondAttribute="trailing" id="0Ay-ei-Jju"/> | ||
| 1068 | - <constraint firstAttribute="bottom" secondItem="siz-Fk-vlY" secondAttribute="bottom" id="5uE-Ay-LFa"/> | ||
| 1069 | - <constraint firstItem="peJ-NI-MRy" firstAttribute="leading" secondItem="1nb-uH-eKU" secondAttribute="leading" id="JMt-PN-6i1"/> | ||
| 1070 | - <constraint firstItem="siz-Fk-vlY" firstAttribute="top" secondItem="WTB-8t-JEo" secondAttribute="bottom" id="Jov-TU-nhs"/> | ||
| 1071 | - <constraint firstItem="siz-Fk-vlY" firstAttribute="leading" secondItem="1nb-uH-eKU" secondAttribute="leading" id="NfD-UL-jeR"/> | ||
| 1072 | - <constraint firstAttribute="trailing" secondItem="siz-Fk-vlY" secondAttribute="trailing" id="iF1-WJ-0g6"/> | ||
| 1073 | - <constraint firstItem="peJ-NI-MRy" firstAttribute="top" secondItem="WTB-8t-JEo" secondAttribute="bottom" id="oyE-61-Ur7"/> | ||
| 1074 | - <constraint firstItem="WTB-8t-JEo" firstAttribute="leading" secondItem="1nb-uH-eKU" secondAttribute="leading" id="uAQ-H2-t2k"/> | ||
| 1075 | - <constraint firstAttribute="trailing" secondItem="WTB-8t-JEo" secondAttribute="trailing" id="vA5-PX-Sr4"/> | ||
| 1076 | - <constraint firstItem="WTB-8t-JEo" firstAttribute="top" secondItem="1nb-uH-eKU" secondAttribute="top" id="y59-CZ-EuC"/> | ||
| 1077 | - </constraints> | ||
| 1078 | - </view> | ||
| 1079 | - <connections> | ||
| 1080 | - <outlet property="menuScrollView" destination="WTB-8t-JEo" id="QgZ-Ae-yuN"/> | ||
| 1081 | - <outlet property="scrollView" destination="siz-Fk-vlY" id="Rpn-gX-hV3"/> | ||
| 1082 | - </connections> | ||
| 1083 | - </viewController> | ||
| 1084 | - <placeholder placeholderIdentifier="IBFirstResponder" id="9lc-MY-DQl" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 1085 | - </objects> | ||
| 1086 | - <point key="canvasLocation" x="1205.5999999999999" y="-1679.4602698650676"/> | ||
| 1087 | - </scene> | ||
| 1088 | - <!--更多--> | ||
| 1089 | - <scene sceneID="2uh-dS-Rxp"> | ||
| 1090 | - <objects> | ||
| 1091 | - <viewController storyboardIdentifier="MoreViewController" id="O7P-Cf-mIk" customClass="MoreViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 1092 | - <layoutGuides> | ||
| 1093 | - <viewControllerLayoutGuide type="top" id="c2y-dE-z0d"/> | ||
| 1094 | - <viewControllerLayoutGuide type="bottom" id="XmR-1Y-0Yz"/> | ||
| 1095 | - </layoutGuides> | ||
| 1096 | - <view key="view" contentMode="scaleToFill" id="ejV-Vc-Dk9"> | ||
| 1097 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 1098 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 1099 | - <subviews> | ||
| 1100 | - <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="eBy-Q1-S80"> | ||
| 1101 | - <rect key="frame" x="0.0" y="64" width="375" height="603"/> | ||
| 1102 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1103 | - <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="YEg-GV-fgk"> | ||
| 1104 | - <size key="itemSize" width="100" height="100"/> | ||
| 1105 | - <size key="headerReferenceSize" width="0.0" height="0.0"/> | ||
| 1106 | - <size key="footerReferenceSize" width="0.0" height="0.0"/> | ||
| 1107 | - <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> | ||
| 1108 | - </collectionViewFlowLayout> | ||
| 1109 | - <cells> | ||
| 1110 | - <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="awQ-69-W6a"> | ||
| 1111 | - <rect key="frame" x="0.0" y="0.0" width="100" height="100"/> | ||
| 1112 | - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
| 1113 | - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> | ||
| 1114 | - <rect key="frame" x="0.0" y="0.0" width="100" height="100"/> | ||
| 1115 | - <autoresizingMask key="autoresizingMask"/> | ||
| 1116 | - </view> | ||
| 1117 | - </collectionViewCell> | ||
| 1118 | - </cells> | ||
| 1119 | - <connections> | ||
| 1120 | - <outlet property="dataSource" destination="O7P-Cf-mIk" id="bVu-V1-V8W"/> | ||
| 1121 | - <outlet property="delegate" destination="O7P-Cf-mIk" id="Fk3-Fe-7cA"/> | ||
| 1122 | - </connections> | ||
| 1123 | - </collectionView> | ||
| 1124 | - </subviews> | ||
| 1125 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1126 | - <constraints> | ||
| 1127 | - <constraint firstAttribute="trailing" secondItem="eBy-Q1-S80" secondAttribute="trailing" id="4RI-Yc-DP9"/> | ||
| 1128 | - <constraint firstItem="XmR-1Y-0Yz" firstAttribute="top" secondItem="eBy-Q1-S80" secondAttribute="bottom" id="8BK-aL-Jnu"/> | ||
| 1129 | - <constraint firstItem="eBy-Q1-S80" firstAttribute="leading" secondItem="ejV-Vc-Dk9" secondAttribute="leading" id="JZC-6q-tDR"/> | ||
| 1130 | - <constraint firstItem="eBy-Q1-S80" firstAttribute="top" secondItem="c2y-dE-z0d" secondAttribute="bottom" id="ucr-po-KYh"/> | ||
| 1131 | - </constraints> | ||
| 1132 | - </view> | ||
| 1133 | - <navigationItem key="navigationItem" title="更多" id="T3B-Yf-ctV"/> | ||
| 1134 | - <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/> | ||
| 1135 | - <connections> | ||
| 1136 | - <outlet property="collectionView" destination="eBy-Q1-S80" id="00L-L5-hIq"/> | ||
| 1137 | - </connections> | ||
| 1138 | - </viewController> | ||
| 1139 | - <placeholder placeholderIdentifier="IBFirstResponder" id="1cb-EL-Do3" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 1140 | - </objects> | ||
| 1141 | - <point key="canvasLocation" x="1888.8" y="-1679.0104947526238"/> | ||
| 1142 | - </scene> | ||
| 1143 | - <!--最热--> | ||
| 1144 | - <scene sceneID="BlJ-QX-os8"> | ||
| 1145 | - <objects> | ||
| 1146 | - <viewController storyboardIdentifier="HotMoreViewController" id="Jph-l3-PtE" customClass="HotMoreViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 1147 | - <layoutGuides> | ||
| 1148 | - <viewControllerLayoutGuide type="top" id="El5-2N-mar"/> | ||
| 1149 | - <viewControllerLayoutGuide type="bottom" id="hjM-YC-oTb"/> | ||
| 1150 | - </layoutGuides> | ||
| 1151 | - <view key="view" contentMode="scaleToFill" id="mle-JJ-tiX"> | ||
| 1152 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 1153 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 1154 | - <subviews> | ||
| 1155 | - <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="OE3-dR-ImI"> | ||
| 1156 | - <rect key="frame" x="0.0" y="64" width="375" height="603"/> | ||
| 1157 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1158 | - <connections> | ||
| 1159 | - <outlet property="dataSource" destination="Jph-l3-PtE" id="ebi-Rt-RE4"/> | ||
| 1160 | - <outlet property="delegate" destination="Jph-l3-PtE" id="VcA-AG-Sok"/> | ||
| 1161 | - </connections> | ||
| 1162 | - </tableView> | ||
| 1163 | - </subviews> | ||
| 1164 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1165 | - <constraints> | ||
| 1166 | - <constraint firstItem="hjM-YC-oTb" firstAttribute="top" secondItem="OE3-dR-ImI" secondAttribute="bottom" id="1wB-nu-CaJ"/> | ||
| 1167 | - <constraint firstAttribute="trailing" secondItem="OE3-dR-ImI" secondAttribute="trailing" id="Qqo-K7-t4c"/> | ||
| 1168 | - <constraint firstItem="OE3-dR-ImI" firstAttribute="leading" secondItem="mle-JJ-tiX" secondAttribute="leading" id="SFY-5M-OE0"/> | ||
| 1169 | - <constraint firstItem="OE3-dR-ImI" firstAttribute="top" secondItem="El5-2N-mar" secondAttribute="bottom" id="pu0-vs-ZVA"/> | ||
| 1170 | - </constraints> | ||
| 1171 | - </view> | ||
| 1172 | - <navigationItem key="navigationItem" title="最热" id="xjm-44-nLz"/> | ||
| 1173 | - <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/> | ||
| 1174 | - <connections> | ||
| 1175 | - <outlet property="tableView" destination="OE3-dR-ImI" id="6Mm-eJ-bgq"/> | ||
| 1176 | - </connections> | ||
| 1177 | - </viewController> | ||
| 1178 | - <placeholder placeholderIdentifier="IBFirstResponder" id="jFr-6C-m73" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 1179 | - </objects> | ||
| 1180 | - <point key="canvasLocation" x="2581.5999999999999" y="-1679.0104947526238"/> | ||
| 1181 | - </scene> | ||
| 1182 | - <!--列表--> | ||
| 1183 | - <scene sceneID="ZF8-5I-tzV"> | ||
| 1184 | - <objects> | ||
| 1185 | - <viewController storyboardIdentifier="LiveTypeListViewController" id="xbD-Bj-K0h" customClass="LiveTypeListViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 1186 | - <layoutGuides> | ||
| 1187 | - <viewControllerLayoutGuide type="top" id="J0h-Mn-3dq"/> | ||
| 1188 | - <viewControllerLayoutGuide type="bottom" id="X29-PQ-nr4"/> | ||
| 1189 | - </layoutGuides> | ||
| 1190 | - <view key="view" contentMode="scaleToFill" id="uFj-96-FtC"> | ||
| 1191 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 1192 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 1193 | - <subviews> | ||
| 1194 | - <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="Mp9-RK-hsB"> | ||
| 1195 | - <rect key="frame" x="0.0" y="64" width="375" height="603"/> | ||
| 1196 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1197 | - <connections> | ||
| 1198 | - <outlet property="dataSource" destination="xbD-Bj-K0h" id="u1e-0J-FVt"/> | ||
| 1199 | - <outlet property="delegate" destination="xbD-Bj-K0h" id="ng0-fZ-pfO"/> | ||
| 1200 | - </connections> | ||
| 1201 | - </tableView> | ||
| 1202 | - </subviews> | ||
| 1203 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1204 | - <constraints> | ||
| 1205 | - <constraint firstItem="Mp9-RK-hsB" firstAttribute="leading" secondItem="uFj-96-FtC" secondAttribute="leading" id="Hbg-27-BF6"/> | ||
| 1206 | - <constraint firstItem="X29-PQ-nr4" firstAttribute="top" secondItem="Mp9-RK-hsB" secondAttribute="bottom" id="j4K-um-vff"/> | ||
| 1207 | - <constraint firstItem="Mp9-RK-hsB" firstAttribute="top" secondItem="J0h-Mn-3dq" secondAttribute="bottom" id="nV1-o3-OIH"/> | ||
| 1208 | - <constraint firstAttribute="trailing" secondItem="Mp9-RK-hsB" secondAttribute="trailing" id="q88-BM-e0C"/> | ||
| 1209 | - </constraints> | ||
| 1210 | - </view> | ||
| 1211 | - <navigationItem key="navigationItem" title="列表" id="Z73-42-7TC"/> | ||
| 1212 | - <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/> | ||
| 1213 | - <connections> | ||
| 1214 | - <outlet property="tableView" destination="Mp9-RK-hsB" id="l1r-y0-Qvc"/> | ||
| 1215 | - </connections> | ||
| 1216 | - </viewController> | ||
| 1217 | - <placeholder placeholderIdentifier="IBFirstResponder" id="zaf-p8-ZkA" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 1218 | - </objects> | ||
| 1219 | - <point key="canvasLocation" x="3272.8000000000002" y="-1679.0104947526238"/> | ||
| 1220 | - </scene> | ||
| 1221 | <!--教育视频云--> | 516 | <!--教育视频云--> |
| 1222 | <scene sceneID="HjP-gB-wYC"> | 517 | <scene sceneID="HjP-gB-wYC"> |
| 1223 | <objects> | 518 | <objects> |
| @@ -1342,13 +637,11 @@ | @@ -1342,13 +637,11 @@ | ||
| 1342 | </scenes> | 637 | </scenes> |
| 1343 | <resources> | 638 | <resources> |
| 1344 | <image name="arrow" width="33" height="33"/> | 639 | <image name="arrow" width="33" height="33"/> |
| 1345 | - <image name="attach_file.png" width="128" height="128"/> | ||
| 1346 | <image name="default" width="375" height="167"/> | 640 | <image name="default" width="375" height="167"/> |
| 1347 | <image name="default_userRoom" width="19" height="17"/> | 641 | <image name="default_userRoom" width="19" height="17"/> |
| 1348 | <image name="defphoto.png" width="256" height="256"/> | 642 | <image name="defphoto.png" width="256" height="256"/> |
| 1349 | <image name="divshadow.png" width="771" height="13"/> | 643 | <image name="divshadow.png" width="771" height="13"/> |
| 1350 | <image name="icon.png" width="80" height="80"/> | 644 | <image name="icon.png" width="80" height="80"/> |
| 1351 | <image name="视窗.png" width="31" height="31"/> | 645 | <image name="视窗.png" width="31" height="31"/> |
| 1352 | - <image name="首页.png" width="31" height="31"/> | ||
| 1353 | </resources> | 646 | </resources> |
| 1354 | </document> | 647 | </document> |
YouerLiveVideo/YouerLiveVideo/YouerLiveVideo-Bridging-Header.h
| @@ -10,7 +10,6 @@ | @@ -10,7 +10,6 @@ | ||
| 10 | #define YouerLiveVideo_Bridging_Header_h | 10 | #define YouerLiveVideo_Bridging_Header_h |
| 11 | #import <CommonCrypto/CommonCrypto.h> | 11 | #import <CommonCrypto/CommonCrypto.h> |
| 12 | #import <AlivcLiveVideo/AlivcLiveVideo.h> | 12 | #import <AlivcLiveVideo/AlivcLiveVideo.h> |
| 13 | -#import "AlivcLiveViewController.h" | ||
| 14 | #import "UIView+Toast.h" | 13 | #import "UIView+Toast.h" |
| 15 | #import "ZSDSetPasswordView.h" | 14 | #import "ZSDSetPasswordView.h" |
| 16 | #import <UMSocialCore/UMSocialCore.h> | 15 | #import <UMSocialCore/UMSocialCore.h> |
YouerLiveVideo/YouerLiveVideo/controller/HomeCellAndTitleView/AttentionTableViewCell.swift
| @@ -1,59 +0,0 @@ | @@ -1,59 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// AttentionTableViewCell.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 葛建军 on 17/1/19. | ||
| 6 | -// Copyright © 2017年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class AttentionTableViewCell: UITableViewCell { | ||
| 12 | - @IBOutlet var iconImage: UIImageView! | ||
| 13 | - @IBOutlet var personNameLabel: UILabel! | ||
| 14 | - @IBOutlet var titleLabel: UILabel! | ||
| 15 | - @IBOutlet var personNumberLabel: UILabel! | ||
| 16 | - @IBOutlet var attentionBtn: UIButton! | ||
| 17 | - var organizeSchool:OrganizeListSchool! | ||
| 18 | - var superVC:UIViewController! | ||
| 19 | - override func awakeFromNib() { | ||
| 20 | - super.awakeFromNib() | ||
| 21 | - } | ||
| 22 | - | ||
| 23 | - override func setSelected(_ selected: Bool, animated: Bool) { | ||
| 24 | - super.setSelected(selected, animated: animated) | ||
| 25 | - } | ||
| 26 | - | ||
| 27 | - @IBAction func attentionAction(_ sender: UIButton) { | ||
| 28 | - SVProgressHUD.show(withStatus: "加载中...") | ||
| 29 | - SVProgressHUD.setDefaultMaskType(.black) | ||
| 30 | - let parameters:Dictionary<String,AnyObject>=["F_OrganizeId":organizeSchool.f_Id as AnyObject,"F_Action":0 as AnyObject] | ||
| 31 | - AppDelegate.instance().httpServer.setIsAction(parameters: parameters, completionHandler: { (str, error) in | ||
| 32 | - SVProgressHUD.dismiss() | ||
| 33 | - if error==nil { | ||
| 34 | - if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 35 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 36 | - (self.superVC as! MyAttentionViewController).getActSchoolList() | ||
| 37 | - }, failHandler: { (error) in | ||
| 38 | - AppDelegate.instance().window?.makeToast("取消关注失败:\(error.localizedDescription)") | ||
| 39 | - }) | ||
| 40 | - }else{ | ||
| 41 | - AppDelegate.instance().window?.makeToast("取消关注失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
| 42 | - } | ||
| 43 | - }else{ | ||
| 44 | - AppDelegate.instance().window?.makeToast("取消关注失败:\(error!.description)") | ||
| 45 | - } | ||
| 46 | - }) | ||
| 47 | - } | ||
| 48 | - | ||
| 49 | - func setupWith(item:OrganizeListSchool,isMy:Bool){ | ||
| 50 | - if isMy { | ||
| 51 | - attentionBtn.isHidden=false | ||
| 52 | - }else{ | ||
| 53 | - attentionBtn.isHidden=true | ||
| 54 | - } | ||
| 55 | - organizeSchool=item | ||
| 56 | - personNameLabel.text=item.f_FullName | ||
| 57 | - personNumberLabel.text="\(item.f_Views)人正在观看" | ||
| 58 | - } | ||
| 59 | -} |
YouerLiveVideo/YouerLiveVideo/controller/HomeCellAndTitleView/AttentionTableViewCell.xib
| @@ -1,99 +0,0 @@ | @@ -1,99 +0,0 @@ | ||
| 1 | -<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
| 2 | -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11201" systemVersion="15G31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> | ||
| 3 | - <dependencies> | ||
| 4 | - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11161"/> | ||
| 5 | - <capability name="Constraints to layout margins" minToolsVersion="6.0"/> | ||
| 6 | - <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | ||
| 7 | - </dependencies> | ||
| 8 | - <objects> | ||
| 9 | - <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> | ||
| 10 | - <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> | ||
| 11 | - <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="AttentionTableViewCell" rowHeight="80" id="9mN-zR-YLB" customClass="AttentionTableViewCell" customModule="YouerLiveVideo" customModuleProvider="target"> | ||
| 12 | - <rect key="frame" x="0.0" y="0.0" width="375" height="80"/> | ||
| 13 | - <autoresizingMask key="autoresizingMask"/> | ||
| 14 | - <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="9mN-zR-YLB" id="NMP-qu-Uj3"> | ||
| 15 | - <frame key="frameInset" width="375" height="79"/> | ||
| 16 | - <autoresizingMask key="autoresizingMask"/> | ||
| 17 | - <subviews> | ||
| 18 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="defphoto.png" translatesAutoresizingMaskIntoConstraints="NO" id="9fi-L6-AHq"> | ||
| 19 | - <constraints> | ||
| 20 | - <constraint firstAttribute="width" constant="60" id="g4Z-aE-zgq"/> | ||
| 21 | - <constraint firstAttribute="height" constant="60" id="puv-1u-nc5"/> | ||
| 22 | - </constraints> | ||
| 23 | - <userDefinedRuntimeAttributes> | ||
| 24 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 25 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 26 | - <integer key="value" value="30"/> | ||
| 27 | - </userDefinedRuntimeAttribute> | ||
| 28 | - </userDefinedRuntimeAttributes> | ||
| 29 | - </imageView> | ||
| 30 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="杭州顺治" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7UF-rv-D7h"> | ||
| 31 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 32 | - <nil key="textColor"/> | ||
| 33 | - <nil key="highlightedColor"/> | ||
| 34 | - </label> | ||
| 35 | - <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="正在直播:学事通杭州顺治科技股份有限公司" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QNP-ow-TLk"> | ||
| 36 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 37 | - <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> | ||
| 38 | - <nil key="highlightedColor"/> | ||
| 39 | - </label> | ||
| 40 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="IEr-0a-zkG"> | ||
| 41 | - <color key="backgroundColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 42 | - <constraints> | ||
| 43 | - <constraint firstAttribute="width" constant="70" id="Jmg-k5-GYf"/> | ||
| 44 | - <constraint firstAttribute="height" constant="25" id="f5F-xn-jqm"/> | ||
| 45 | - </constraints> | ||
| 46 | - <state key="normal" title="已关注"> | ||
| 47 | - <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 48 | - </state> | ||
| 49 | - <connections> | ||
| 50 | - <action selector="attentionAction:" destination="9mN-zR-YLB" eventType="touchUpInside" id="kDp-pq-goF"/> | ||
| 51 | - </connections> | ||
| 52 | - </button> | ||
| 53 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="b4T-8l-vne"> | ||
| 54 | - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 55 | - <constraints> | ||
| 56 | - <constraint firstAttribute="height" constant="1" id="0hZ-AG-hLJ"/> | ||
| 57 | - </constraints> | ||
| 58 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 59 | - <nil key="textColor"/> | ||
| 60 | - <nil key="highlightedColor"/> | ||
| 61 | - </label> | ||
| 62 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="10000人看过" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="j0J-Nb-DVD"> | ||
| 63 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 64 | - <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> | ||
| 65 | - <nil key="highlightedColor"/> | ||
| 66 | - </label> | ||
| 67 | - </subviews> | ||
| 68 | - <constraints> | ||
| 69 | - <constraint firstItem="9fi-L6-AHq" firstAttribute="centerY" secondItem="NMP-qu-Uj3" secondAttribute="centerY" id="4Xc-1A-D92"/> | ||
| 70 | - <constraint firstAttribute="trailingMargin" secondItem="IEr-0a-zkG" secondAttribute="trailing" id="6Di-Ra-ZOV"/> | ||
| 71 | - <constraint firstItem="IEr-0a-zkG" firstAttribute="leading" secondItem="j0J-Nb-DVD" secondAttribute="trailing" constant="8" id="6L9-zI-0EU"/> | ||
| 72 | - <constraint firstItem="QNP-ow-TLk" firstAttribute="leading" secondItem="9fi-L6-AHq" secondAttribute="trailing" constant="8" id="9P3-Ih-BZu"/> | ||
| 73 | - <constraint firstItem="IEr-0a-zkG" firstAttribute="centerY" secondItem="NMP-qu-Uj3" secondAttribute="centerY" id="IP1-0k-VMi"/> | ||
| 74 | - <constraint firstItem="j0J-Nb-DVD" firstAttribute="leading" secondItem="9fi-L6-AHq" secondAttribute="trailing" constant="8" id="Rvc-ms-cAl"/> | ||
| 75 | - <constraint firstItem="IEr-0a-zkG" firstAttribute="leading" secondItem="QNP-ow-TLk" secondAttribute="trailing" constant="8" id="WFx-pc-US8"/> | ||
| 76 | - <constraint firstItem="QNP-ow-TLk" firstAttribute="top" secondItem="7UF-rv-D7h" secondAttribute="bottom" id="aXm-m1-ED4"/> | ||
| 77 | - <constraint firstItem="7UF-rv-D7h" firstAttribute="top" secondItem="NMP-qu-Uj3" secondAttribute="topMargin" constant="7" id="aoC-el-Iq1"/> | ||
| 78 | - <constraint firstItem="j0J-Nb-DVD" firstAttribute="top" secondItem="QNP-ow-TLk" secondAttribute="bottom" id="bJV-Hx-V9y"/> | ||
| 79 | - <constraint firstAttribute="bottom" secondItem="b4T-8l-vne" secondAttribute="bottom" id="dnO-xH-3aJ"/> | ||
| 80 | - <constraint firstAttribute="trailing" secondItem="b4T-8l-vne" secondAttribute="trailing" id="hTZ-M3-atK"/> | ||
| 81 | - <constraint firstItem="7UF-rv-D7h" firstAttribute="leading" secondItem="9fi-L6-AHq" secondAttribute="trailing" constant="8" id="jRd-Q4-opb"/> | ||
| 82 | - <constraint firstItem="b4T-8l-vne" firstAttribute="leading" secondItem="NMP-qu-Uj3" secondAttribute="leading" id="nkA-nf-n9C"/> | ||
| 83 | - <constraint firstAttribute="leadingMargin" secondItem="9fi-L6-AHq" secondAttribute="leading" id="ucp-Cp-t0K"/> | ||
| 84 | - <constraint firstItem="IEr-0a-zkG" firstAttribute="leading" secondItem="7UF-rv-D7h" secondAttribute="trailing" constant="8" id="xB9-HV-w56"/> | ||
| 85 | - </constraints> | ||
| 86 | - </tableViewCellContentView> | ||
| 87 | - <connections> | ||
| 88 | - <outlet property="attentionBtn" destination="IEr-0a-zkG" id="v9W-3J-ewb"/> | ||
| 89 | - <outlet property="iconImage" destination="9fi-L6-AHq" id="S0a-Cg-dcd"/> | ||
| 90 | - <outlet property="personNameLabel" destination="7UF-rv-D7h" id="Ezs-Ca-YLK"/> | ||
| 91 | - <outlet property="personNumberLabel" destination="j0J-Nb-DVD" id="fjn-kJ-GLu"/> | ||
| 92 | - <outlet property="titleLabel" destination="QNP-ow-TLk" id="Luk-IJ-iVH"/> | ||
| 93 | - </connections> | ||
| 94 | - </tableViewCell> | ||
| 95 | - </objects> | ||
| 96 | - <resources> | ||
| 97 | - <image name="defphoto.png" width="256" height="256"/> | ||
| 98 | - </resources> | ||
| 99 | -</document> |
YouerLiveVideo/YouerLiveVideo/controller/HomeCellAndTitleView/HomeTableViewCell.swift
| @@ -1,79 +0,0 @@ | @@ -1,79 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// HomeTableViewCell.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 葛建军 on 17/1/14. | ||
| 6 | -// Copyright © 2017年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class HomeTableViewCell: UITableViewCell { | ||
| 12 | - @IBOutlet var personIcon: UIImageView! | ||
| 13 | - @IBOutlet var titleLabel: UILabel! | ||
| 14 | - @IBOutlet var timeLabel: UILabel! | ||
| 15 | - @IBOutlet var detailView: UIView! | ||
| 16 | - @IBOutlet var numberPeople: UILabel! | ||
| 17 | - @IBOutlet var numberCare: UILabel! | ||
| 18 | - @IBOutlet var passLabel: UILabel! | ||
| 19 | - @IBOutlet var liveimageView: UIImageView! | ||
| 20 | - @IBOutlet var tagLabel: UILabel! | ||
| 21 | - | ||
| 22 | - @IBOutlet weak var rommNameLabel: UILabel! | ||
| 23 | - let formatte=DateFormatter() | ||
| 24 | - override func awakeFromNib() { | ||
| 25 | - super.awakeFromNib() | ||
| 26 | - tagLabel.layer.cornerRadius = 5 | ||
| 27 | - tagLabel.layer.masksToBounds=true | ||
| 28 | - tagLabel.layer.borderWidth=1.0 | ||
| 29 | - tagLabel.layer.borderColor=Theme.topBarColor().cgColor | ||
| 30 | - formatte.dateFormat="yyyy-MM-dd HH:mm:ss" | ||
| 31 | - } | ||
| 32 | - func setUpWith(item:LiveDetail){ | ||
| 33 | - passLabel.isHidden=true | ||
| 34 | - detailView.isHidden=true | ||
| 35 | - personIcon.sd_setImage(with: URL(string:item.f_HeadIcon), placeholderImage: UIImage(named:"defphoto")) | ||
| 36 | - titleLabel.text=item.f_RealName | ||
| 37 | - timeLabel.text=formatte.string(from: Date(timeIntervalSince1970: JSON.fromString(jsonString: item.f_Description)!["starttime"].doubleValue/1000 as TimeInterval)) | ||
| 38 | - liveimageView.sd_setImage(with: URL(string:item.f_LiveImg), placeholderImage: UIImage(named:"placeholder")) | ||
| 39 | - tagLabel.text=" "+item.f_CategoryName+" " | ||
| 40 | - rommNameLabel.text = item.f_LiveName | ||
| 41 | - } | ||
| 42 | - func setUpWith(type:LivesType,item:LiveDetail){ | ||
| 43 | - personIcon.sd_setImage(with: URL(string:item.f_HeadIcon), placeholderImage: UIImage(named:"defphoto")) | ||
| 44 | - titleLabel.text=item.f_LiveName | ||
| 45 | - timeLabel.text=formatte.string(from: Date(timeIntervalSince1970: JSON.fromString(jsonString: item.f_Description)!["starttime"].doubleValue/1000 as TimeInterval)) | ||
| 46 | - liveimageView.sd_setImage(with: URL(string:item.f_LiveImg), placeholderImage: UIImage(named:"placeholder")) | ||
| 47 | - tagLabel.text=item.f_CategoryName | ||
| 48 | - switch type { | ||
| 49 | - case LivesType.liveList://直播列表 | ||
| 50 | - passLabel.isHidden=false | ||
| 51 | - detailView.isHidden=true | ||
| 52 | - if item.f_IsExamine==1 { | ||
| 53 | - passLabel.backgroundColor=Theme.topBarColor() | ||
| 54 | - passLabel.text="已通过" | ||
| 55 | - }else if item.f_IsExamine==2 { | ||
| 56 | - passLabel.backgroundColor=UIColor.gray | ||
| 57 | - passLabel.text="未通过" | ||
| 58 | - }else{ | ||
| 59 | - passLabel.backgroundColor=UIColor.gray | ||
| 60 | - passLabel.text="待审核" | ||
| 61 | - } | ||
| 62 | - break | ||
| 63 | - case LivesType.liveHistory://直播历史 | ||
| 64 | - passLabel.isHidden=true | ||
| 65 | - detailView.isHidden=false | ||
| 66 | - //多少人观看,多少人关注 | ||
| 67 | - break | ||
| 68 | - default: | ||
| 69 | - passLabel.isHidden=true | ||
| 70 | - detailView.isHidden=false | ||
| 71 | - } | ||
| 72 | - } | ||
| 73 | - override func setSelected(_ selected: Bool, animated: Bool) { | ||
| 74 | - super.setSelected(selected, animated: animated) | ||
| 75 | - | ||
| 76 | - // Configure the view for the selected state | ||
| 77 | - } | ||
| 78 | - | ||
| 79 | -} |
YouerLiveVideo/YouerLiveVideo/controller/HomeCellAndTitleView/HomeTableViewCell.xib
| @@ -1,205 +0,0 @@ | @@ -1,205 +0,0 @@ | ||
| 1 | -<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11762" systemVersion="16A323" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> | ||
| 3 | - <device id="retina4_7" orientation="portrait"> | ||
| 4 | - <adaptation id="fullscreen"/> | ||
| 5 | - </device> | ||
| 6 | - <dependencies> | ||
| 7 | - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/> | ||
| 8 | - <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | ||
| 9 | - </dependencies> | ||
| 10 | - <objects> | ||
| 11 | - <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> | ||
| 12 | - <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> | ||
| 13 | - <tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="cell" rowHeight="332" id="KGk-i7-Jjw" customClass="HomeTableViewCell" customModule="YouerLiveVideo" customModuleProvider="target"> | ||
| 14 | - <rect key="frame" x="0.0" y="0.0" width="428" height="332"/> | ||
| 15 | - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
| 16 | - <tableViewCellContentView key="contentView" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM"> | ||
| 17 | - <rect key="frame" x="0.0" y="0.0" width="428" height="332"/> | ||
| 18 | - <autoresizingMask key="autoresizingMask"/> | ||
| 19 | - <subviews> | ||
| 20 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="p5I-Ng-1OX"> | ||
| 21 | - <rect key="frame" x="0.0" y="0.0" width="428" height="52"/> | ||
| 22 | - <subviews> | ||
| 23 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon.png" translatesAutoresizingMaskIntoConstraints="NO" id="s6K-bm-CvZ"> | ||
| 24 | - <rect key="frame" x="10" y="10" width="32" height="32"/> | ||
| 25 | - <constraints> | ||
| 26 | - <constraint firstAttribute="height" constant="32" id="XYp-ig-s4I"/> | ||
| 27 | - <constraint firstAttribute="width" constant="32" id="g8J-oV-weW"/> | ||
| 28 | - </constraints> | ||
| 29 | - <userDefinedRuntimeAttributes> | ||
| 30 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 31 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 32 | - <integer key="value" value="16"/> | ||
| 33 | - </userDefinedRuntimeAttribute> | ||
| 34 | - </userDefinedRuntimeAttributes> | ||
| 35 | - </imageView> | ||
| 36 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="数学-勾股定理详解" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="B90-WP-zZC"> | ||
| 37 | - <rect key="frame" x="54" y="8" width="366" height="17"/> | ||
| 38 | - <fontDescription key="fontDescription" type="system" pointSize="14"/> | ||
| 39 | - <nil key="textColor"/> | ||
| 40 | - <nil key="highlightedColor"/> | ||
| 41 | - </label> | ||
| 42 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2017-01-14 10:48" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tF7-KY-Ksz"> | ||
| 43 | - <rect key="frame" x="54" y="31" width="108" height="16"/> | ||
| 44 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 45 | - <color key="textColor" red="0.6705882352941176" green="0.6705882352941176" blue="0.6705882352941176" alpha="1" colorSpace="calibratedRGB"/> | ||
| 46 | - <nil key="highlightedColor"/> | ||
| 47 | - </label> | ||
| 48 | - <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kxI-8X-XWu"> | ||
| 49 | - <rect key="frame" x="298" y="0.0" width="130" height="52"/> | ||
| 50 | - <subviews> | ||
| 51 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="120100" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Veh-uq-cW2"> | ||
| 52 | - <rect key="frame" x="20" y="18" width="45" height="16"/> | ||
| 53 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 54 | - <nil key="textColor"/> | ||
| 55 | - <nil key="highlightedColor"/> | ||
| 56 | - </label> | ||
| 57 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="观看人数.png" translatesAutoresizingMaskIntoConstraints="NO" id="9B5-M6-Bc2"> | ||
| 58 | - <rect key="frame" x="5" y="21" width="15" height="10"/> | ||
| 59 | - <constraints> | ||
| 60 | - <constraint firstAttribute="height" constant="10" id="4Pc-f3-dac"/> | ||
| 61 | - <constraint firstAttribute="width" constant="15" id="u2J-2K-N1Y"/> | ||
| 62 | - </constraints> | ||
| 63 | - </imageView> | ||
| 64 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="礼物数量.png" translatesAutoresizingMaskIntoConstraints="NO" id="pRf-Ov-q43"> | ||
| 65 | - <rect key="frame" x="65" y="20" width="12" height="12"/> | ||
| 66 | - <constraints> | ||
| 67 | - <constraint firstAttribute="width" constant="12" id="gEC-1c-3cN"/> | ||
| 68 | - <constraint firstAttribute="height" constant="12" id="rw9-Cd-6Cg"/> | ||
| 69 | - </constraints> | ||
| 70 | - </imageView> | ||
| 71 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="120100" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9Qr-Xj-qWL"> | ||
| 72 | - <rect key="frame" x="77" y="18" width="45" height="16"/> | ||
| 73 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 74 | - <nil key="textColor"/> | ||
| 75 | - <nil key="highlightedColor"/> | ||
| 76 | - </label> | ||
| 77 | - </subviews> | ||
| 78 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 79 | - <constraints> | ||
| 80 | - <constraint firstItem="9Qr-Xj-qWL" firstAttribute="centerY" secondItem="kxI-8X-XWu" secondAttribute="centerY" id="8pn-og-EMK"/> | ||
| 81 | - <constraint firstItem="pRf-Ov-q43" firstAttribute="centerY" secondItem="kxI-8X-XWu" secondAttribute="centerY" id="BgV-93-IKu"/> | ||
| 82 | - <constraint firstAttribute="width" constant="130" id="JE1-jh-MuK"/> | ||
| 83 | - <constraint firstItem="9Qr-Xj-qWL" firstAttribute="leading" secondItem="pRf-Ov-q43" secondAttribute="trailing" id="KmI-Hh-vRN"/> | ||
| 84 | - <constraint firstAttribute="trailing" secondItem="9Qr-Xj-qWL" secondAttribute="trailing" constant="8.5" id="QRD-sN-78r"/> | ||
| 85 | - <constraint firstItem="pRf-Ov-q43" firstAttribute="leading" secondItem="Veh-uq-cW2" secondAttribute="trailing" id="dGE-Ms-KoM"/> | ||
| 86 | - <constraint firstItem="Veh-uq-cW2" firstAttribute="centerY" secondItem="kxI-8X-XWu" secondAttribute="centerY" id="jfs-y0-wCU"/> | ||
| 87 | - <constraint firstItem="9B5-M6-Bc2" firstAttribute="centerY" secondItem="kxI-8X-XWu" secondAttribute="centerY" id="kfe-0g-X2N"/> | ||
| 88 | - <constraint firstItem="Veh-uq-cW2" firstAttribute="leading" secondItem="9B5-M6-Bc2" secondAttribute="trailing" id="yE1-yd-6oS"/> | ||
| 89 | - </constraints> | ||
| 90 | - </view> | ||
| 91 | - <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="未通过" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lto-Nc-FIO"> | ||
| 92 | - <rect key="frame" x="375" y="16" width="45" height="20"/> | ||
| 93 | - <color key="backgroundColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 94 | - <constraints> | ||
| 95 | - <constraint firstAttribute="width" constant="45" id="7BO-52-GJa"/> | ||
| 96 | - <constraint firstAttribute="height" constant="20" id="Tyx-GJ-9Du"/> | ||
| 97 | - </constraints> | ||
| 98 | - <fontDescription key="fontDescription" type="system" pointSize="12"/> | ||
| 99 | - <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 100 | - <nil key="highlightedColor"/> | ||
| 101 | - <userDefinedRuntimeAttributes> | ||
| 102 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 103 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 104 | - <integer key="value" value="10"/> | ||
| 105 | - </userDefinedRuntimeAttribute> | ||
| 106 | - </userDefinedRuntimeAttributes> | ||
| 107 | - </label> | ||
| 108 | - </subviews> | ||
| 109 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 110 | - <constraints> | ||
| 111 | - <constraint firstAttribute="bottom" secondItem="kxI-8X-XWu" secondAttribute="bottom" id="76i-Qb-t5O"/> | ||
| 112 | - <constraint firstAttribute="trailing" secondItem="lto-Nc-FIO" secondAttribute="trailing" constant="8" id="87I-sr-8Vv"/> | ||
| 113 | - <constraint firstAttribute="height" constant="52" id="Ayg-RW-o84"/> | ||
| 114 | - <constraint firstAttribute="trailing" secondItem="kxI-8X-XWu" secondAttribute="trailing" id="KR6-3G-mC6"/> | ||
| 115 | - <constraint firstAttribute="trailing" secondItem="B90-WP-zZC" secondAttribute="trailing" constant="8" id="UKy-6K-G3J"/> | ||
| 116 | - <constraint firstAttribute="bottom" secondItem="tF7-KY-Ksz" secondAttribute="bottom" constant="5" id="UcS-J9-VUv"/> | ||
| 117 | - <constraint firstItem="lto-Nc-FIO" firstAttribute="centerY" secondItem="p5I-Ng-1OX" secondAttribute="centerY" id="V3s-h2-UwJ"/> | ||
| 118 | - <constraint firstItem="B90-WP-zZC" firstAttribute="leading" secondItem="s6K-bm-CvZ" secondAttribute="trailing" constant="12" id="YcU-bV-B7M"/> | ||
| 119 | - <constraint firstItem="s6K-bm-CvZ" firstAttribute="leading" secondItem="p5I-Ng-1OX" secondAttribute="leading" constant="10" id="c0I-zN-prP"/> | ||
| 120 | - <constraint firstItem="B90-WP-zZC" firstAttribute="top" secondItem="p5I-Ng-1OX" secondAttribute="top" constant="8" id="g2Y-9M-Fog"/> | ||
| 121 | - <constraint firstItem="tF7-KY-Ksz" firstAttribute="leading" secondItem="s6K-bm-CvZ" secondAttribute="trailing" constant="12" id="hFx-ut-A5O"/> | ||
| 122 | - <constraint firstItem="kxI-8X-XWu" firstAttribute="top" secondItem="p5I-Ng-1OX" secondAttribute="top" id="n12-C8-w8u"/> | ||
| 123 | - <constraint firstItem="s6K-bm-CvZ" firstAttribute="centerY" secondItem="p5I-Ng-1OX" secondAttribute="centerY" id="u59-Sm-IaZ"/> | ||
| 124 | - </constraints> | ||
| 125 | - </view> | ||
| 126 | - <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="placeholder" translatesAutoresizingMaskIntoConstraints="NO" id="fvu-8U-fPM"> | ||
| 127 | - <rect key="frame" x="0.0" y="52" width="428" height="211"/> | ||
| 128 | - <constraints> | ||
| 129 | - <constraint firstAttribute="height" constant="211" id="YYw-BS-I4c"/> | ||
| 130 | - </constraints> | ||
| 131 | - </imageView> | ||
| 132 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="标签.png" translatesAutoresizingMaskIntoConstraints="NO" id="Mho-Fp-Psg"> | ||
| 133 | - <rect key="frame" x="12" y="301" width="15" height="15"/> | ||
| 134 | - <constraints> | ||
| 135 | - <constraint firstAttribute="width" constant="15" id="2gW-lE-d5G"/> | ||
| 136 | - <constraint firstAttribute="height" constant="15" id="tio-UM-kHX"/> | ||
| 137 | - </constraints> | ||
| 138 | - </imageView> | ||
| 139 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="数学" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EzS-bX-Sub"> | ||
| 140 | - <rect key="frame" x="37" y="301" width="25" height="15"/> | ||
| 141 | - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> | ||
| 142 | - <fontDescription key="fontDescription" type="system" pointSize="12"/> | ||
| 143 | - <color key="textColor" red="1" green="0.5" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> | ||
| 144 | - <nil key="highlightedColor"/> | ||
| 145 | - </label> | ||
| 146 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QKV-wT-uPI"> | ||
| 147 | - <rect key="frame" x="12" y="273" width="404" height="18"/> | ||
| 148 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 149 | - <nil key="textColor"/> | ||
| 150 | - <nil key="highlightedColor"/> | ||
| 151 | - </label> | ||
| 152 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gwe-Ss-yJd"> | ||
| 153 | - <rect key="frame" x="0.0" y="324" width="428" height="8"/> | ||
| 154 | - <color key="backgroundColor" red="0.6705882353" green="0.6705882353" blue="0.6705882353" alpha="1" colorSpace="calibratedRGB"/> | ||
| 155 | - <constraints> | ||
| 156 | - <constraint firstAttribute="height" constant="8" id="grE-Fy-L4g"/> | ||
| 157 | - </constraints> | ||
| 158 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 159 | - <nil key="textColor"/> | ||
| 160 | - <nil key="highlightedColor"/> | ||
| 161 | - </label> | ||
| 162 | - </subviews> | ||
| 163 | - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 164 | - <constraints> | ||
| 165 | - <constraint firstAttribute="trailing" secondItem="p5I-Ng-1OX" secondAttribute="trailing" id="4l0-7n-ltM"/> | ||
| 166 | - <constraint firstItem="fvu-8U-fPM" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="7bC-e1-Dof"/> | ||
| 167 | - <constraint firstItem="gwe-Ss-yJd" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="B7Q-4A-DFQ"/> | ||
| 168 | - <constraint firstItem="gwe-Ss-yJd" firstAttribute="top" secondItem="EzS-bX-Sub" secondAttribute="bottom" constant="8" id="DEy-Rg-4tS"/> | ||
| 169 | - <constraint firstItem="p5I-Ng-1OX" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="HQA-c4-H8L"/> | ||
| 170 | - <constraint firstAttribute="trailing" secondItem="fvu-8U-fPM" secondAttribute="trailing" id="MqR-YQ-vSP"/> | ||
| 171 | - <constraint firstItem="fvu-8U-fPM" firstAttribute="top" secondItem="p5I-Ng-1OX" secondAttribute="bottom" id="R69-8n-adi"/> | ||
| 172 | - <constraint firstItem="QKV-wT-uPI" firstAttribute="top" secondItem="fvu-8U-fPM" secondAttribute="bottom" constant="10" id="VvU-2P-abM"/> | ||
| 173 | - <constraint firstItem="EzS-bX-Sub" firstAttribute="top" secondItem="Mho-Fp-Psg" secondAttribute="top" id="XXx-mY-aQA"/> | ||
| 174 | - <constraint firstItem="EzS-bX-Sub" firstAttribute="leading" secondItem="Mho-Fp-Psg" secondAttribute="trailing" constant="10" id="bI6-ja-vIu"/> | ||
| 175 | - <constraint firstAttribute="trailing" secondItem="gwe-Ss-yJd" secondAttribute="trailing" id="cQe-Vn-xyd"/> | ||
| 176 | - <constraint firstAttribute="trailing" secondItem="QKV-wT-uPI" secondAttribute="trailing" constant="12" id="dUw-BC-2Pv"/> | ||
| 177 | - <constraint firstItem="Mho-Fp-Psg" firstAttribute="top" secondItem="QKV-wT-uPI" secondAttribute="bottom" constant="10" id="fUB-il-lHR"/> | ||
| 178 | - <constraint firstItem="QKV-wT-uPI" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="12" id="hJb-Rb-gsm"/> | ||
| 179 | - <constraint firstItem="Mho-Fp-Psg" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="12" id="lfE-h6-A90"/> | ||
| 180 | - <constraint firstItem="p5I-Ng-1OX" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" id="pGs-7C-4K2"/> | ||
| 181 | - </constraints> | ||
| 182 | - </tableViewCellContentView> | ||
| 183 | - <connections> | ||
| 184 | - <outlet property="detailView" destination="kxI-8X-XWu" id="vwr-lE-cPm"/> | ||
| 185 | - <outlet property="liveimageView" destination="fvu-8U-fPM" id="Kj5-GS-N4b"/> | ||
| 186 | - <outlet property="numberCare" destination="Veh-uq-cW2" id="PIw-O8-Pgw"/> | ||
| 187 | - <outlet property="numberPeople" destination="9Qr-Xj-qWL" id="Ahd-Ml-gJJ"/> | ||
| 188 | - <outlet property="passLabel" destination="lto-Nc-FIO" id="Hj7-TI-zAe"/> | ||
| 189 | - <outlet property="personIcon" destination="s6K-bm-CvZ" id="iRq-Yx-280"/> | ||
| 190 | - <outlet property="rommNameLabel" destination="QKV-wT-uPI" id="8or-cv-nNF"/> | ||
| 191 | - <outlet property="tagLabel" destination="EzS-bX-Sub" id="PJx-va-Wp8"/> | ||
| 192 | - <outlet property="timeLabel" destination="tF7-KY-Ksz" id="ebO-fT-3Uk"/> | ||
| 193 | - <outlet property="titleLabel" destination="B90-WP-zZC" id="zZS-iG-ZlK"/> | ||
| 194 | - </connections> | ||
| 195 | - <point key="canvasLocation" x="-102" y="-7"/> | ||
| 196 | - </tableViewCell> | ||
| 197 | - </objects> | ||
| 198 | - <resources> | ||
| 199 | - <image name="icon.png" width="80" height="80"/> | ||
| 200 | - <image name="placeholder" width="375" height="250"/> | ||
| 201 | - <image name="标签.png" width="32" height="30"/> | ||
| 202 | - <image name="礼物数量.png" width="21" height="21"/> | ||
| 203 | - <image name="观看人数.png" width="31" height="20"/> | ||
| 204 | - </resources> | ||
| 205 | -</document> |
YouerLiveVideo/YouerLiveVideo/controller/HomeCellAndTitleView/LiveTitleView.swift
| @@ -1,105 +0,0 @@ | @@ -1,105 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// LiveTitleView.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 葛建军 on 17/1/14. | ||
| 6 | -// Copyright © 2017年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class LiveTitleView: UIView,UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout { | ||
| 12 | - var typeCollectionView: UICollectionView! | ||
| 13 | - var superViewController:HomeDetailViewController! | ||
| 14 | - var liveTypeArray:[LiveType]=[] | ||
| 15 | - var type:String="Live" | ||
| 16 | - override func awakeFromNib() { | ||
| 17 | - super.awakeFromNib() | ||
| 18 | - let flowLayout = UICollectionViewFlowLayout() | ||
| 19 | - flowLayout.scrollDirection=UICollectionViewScrollDirection.vertical | ||
| 20 | - flowLayout.minimumLineSpacing = 0 | ||
| 21 | - flowLayout.minimumInteritemSpacing = 0 | ||
| 22 | - flowLayout.sectionInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0) | ||
| 23 | - | ||
| 24 | - typeCollectionView = UICollectionView(frame: CGRect(x: 0, y: 0, width: getScreenWidth(), height: getScreenWidth()/2), collectionViewLayout: flowLayout) | ||
| 25 | - typeCollectionView.showsVerticalScrollIndicator = false | ||
| 26 | - typeCollectionView.showsHorizontalScrollIndicator = false | ||
| 27 | - typeCollectionView.delegate = self; | ||
| 28 | - typeCollectionView.dataSource = self; | ||
| 29 | - typeCollectionView.backgroundColor = UIColor.white | ||
| 30 | - typeCollectionView.register(UINib(nibName: "liveTitleCollectionCell", bundle: nil), forCellWithReuseIdentifier: "liveTitleCollectionCell") | ||
| 31 | - self.addSubview(typeCollectionView) | ||
| 32 | - getLiveTypeList() | ||
| 33 | - } | ||
| 34 | - func getLiveTypeList(){ | ||
| 35 | - AppDelegate.instance().httpServer.postLiveType(type: type) { (str, error) in | ||
| 36 | - if error==nil { | ||
| 37 | - if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 38 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 39 | - self.liveTypeArray=LiveType.getAllLiveType(j: json) | ||
| 40 | - self.typeCollectionView.reloadData() | ||
| 41 | - }, failHandler: { (error) in | ||
| 42 | - NSLog("获取分类列表失败:\(error.localizedDescription)") | ||
| 43 | - }) | ||
| 44 | - }else{ | ||
| 45 | - NSLog("获取分类列表失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
| 46 | - } | ||
| 47 | - }else{ | ||
| 48 | - NSLog("获取分类列表失败失败:\(error!.description)") | ||
| 49 | - } | ||
| 50 | - } | ||
| 51 | - } | ||
| 52 | - //MARK: - UICollectionViewDelegateFlowLayout | ||
| 53 | - func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { | ||
| 54 | - return CGSize(width: getScreenWidth()/4, height: getScreenWidth()/4) | ||
| 55 | - } | ||
| 56 | - //MARK: - UICollectionViewDelegate,UICollectionViewDataSource | ||
| 57 | - func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { | ||
| 58 | - if liveTypeArray.count>7{ | ||
| 59 | - return 8 | ||
| 60 | - } | ||
| 61 | - return liveTypeArray.count | ||
| 62 | - } | ||
| 63 | - func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { | ||
| 64 | - let cell=collectionView.dequeueReusableCell(withReuseIdentifier: "liveTitleCollectionCell", for: indexPath) as! liveTitleCollectionCell | ||
| 65 | - //对cell 内进行赋值 | ||
| 66 | - if liveTypeArray.count <= 7{ | ||
| 67 | - cell.setUpWith(type: liveTypeArray[indexPath.row]) | ||
| 68 | - }else{ | ||
| 69 | - if indexPath.row==7 { | ||
| 70 | - cell.imageView.image=UIImage(named: "moreClass") | ||
| 71 | - cell.titleLabel.text="更多分类" | ||
| 72 | - }else{ | ||
| 73 | - cell.setUpWith(type: liveTypeArray[indexPath.row]) | ||
| 74 | - } | ||
| 75 | - } | ||
| 76 | - return cell | ||
| 77 | - } | ||
| 78 | - func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { | ||
| 79 | - let item=liveTypeArray[indexPath.row] | ||
| 80 | - if liveTypeArray.count <= 7{ | ||
| 81 | - let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LiveTypeListViewController") as! LiveTypeListViewController | ||
| 82 | - vc.isType=true | ||
| 83 | - vc.F_LiveType=item.f_Id | ||
| 84 | - vc.title=item.f_LiveTypeName | ||
| 85 | - self.superViewController.navigationController!.pushViewController(vc, animated: true) | ||
| 86 | - }else{ | ||
| 87 | - if indexPath.row==7 { | ||
| 88 | - let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "MoreViewController") as! MoreViewController | ||
| 89 | - vc.type=type | ||
| 90 | - self.superViewController.navigationController!.pushViewController(vc, animated: true) | ||
| 91 | - }else{ | ||
| 92 | - let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LiveTypeListViewController") as! LiveTypeListViewController | ||
| 93 | - vc.isType=true | ||
| 94 | - vc.F_LiveType=item.f_Id | ||
| 95 | - vc.title=item.f_LiveTypeName | ||
| 96 | - self.superViewController.navigationController!.pushViewController(vc, animated: true) | ||
| 97 | - } | ||
| 98 | - } | ||
| 99 | - } | ||
| 100 | - | ||
| 101 | - @IBAction func selectMoreAction(_ sender: UIButton) { | ||
| 102 | - let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "HotMoreViewController") as! HotMoreViewController | ||
| 103 | - self.superViewController.navigationController!.pushViewController(vc, animated: true) | ||
| 104 | - } | ||
| 105 | -} |
YouerLiveVideo/YouerLiveVideo/controller/HomeCellAndTitleView/LiveTitleView.xib
| @@ -1,76 +0,0 @@ | @@ -1,76 +0,0 @@ | ||
| 1 | -<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
| 2 | -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11201" systemVersion="15G31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> | ||
| 3 | - <dependencies> | ||
| 4 | - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11161"/> | ||
| 5 | - <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | ||
| 6 | - </dependencies> | ||
| 7 | - <objects> | ||
| 8 | - <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="LiveTitleView" customModule="YouerLiveVideo" customModuleProvider="target"/> | ||
| 9 | - <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> | ||
| 10 | - <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="LiveTitleView" customModule="YouerLiveVideo" customModuleProvider="target"> | ||
| 11 | - <rect key="frame" x="0.0" y="0.0" width="394" height="236"/> | ||
| 12 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 13 | - <subviews> | ||
| 14 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wpJ-LV-Bj8"> | ||
| 15 | - <subviews> | ||
| 16 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="直播-最热.png" translatesAutoresizingMaskIntoConstraints="NO" id="Gar-k2-psW"> | ||
| 17 | - <constraints> | ||
| 18 | - <constraint firstAttribute="width" constant="20" id="dFt-Go-vGt"/> | ||
| 19 | - <constraint firstAttribute="height" constant="20" id="iQE-bs-bNv"/> | ||
| 20 | - </constraints> | ||
| 21 | - </imageView> | ||
| 22 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="moreHot" translatesAutoresizingMaskIntoConstraints="NO" id="uo0-Cu-E4M"> | ||
| 23 | - <constraints> | ||
| 24 | - <constraint firstAttribute="width" constant="15" id="nbn-UC-LVn"/> | ||
| 25 | - <constraint firstAttribute="height" constant="15" id="ncL-dp-azg"/> | ||
| 26 | - </constraints> | ||
| 27 | - </imageView> | ||
| 28 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="更多" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rcG-vc-orp"> | ||
| 29 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 30 | - <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> | ||
| 31 | - <nil key="highlightedColor"/> | ||
| 32 | - </label> | ||
| 33 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="QgZ-Y4-W1V" userLabel="最热"> | ||
| 34 | - <connections> | ||
| 35 | - <action selector="selectMoreAction:" destination="-1" eventType="touchUpInside" id="VUa-dK-Hiz"/> | ||
| 36 | - </connections> | ||
| 37 | - </button> | ||
| 38 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="最热" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Dth-ch-Nvw"> | ||
| 39 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 40 | - <nil key="textColor"/> | ||
| 41 | - <nil key="highlightedColor"/> | ||
| 42 | - </label> | ||
| 43 | - </subviews> | ||
| 44 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 45 | - <constraints> | ||
| 46 | - <constraint firstAttribute="height" constant="34" id="0AK-M7-ODV"/> | ||
| 47 | - <constraint firstItem="Dth-ch-Nvw" firstAttribute="centerY" secondItem="wpJ-LV-Bj8" secondAttribute="centerY" id="2lW-gH-fCu"/> | ||
| 48 | - <constraint firstItem="uo0-Cu-E4M" firstAttribute="leading" secondItem="rcG-vc-orp" secondAttribute="trailing" id="IMl-3p-EQf"/> | ||
| 49 | - <constraint firstAttribute="bottom" secondItem="QgZ-Y4-W1V" secondAttribute="bottom" id="Ld7-gX-8rH"/> | ||
| 50 | - <constraint firstItem="Dth-ch-Nvw" firstAttribute="leading" secondItem="Gar-k2-psW" secondAttribute="trailing" constant="2" id="S29-K7-tg6"/> | ||
| 51 | - <constraint firstItem="QgZ-Y4-W1V" firstAttribute="top" secondItem="wpJ-LV-Bj8" secondAttribute="top" id="VCY-X6-oX8"/> | ||
| 52 | - <constraint firstAttribute="trailing" secondItem="uo0-Cu-E4M" secondAttribute="trailing" constant="8" id="XDA-Lw-nKp"/> | ||
| 53 | - <constraint firstItem="rcG-vc-orp" firstAttribute="centerY" secondItem="wpJ-LV-Bj8" secondAttribute="centerY" id="Z5I-9t-JMP"/> | ||
| 54 | - <constraint firstItem="Gar-k2-psW" firstAttribute="leading" secondItem="wpJ-LV-Bj8" secondAttribute="leading" constant="8" id="i57-vt-bR8"/> | ||
| 55 | - <constraint firstItem="uo0-Cu-E4M" firstAttribute="centerY" secondItem="wpJ-LV-Bj8" secondAttribute="centerY" id="mM7-oZ-5VV"/> | ||
| 56 | - <constraint firstItem="QgZ-Y4-W1V" firstAttribute="leading" secondItem="wpJ-LV-Bj8" secondAttribute="leading" id="syv-i2-hO1"/> | ||
| 57 | - <constraint firstAttribute="trailing" secondItem="QgZ-Y4-W1V" secondAttribute="trailing" id="wfe-7d-ppU"/> | ||
| 58 | - <constraint firstItem="Gar-k2-psW" firstAttribute="centerY" secondItem="wpJ-LV-Bj8" secondAttribute="centerY" id="z5r-ll-jAT"/> | ||
| 59 | - </constraints> | ||
| 60 | - </view> | ||
| 61 | - </subviews> | ||
| 62 | - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 63 | - <constraints> | ||
| 64 | - <constraint firstAttribute="trailing" secondItem="wpJ-LV-Bj8" secondAttribute="trailing" id="FtP-Au-8lK"/> | ||
| 65 | - <constraint firstItem="wpJ-LV-Bj8" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="J0e-si-MIy"/> | ||
| 66 | - <constraint firstAttribute="bottom" secondItem="wpJ-LV-Bj8" secondAttribute="bottom" constant="1" id="Zmo-KF-e1E"/> | ||
| 67 | - </constraints> | ||
| 68 | - <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> | ||
| 69 | - <point key="canvasLocation" x="-286" y="-343"/> | ||
| 70 | - </view> | ||
| 71 | - </objects> | ||
| 72 | - <resources> | ||
| 73 | - <image name="moreHot" width="10" height="9"/> | ||
| 74 | - <image name="直播-最热.png" width="33" height="33"/> | ||
| 75 | - </resources> | ||
| 76 | -</document> |
YouerLiveVideo/YouerLiveVideo/controller/HomeCellAndTitleView/liveTitleCollectionCell.swift
| @@ -1,22 +0,0 @@ | @@ -1,22 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// liveTitleCollectionCell.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 葛建军 on 17/1/14. | ||
| 6 | -// Copyright © 2017年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class liveTitleCollectionCell: UICollectionViewCell { | ||
| 12 | - @IBOutlet var imageView: UIImageView! | ||
| 13 | - @IBOutlet var titleLabel: UILabel! | ||
| 14 | - override func awakeFromNib() { | ||
| 15 | - super.awakeFromNib() | ||
| 16 | - imageView.layer.cornerRadius=(getScreenWidth()/4-45)/2 | ||
| 17 | - } | ||
| 18 | - func setUpWith(type:LiveType){ | ||
| 19 | - imageView.sd_setImage(with: URL(string: type.f_Img), placeholderImage: UIImage(named: "defphoto")) | ||
| 20 | - titleLabel.text=type.f_LiveTypeName | ||
| 21 | - } | ||
| 22 | -} |
YouerLiveVideo/YouerLiveVideo/controller/HomeCellAndTitleView/liveTitleCollectionCell.xib
| @@ -1,55 +0,0 @@ | @@ -1,55 +0,0 @@ | ||
| 1 | -<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
| 2 | -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11201" systemVersion="15G31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> | ||
| 3 | - <dependencies> | ||
| 4 | - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11161"/> | ||
| 5 | - <capability name="Aspect ratio constraints" minToolsVersion="5.1"/> | ||
| 6 | - <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | ||
| 7 | - </dependencies> | ||
| 8 | - <objects> | ||
| 9 | - <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> | ||
| 10 | - <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> | ||
| 11 | - <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="liveTitleCollectionCell" id="gTV-IL-0wX" customClass="liveTitleCollectionCell" customModule="YouerLiveVideo" customModuleProvider="target"> | ||
| 12 | - <rect key="frame" x="0.0" y="0.0" width="100" height="100"/> | ||
| 13 | - <autoresizingMask key="autoresizingMask"/> | ||
| 14 | - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> | ||
| 15 | - <rect key="frame" x="0.0" y="0.0" width="100" height="100"/> | ||
| 16 | - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
| 17 | - <subviews> | ||
| 18 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="直播间" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0XL-Dd-Pvp"> | ||
| 19 | - <constraints> | ||
| 20 | - <constraint firstAttribute="height" constant="21" id="aPP-gr-XJJ"/> | ||
| 21 | - </constraints> | ||
| 22 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 23 | - <nil key="textColor"/> | ||
| 24 | - <nil key="highlightedColor"/> | ||
| 25 | - </label> | ||
| 26 | - <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="defphoto.png" translatesAutoresizingMaskIntoConstraints="NO" id="4IO-cu-Vt4"> | ||
| 27 | - <constraints> | ||
| 28 | - <constraint firstAttribute="width" secondItem="4IO-cu-Vt4" secondAttribute="height" multiplier="1:1" id="biJ-B5-WLx"/> | ||
| 29 | - </constraints> | ||
| 30 | - <userDefinedRuntimeAttributes> | ||
| 31 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 32 | - </userDefinedRuntimeAttributes> | ||
| 33 | - </imageView> | ||
| 34 | - </subviews> | ||
| 35 | - </view> | ||
| 36 | - <constraints> | ||
| 37 | - <constraint firstItem="0XL-Dd-Pvp" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="D1I-yC-33u"/> | ||
| 38 | - <constraint firstAttribute="trailing" secondItem="0XL-Dd-Pvp" secondAttribute="trailing" id="Kja-ig-eYI"/> | ||
| 39 | - <constraint firstItem="4IO-cu-Vt4" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" constant="8" id="nMY-2Q-R2C"/> | ||
| 40 | - <constraint firstItem="4IO-cu-Vt4" firstAttribute="centerX" secondItem="gTV-IL-0wX" secondAttribute="centerX" id="roH-tk-apg"/> | ||
| 41 | - <constraint firstAttribute="bottom" secondItem="0XL-Dd-Pvp" secondAttribute="bottom" constant="8" id="sqg-rB-iyb"/> | ||
| 42 | - <constraint firstItem="0XL-Dd-Pvp" firstAttribute="top" secondItem="4IO-cu-Vt4" secondAttribute="bottom" constant="8" id="wop-6O-UtV"/> | ||
| 43 | - </constraints> | ||
| 44 | - <size key="customSize" width="98" height="108"/> | ||
| 45 | - <connections> | ||
| 46 | - <outlet property="imageView" destination="4IO-cu-Vt4" id="1bX-U3-Luf"/> | ||
| 47 | - <outlet property="titleLabel" destination="0XL-Dd-Pvp" id="GOo-UP-XEK"/> | ||
| 48 | - </connections> | ||
| 49 | - <point key="canvasLocation" x="49" y="81"/> | ||
| 50 | - </collectionViewCell> | ||
| 51 | - </objects> | ||
| 52 | - <resources> | ||
| 53 | - <image name="defphoto.png" width="256" height="256"/> | ||
| 54 | - </resources> | ||
| 55 | -</document> |
YouerLiveVideo/YouerLiveVideo/controller/HomeDetailViewController.swift
| @@ -1,308 +0,0 @@ | @@ -1,308 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// HomeDetailViewController.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 葛建军 on 17/1/14. | ||
| 6 | -// Copyright © 2017年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class HomeDetailViewController: UIViewController,UIScrollViewDelegate,UITableViewDataSource,UITableViewDelegate,PassWordEnterViewDelegate { | ||
| 12 | - | ||
| 13 | - @IBOutlet var menuScrollView: UIScrollView! | ||
| 14 | - | ||
| 15 | - @IBOutlet var scrollView: UIScrollView! | ||
| 16 | - | ||
| 17 | - var menuBgView:UIView! | ||
| 18 | - let menuArray:[String]=["推荐","直播","学校"]//****,"点播" | ||
| 19 | - var recIndex:Int=0 | ||
| 20 | - var liveIndex:Int=0 | ||
| 21 | - var menuBtnArray:[UIButton]=[] | ||
| 22 | - var refreshButton:UIButton? | ||
| 23 | - var tableViewArray:[UITableView]=[] | ||
| 24 | - var refreshTableView:UITableView! //需要刷新的TableView | ||
| 25 | - var allLives:[Int:[LiveDetail]]=Dictionary<Int, [LiveDetail]>()//前三个的所有数据 | ||
| 26 | - var allSchoolList:[OrganizeListSchool]=[]//最后一个学校列表 | ||
| 27 | - let menuButtonWidth=getScreenWidth()/3 //****4 | ||
| 28 | - var passWordView:PassWordView! | ||
| 29 | - override func viewDidLoad() { | ||
| 30 | - super.viewDidLoad() | ||
| 31 | - passWordView = Bundle.main.loadNibNamed("PassWordView", owner: nil, options: nil)?[0] as! PassWordView | ||
| 32 | - passWordView.delegate = self | ||
| 33 | - | ||
| 34 | - self.edgesForExtendedLayout=[] | ||
| 35 | - menuScrollView.contentSize=CGSize(width: getScreenWidth(), height: 49) | ||
| 36 | - for i in 0..<menuArray.count{ | ||
| 37 | - let menu=UIButton(type: UIButtonType.custom) | ||
| 38 | - menu.frame=CGRect(x: CGFloat(i)*menuButtonWidth, y: 0, width: menuButtonWidth, height: 41) | ||
| 39 | - menu.backgroundColor=UIColor.white | ||
| 40 | - menu.setTitle(menuArray[i], for: UIControlState.normal) | ||
| 41 | - menu.setTitleColor(UIColor.black, for: UIControlState.normal) | ||
| 42 | - menu.titleLabel?.font=UIFont.systemFont(ofSize: 17) | ||
| 43 | - menu.tag=i | ||
| 44 | - menu.addTarget(self, action: #selector(HomeDetailViewController.selectMenu(sender:)), for: UIControlEvents.touchUpInside) | ||
| 45 | - menuBtnArray.append(menu) | ||
| 46 | - menuScrollView.addSubview(menu) | ||
| 47 | - } | ||
| 48 | - menuBgView=UIView(frame: CGRect(x: 0, y: 41, width: menuButtonWidth, height: 8)) | ||
| 49 | - menuBgView.backgroundColor=Theme.topBarColor() | ||
| 50 | - menuScrollView.addSubview(menuBgView) | ||
| 51 | - | ||
| 52 | - scrollView.contentSize=CGSize(width: getScreenWidth()*CGFloat(menuArray.count), height: getScreenHeight()-64-44-49) | ||
| 53 | - addTableViewToScrollView(scrollView: scrollView, pageCount: menuArray.count, frame: CGRect.zero) | ||
| 54 | - refreshTableView(tag: 0) | ||
| 55 | - } | ||
| 56 | - // MARK: - 顶部标签按钮点击方法 | ||
| 57 | - func selectMenu(sender:UIButton){ | ||
| 58 | - scrollView.setContentOffset(CGPoint(x: UIScreen.main.bounds.size.width*CGFloat(sender.tag), y: 0), animated: true) | ||
| 59 | - let xx=getScreenWidth()*CGFloat(sender.tag-1)*(menuButtonWidth/getScreenWidth())-menuButtonWidth | ||
| 60 | - menuScrollView.scrollRectToVisible(CGRect(x: xx, y: 0, width: getScreenWidth(), height: menuScrollView.frame.size.height), animated: true) | ||
| 61 | - refreshTableView(tag: sender.tag) | ||
| 62 | - } | ||
| 63 | - // MARK: - 添加所有的TableView | ||
| 64 | - func addTableViewToScrollView(scrollView:UIScrollView,pageCount:Int,frame:CGRect){ | ||
| 65 | - for i in 0..<pageCount{ | ||
| 66 | - let tableView=UITableView(frame: CGRect(x: getScreenWidth()*CGFloat(i), y: 0, width: getScreenWidth(), height: getScreenHeight()-64-44-49)) | ||
| 67 | - if i==2{ | ||
| 68 | - tableView.register(UINib(nibName: "AttentionTableViewCell", bundle: nil), forCellReuseIdentifier: "AttentionTableViewCell") | ||
| 69 | - }else{ | ||
| 70 | - allLives.updateValue([], forKey: i) | ||
| 71 | - tableView.register(UINib(nibName: "HomeTableViewCell", bundle: nil), forCellReuseIdentifier: "cell") | ||
| 72 | - } | ||
| 73 | - tableView.delegate=self | ||
| 74 | - tableView.dataSource=self | ||
| 75 | - tableView.tag=i | ||
| 76 | - if i == 1 { | ||
| 77 | - let view=Bundle.main.loadNibNamed("LiveTitleView", owner: nil, options: nil)?[0] as! LiveTitleView | ||
| 78 | - view.frame.size.height=getScreenWidth()/2+40 | ||
| 79 | -// if i==1{ | ||
| 80 | -// view.type="Live" | ||
| 81 | -// }else{ | ||
| 82 | -// view.type="Video" | ||
| 83 | -// } | ||
| 84 | - view.superViewController=self | ||
| 85 | - tableView.tableHeaderView=view | ||
| 86 | - } | ||
| 87 | - tableView.separatorStyle=UITableViewCellSeparatorStyle.none | ||
| 88 | - if i != 2{ | ||
| 89 | - let header=MJRefreshNormalHeader(refreshingBlock: { | ||
| 90 | - //下拉刷新 | ||
| 91 | - if i==0{ | ||
| 92 | - self.recIndex=0 | ||
| 93 | - }else if i==1{ | ||
| 94 | - self.liveIndex=0 | ||
| 95 | - //直播时刷新顶部的分类 | ||
| 96 | - (tableView.tableHeaderView as! LiveTitleView).getLiveTypeList() | ||
| 97 | - } | ||
| 98 | - self.refreshLivesAction(tag: i, completionHandler: { (success) in | ||
| 99 | - if success{ | ||
| 100 | - tableView.reloadData() | ||
| 101 | - } | ||
| 102 | - tableView.mj_header.endRefreshing() | ||
| 103 | - }) | ||
| 104 | - }) | ||
| 105 | - header?.lastUpdatedTimeLabel.isHidden=true | ||
| 106 | - tableView.mj_header=header | ||
| 107 | - tableView.mj_footer=MJRefreshBackNormalFooter(refreshingBlock: { | ||
| 108 | - //上拉加载更多 | ||
| 109 | - self.refreshLivesAction(tag: i, completionHandler: { (success) in | ||
| 110 | - if success{ | ||
| 111 | - tableView.reloadData() | ||
| 112 | - } | ||
| 113 | - tableView.mj_footer.endRefreshing() | ||
| 114 | - }) | ||
| 115 | - }) | ||
| 116 | - } | ||
| 117 | - tableViewArray.append(tableView) | ||
| 118 | - scrollView.addSubview(tableView) | ||
| 119 | - } | ||
| 120 | - } | ||
| 121 | - // MARK: - 刷新数据接口 | ||
| 122 | - func refreshLivesAction(tag:Int,completionHandler:@escaping (Bool) -> ()){ | ||
| 123 | - var LiveName:String="" | ||
| 124 | - var index:Int=0 | ||
| 125 | - var size:Int=10 | ||
| 126 | - switch tag { | ||
| 127 | - case 0: | ||
| 128 | - //点击了推荐 | ||
| 129 | - LiveName="Rec" | ||
| 130 | - index=recIndex | ||
| 131 | - break | ||
| 132 | - case 1: | ||
| 133 | - //点击了直播热门 | ||
| 134 | - LiveName="Hot" | ||
| 135 | - index=liveIndex | ||
| 136 | - break | ||
| 137 | - case 2: | ||
| 138 | - //点击了学校 | ||
| 139 | - LiveName="Org" | ||
| 140 | - size=Int.max | ||
| 141 | - break | ||
| 142 | - default: break | ||
| 143 | - //点击了学校 | ||
| 144 | - } | ||
| 145 | - let parameters:Dictionary<String,AnyObject>=["PageIndex":index as AnyObject,"PageSize":size as AnyObject,"WhatLive":LiveName as AnyObject] | ||
| 146 | - AppDelegate.instance().httpServer.getLive(parameters: parameters, completionHandler: { (str, error) in | ||
| 147 | - var success:Bool=true | ||
| 148 | - if error==nil { | ||
| 149 | - if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 150 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 151 | - success=true | ||
| 152 | - let lives=LiveDetail.getAllLives(j: json) | ||
| 153 | - let oldLives=self.allLives[tag] | ||
| 154 | - if lives.count>0{ | ||
| 155 | - if tag==0{ | ||
| 156 | - self.recIndex=self.recIndex+1 | ||
| 157 | - }else if tag==1{ | ||
| 158 | - self.liveIndex=self.liveIndex+1 | ||
| 159 | - } | ||
| 160 | - } | ||
| 161 | - if index != 0{ | ||
| 162 | - self.allLives.updateValue(oldLives!+lives, forKey: tag) | ||
| 163 | - }else{ | ||
| 164 | - self.allLives.updateValue(lives, forKey: tag) | ||
| 165 | - } | ||
| 166 | - }, failHandler: { (error) in | ||
| 167 | - success=false | ||
| 168 | - AppDelegate.instance().window?.makeToast("获取列表失败:\(error.localizedDescription)") | ||
| 169 | - }) | ||
| 170 | - }else{ | ||
| 171 | - success=false | ||
| 172 | - AppDelegate.instance().window?.makeToast("获取列表失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
| 173 | - } | ||
| 174 | - }else{ | ||
| 175 | - success=false | ||
| 176 | - AppDelegate.instance().window?.makeToast("获取列表失败:\(error!.description)") | ||
| 177 | - } | ||
| 178 | - completionHandler(success) | ||
| 179 | - }) | ||
| 180 | - } | ||
| 181 | - func refreshSchoolList(tag:Int){ | ||
| 182 | - AppDelegate.instance().httpServer.postLiveOrganizeList(type:"All") { (str, error) in | ||
| 183 | - if error==nil { | ||
| 184 | - if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 185 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 186 | - self.allSchoolList=OrganizeListSchool.getAllSchool(j: json) | ||
| 187 | - self.tableViewArray[tag].reloadData() | ||
| 188 | - }, failHandler: { (error) in | ||
| 189 | - NSLog("获取学校列表失败:\(error.localizedDescription)") | ||
| 190 | - }) | ||
| 191 | - }else{ | ||
| 192 | - NSLog("获取学校列表失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
| 193 | - } | ||
| 194 | - }else{ | ||
| 195 | - NSLog("获取学校列表失败:\(error!.description)") | ||
| 196 | - } | ||
| 197 | - } | ||
| 198 | - } | ||
| 199 | - // MARK: - 刷新某个指定的TableView | ||
| 200 | - func refreshTableView(tag:Int){ | ||
| 201 | - //第一次在这里加载数据 | ||
| 202 | - if tag==2{ | ||
| 203 | - if allSchoolList.count==0{ | ||
| 204 | - refreshSchoolList(tag: tag) | ||
| 205 | - } | ||
| 206 | - }else{ | ||
| 207 | - if allLives[tag]?.count==0{ | ||
| 208 | - refreshLivesAction(tag: tag,completionHandler: { (success) in | ||
| 209 | - if success { | ||
| 210 | - self.tableViewArray[tag].reloadData() | ||
| 211 | - } | ||
| 212 | - }) | ||
| 213 | - } | ||
| 214 | - } | ||
| 215 | - | ||
| 216 | - if refreshButton != nil{ | ||
| 217 | - refreshButton!.setTitleColor(UIColor.black, for: UIControlState.normal) | ||
| 218 | - refreshButton=menuBtnArray[tag] | ||
| 219 | - refreshButton!.setTitleColor(Theme.topBarColor(), for: UIControlState.normal) | ||
| 220 | - }else{ | ||
| 221 | - refreshButton=menuBtnArray[0] | ||
| 222 | - refreshButton!.setTitleColor(Theme.topBarColor(), for: UIControlState.normal) | ||
| 223 | - } | ||
| 224 | - refreshTableView=tableViewArray[tag] | ||
| 225 | - var frame=refreshTableView.frame | ||
| 226 | - frame.origin.x=UIScreen.main.bounds.size.width*CGFloat(tag) | ||
| 227 | - refreshTableView.frame=frame | ||
| 228 | -// refreshTableView.reloadData() | ||
| 229 | - } | ||
| 230 | - func changeView(x:CGFloat){ | ||
| 231 | - let xx=x*(menuButtonWidth/UIScreen.main.bounds.size.width) | ||
| 232 | - menuBgView.frame=CGRect(x: xx, y: menuBgView.frame.origin.y, width: menuBgView.frame.size.width, height: 5) | ||
| 233 | - } | ||
| 234 | - // MARK: - UIScrollViewDelegate | ||
| 235 | - func scrollViewDidScroll(_ scrollView: UIScrollView) { | ||
| 236 | - //只要滚动了就会触发 | ||
| 237 | - if !scrollView.isKind(of: UITableView.classForCoder()) { | ||
| 238 | - changeView(x: scrollView.contentOffset.x) | ||
| 239 | - } | ||
| 240 | - } | ||
| 241 | - func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) { | ||
| 242 | - //减速停止了时执行,手触摸时执行执行 | ||
| 243 | - if !scrollView.isKind(of: UITableView.classForCoder()) { | ||
| 244 | - let xx=scrollView.contentOffset.x*(menuButtonWidth/UIScreen.main.bounds.size.width)-menuButtonWidth | ||
| 245 | - menuScrollView.scrollRectToVisible(CGRect(x: xx, y: 0, width: UIScreen.main.bounds.size.width, height: menuScrollView.frame.size.height), animated: true) | ||
| 246 | - let i=Int(scrollView.contentOffset.x/UIScreen.main.bounds.size.width) | ||
| 247 | - self.refreshTableView(tag: i) | ||
| 248 | - } | ||
| 249 | - } | ||
| 250 | - var selectLiv:LiveDetail! | ||
| 251 | - // MARK: - UITableViewDataSource,UITableViewDelegate | ||
| 252 | - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | ||
| 253 | - if tableView.tag==2{ | ||
| 254 | - let item=allSchoolList[indexPath.row] | ||
| 255 | - let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LiveTypeListViewController") as! LiveTypeListViewController | ||
| 256 | - vc.isType=false | ||
| 257 | - vc.F_OrganizeId=item.f_Id | ||
| 258 | - vc.title=item.f_FullName | ||
| 259 | - self.navigationController!.pushViewController(vc, animated: true) | ||
| 260 | - }else{ | ||
| 261 | - selectLiv=allLives[tableView.tag]![indexPath.row] | ||
| 262 | - let dic = JSON.fromString(jsonString: selectLiv.f_Description)! | ||
| 263 | - if dic["Public"].boolValue{ | ||
| 264 | - persentToMoivePlayer(from: self, liv: selectLiv) | ||
| 265 | - }else{ | ||
| 266 | - passWordView.passWord = dic["roompasswd"].stringValue | ||
| 267 | - passWordView.zsdView.clearUpPassword() | ||
| 268 | - passWordView.zsdView.passwordTextField.becomeFirstResponder() | ||
| 269 | - self.view.addSubview(passWordView) | ||
| 270 | - } | ||
| 271 | - } | ||
| 272 | - | ||
| 273 | - } | ||
| 274 | - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | ||
| 275 | - if tableView.tag==2{ | ||
| 276 | - return allSchoolList.count | ||
| 277 | - } | ||
| 278 | - return allLives[tableView.tag]!.count | ||
| 279 | - } | ||
| 280 | - func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { | ||
| 281 | - if tableView.tag==2{ | ||
| 282 | - return 80 | ||
| 283 | - } | ||
| 284 | - return 331 | ||
| 285 | - //return 70+getScreenWidth()/2 | ||
| 286 | - } | ||
| 287 | - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | ||
| 288 | - if tableView.tag==2{ | ||
| 289 | - let cell=tableView.dequeueReusableCell(withIdentifier: "AttentionTableViewCell") as! AttentionTableViewCell | ||
| 290 | - cell.setupWith(item: allSchoolList[indexPath.row],isMy: false) | ||
| 291 | - cell.superVC=self | ||
| 292 | - return cell | ||
| 293 | - } | ||
| 294 | - let cell=tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! HomeTableViewCell | ||
| 295 | - cell.setUpWith(item: allLives[tableView.tag]![indexPath.row]) | ||
| 296 | - return cell | ||
| 297 | - } | ||
| 298 | - | ||
| 299 | - func passwordView(_ password: String!) { | ||
| 300 | - passWordView.zsdView.passwordTextField.resignFirstResponder() | ||
| 301 | - persentToMoivePlayer(from: self, liv: selectLiv) | ||
| 302 | - passWordView.removeFromSuperview() | ||
| 303 | - } | ||
| 304 | - | ||
| 305 | - override func didReceiveMemoryWarning() { | ||
| 306 | - super.didReceiveMemoryWarning() | ||
| 307 | - } | ||
| 308 | -} |
YouerLiveVideo/YouerLiveVideo/controller/HomeViewController.swift
| @@ -1,35 +0,0 @@ | @@ -1,35 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// HomeViewController.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 葛建军 on 17/1/14. | ||
| 6 | -// Copyright © 2017年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class HomeViewController: UIViewController { | ||
| 12 | - | ||
| 13 | - override func viewDidLoad() { | ||
| 14 | - super.viewDidLoad() | ||
| 15 | - | ||
| 16 | - // Do any additional setup after loading the view. | ||
| 17 | - } | ||
| 18 | - | ||
| 19 | - override func didReceiveMemoryWarning() { | ||
| 20 | - super.didReceiveMemoryWarning() | ||
| 21 | - // Dispose of any resources that can be recreated. | ||
| 22 | - } | ||
| 23 | - | ||
| 24 | - | ||
| 25 | - /* | ||
| 26 | - // MARK: - Navigation | ||
| 27 | - | ||
| 28 | - // In a storyboard-based application, you will often want to do a little preparation before navigation | ||
| 29 | - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { | ||
| 30 | - // Get the new view controller using segue.destinationViewController. | ||
| 31 | - // Pass the selected object to the new view controller. | ||
| 32 | - } | ||
| 33 | - */ | ||
| 34 | - | ||
| 35 | -} |
YouerLiveVideo/YouerLiveVideo/controller/HotMoreViewController.swift
| @@ -1,114 +0,0 @@ | @@ -1,114 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// HotMoreViewController.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 葛建军 on 17/1/16. | ||
| 6 | -// Copyright © 2017年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class HotMoreViewController: UIViewController,UITableViewDelegate,UITableViewDataSource,PassWordEnterViewDelegate { | ||
| 12 | - var hotLives:[LiveDetail]=[] | ||
| 13 | - var index:Int=0 | ||
| 14 | - @IBOutlet var tableView: UITableView! | ||
| 15 | - var passWordView:PassWordView! | ||
| 16 | - override func viewDidLoad() { | ||
| 17 | - super.viewDidLoad() | ||
| 18 | - passWordView = Bundle.main.loadNibNamed("PassWordView", owner: nil, options: nil)?[0] as! PassWordView | ||
| 19 | - passWordView.delegate = self | ||
| 20 | - | ||
| 21 | - tableView.register(UINib(nibName: "HomeTableViewCell", bundle: nil), forCellReuseIdentifier: "cell") | ||
| 22 | - let header=MJRefreshNormalHeader(refreshingBlock: { | ||
| 23 | - self.index=0 | ||
| 24 | - self.getHotLiveList { (success) in | ||
| 25 | - self.tableView.mj_header.endRefreshing() | ||
| 26 | - } | ||
| 27 | - }) | ||
| 28 | - header?.lastUpdatedTimeLabel.isHidden=true | ||
| 29 | - tableView.mj_header=header | ||
| 30 | - tableView.mj_footer=MJRefreshBackNormalFooter(refreshingBlock: { | ||
| 31 | - self.getHotLiveList { (success) in | ||
| 32 | - self.tableView.mj_footer.endRefreshing() | ||
| 33 | - } | ||
| 34 | - }) | ||
| 35 | - getHotLiveList { (success) in | ||
| 36 | - } | ||
| 37 | - } | ||
| 38 | - func getHotLiveList(completionHandler:@escaping (Bool) -> ()){ | ||
| 39 | - SVProgressHUD.show(withStatus: "加载中...") | ||
| 40 | - SVProgressHUD.setDefaultMaskType(.black) | ||
| 41 | - let parameters:Dictionary<String,AnyObject>=["PageIndex":index as AnyObject,"PageSize":10 as AnyObject,"WhatLive":"Hot" as AnyObject] | ||
| 42 | - AppDelegate.instance().httpServer.getLive(parameters: parameters, completionHandler: { (str, error) in | ||
| 43 | - var success:Bool=true | ||
| 44 | - SVProgressHUD.dismiss() | ||
| 45 | - if error==nil { | ||
| 46 | - if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 47 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 48 | - success=true | ||
| 49 | - let hotLive=LiveDetail.getAllLives(j: json) | ||
| 50 | - if hotLive.count>0{ | ||
| 51 | - self.index+=1 | ||
| 52 | - if self.index==1 { | ||
| 53 | - self.hotLives=hotLive | ||
| 54 | - }else{ | ||
| 55 | - self.hotLives+=hotLive | ||
| 56 | - } | ||
| 57 | - } | ||
| 58 | - self.tableView.reloadData() | ||
| 59 | - }, failHandler: { (error) in | ||
| 60 | - success=false | ||
| 61 | - AppDelegate.instance().window?.makeToast("获取列表失败:\(error.localizedDescription)") | ||
| 62 | - }) | ||
| 63 | - }else{ | ||
| 64 | - success=false | ||
| 65 | - AppDelegate.instance().window?.makeToast("获取列表失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
| 66 | - } | ||
| 67 | - }else{ | ||
| 68 | - success=false | ||
| 69 | - AppDelegate.instance().window?.makeToast("获取列表失败:\(error!.description)") | ||
| 70 | - } | ||
| 71 | - completionHandler(success) | ||
| 72 | - }) | ||
| 73 | - } | ||
| 74 | - var selectLiv:LiveDetail! | ||
| 75 | - | ||
| 76 | - // MARK: - UITableViewDataSource,UITableViewDelegate | ||
| 77 | - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | ||
| 78 | - selectLiv=hotLives[indexPath.row] | ||
| 79 | - let dic = JSON.fromString(jsonString: selectLiv.f_Description)! | ||
| 80 | - if dic["Public"].boolValue{ | ||
| 81 | - persentToMoivePlayer(from: self, liv: selectLiv) | ||
| 82 | - }else{ | ||
| 83 | - | ||
| 84 | - passWordView.passWord = dic["roompasswd"].stringValue | ||
| 85 | - passWordView.zsdView.clearUpPassword() | ||
| 86 | - passWordView.zsdView.passwordTextField.becomeFirstResponder() | ||
| 87 | - self.view.addSubview(passWordView) | ||
| 88 | - } | ||
| 89 | - | ||
| 90 | - } | ||
| 91 | - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | ||
| 92 | - return hotLives.count | ||
| 93 | - } | ||
| 94 | - func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { | ||
| 95 | - // return 70+getScreenWidth()/2 | ||
| 96 | - return 331 | ||
| 97 | - } | ||
| 98 | - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | ||
| 99 | - let cell=tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! HomeTableViewCell | ||
| 100 | - cell.setUpWith(item: hotLives[indexPath.row]) | ||
| 101 | - return cell | ||
| 102 | - } | ||
| 103 | - func passwordView(_ password: String!) { | ||
| 104 | - passWordView.zsdView.passwordTextField.resignFirstResponder() | ||
| 105 | - persentToMoivePlayer(from: self, liv: selectLiv) | ||
| 106 | - passWordView.removeFromSuperview() | ||
| 107 | - } | ||
| 108 | - | ||
| 109 | - override func didReceiveMemoryWarning() { | ||
| 110 | - super.didReceiveMemoryWarning() | ||
| 111 | - } | ||
| 112 | - | ||
| 113 | - | ||
| 114 | -} |
YouerLiveVideo/YouerLiveVideo/controller/Live/Live.storyboard
| @@ -1,2074 +0,0 @@ | @@ -1,2074 +0,0 @@ | ||
| 1 | -<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | -<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="16A323" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> | ||
| 3 | - <device id="retina4_7" orientation="portrait"> | ||
| 4 | - <adaptation id="fullscreen"/> | ||
| 5 | - </device> | ||
| 6 | - <dependencies> | ||
| 7 | - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/> | ||
| 8 | - <capability name="Aspect ratio constraints" minToolsVersion="5.1"/> | ||
| 9 | - <capability name="Constraints to layout margins" minToolsVersion="6.0"/> | ||
| 10 | - <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | ||
| 11 | - </dependencies> | ||
| 12 | - <scenes> | ||
| 13 | - <!--Live Video Setting Share View Controller--> | ||
| 14 | - <scene sceneID="57o-YB-gBv"> | ||
| 15 | - <objects> | ||
| 16 | - <viewController storyboardIdentifier="LiveVideoSettingShareViewControllerVC" id="ip0-b5-5EB" customClass="LiveVideoSettingShareViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 17 | - <layoutGuides> | ||
| 18 | - <viewControllerLayoutGuide type="top" id="YzZ-Ac-TmT"/> | ||
| 19 | - <viewControllerLayoutGuide type="bottom" id="GQ2-99-1ZE"/> | ||
| 20 | - </layoutGuides> | ||
| 21 | - <view key="view" contentMode="scaleToFill" id="ovQ-y5-L2e"> | ||
| 22 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 23 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 24 | - <subviews> | ||
| 25 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="22I-3U-xYK"> | ||
| 26 | - <rect key="frame" x="0.0" y="20" width="375" height="647"/> | ||
| 27 | - <color key="backgroundColor" red="0.65098039220000004" green="0.65098039220000004" blue="0.6588235294" alpha="1" colorSpace="calibratedRGB"/> | ||
| 28 | - </imageView> | ||
| 29 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="2i8-Kf-r5H"> | ||
| 30 | - <rect key="frame" x="240" y="28" width="119" height="30"/> | ||
| 31 | - <subviews> | ||
| 32 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="botoom_image" translatesAutoresizingMaskIntoConstraints="NO" id="YES-sk-Ulh"> | ||
| 33 | - <rect key="frame" x="95" y="5" width="20" height="20"/> | ||
| 34 | - <constraints> | ||
| 35 | - <constraint firstAttribute="width" secondItem="YES-sk-Ulh" secondAttribute="height" multiplier="1:1" id="aQQ-UD-mbM"/> | ||
| 36 | - <constraint firstAttribute="height" constant="20" id="w8g-ec-Gao"/> | ||
| 37 | - </constraints> | ||
| 38 | - </imageView> | ||
| 39 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="流畅" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Jah-zM-NyA"> | ||
| 40 | - <rect key="frame" x="62.5" y="8" width="25" height="14.5"/> | ||
| 41 | - <fontDescription key="fontDescription" type="system" pointSize="12"/> | ||
| 42 | - <nil key="textColor"/> | ||
| 43 | - <nil key="highlightedColor"/> | ||
| 44 | - </label> | ||
| 45 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="749" text="清晰度:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vk7-Kp-HGt"> | ||
| 46 | - <rect key="frame" x="4" y="6" width="50.5" height="18"/> | ||
| 47 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 48 | - <nil key="textColor"/> | ||
| 49 | - <nil key="highlightedColor"/> | ||
| 50 | - </label> | ||
| 51 | - </subviews> | ||
| 52 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 53 | - <gestureRecognizers/> | ||
| 54 | - <constraints> | ||
| 55 | - <constraint firstItem="YES-sk-Ulh" firstAttribute="centerY" secondItem="2i8-Kf-r5H" secondAttribute="centerY" id="1a9-gt-bTC"/> | ||
| 56 | - <constraint firstItem="vk7-Kp-HGt" firstAttribute="centerY" secondItem="2i8-Kf-r5H" secondAttribute="centerY" id="4hQ-gJ-274"/> | ||
| 57 | - <constraint firstItem="Jah-zM-NyA" firstAttribute="centerY" secondItem="2i8-Kf-r5H" secondAttribute="centerY" id="ONJ-rE-0jx"/> | ||
| 58 | - <constraint firstItem="Jah-zM-NyA" firstAttribute="leading" secondItem="vk7-Kp-HGt" secondAttribute="trailing" constant="8" id="Qak-zt-6i4"/> | ||
| 59 | - <constraint firstAttribute="trailing" secondItem="YES-sk-Ulh" secondAttribute="trailing" constant="4" id="R0U-n7-d3b"/> | ||
| 60 | - <constraint firstItem="YES-sk-Ulh" firstAttribute="leading" secondItem="Jah-zM-NyA" secondAttribute="trailing" constant="8" id="S6h-X5-MSE"/> | ||
| 61 | - <constraint firstAttribute="height" constant="30" id="fip-q3-x9L"/> | ||
| 62 | - <constraint firstAttribute="width" constant="119.5" id="wLl-L8-D8c"/> | ||
| 63 | - <constraint firstItem="vk7-Kp-HGt" firstAttribute="leading" secondItem="2i8-Kf-r5H" secondAttribute="leading" constant="4" id="xuV-5T-rRa"/> | ||
| 64 | - </constraints> | ||
| 65 | - <userDefinedRuntimeAttributes> | ||
| 66 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 67 | - <integer key="value" value="15"/> | ||
| 68 | - </userDefinedRuntimeAttribute> | ||
| 69 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 70 | - </userDefinedRuntimeAttributes> | ||
| 71 | - <connections> | ||
| 72 | - <outletCollection property="gestureRecognizers" destination="1Bt-vc-c0u" appends="YES" id="jFy-4J-2Ls"/> | ||
| 73 | - </connections> | ||
| 74 | - </view> | ||
| 75 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iNB-3t-Wom"> | ||
| 76 | - <rect key="frame" x="0.0" y="472" width="375" height="200"/> | ||
| 77 | - <subviews> | ||
| 78 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WmD-yl-11a"> | ||
| 79 | - <rect key="frame" x="138" y="145" width="100" height="40"/> | ||
| 80 | - <color key="backgroundColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 81 | - <constraints> | ||
| 82 | - <constraint firstAttribute="width" constant="100" id="BGA-bM-eZ2"/> | ||
| 83 | - <constraint firstAttribute="height" constant="40" id="LM3-S3-awv"/> | ||
| 84 | - </constraints> | ||
| 85 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 86 | - <state key="normal" title="开始直播"> | ||
| 87 | - <color key="titleColor" red="0.99607843139999996" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> | ||
| 88 | - </state> | ||
| 89 | - <userDefinedRuntimeAttributes> | ||
| 90 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 91 | - <integer key="value" value="5"/> | ||
| 92 | - </userDefinedRuntimeAttribute> | ||
| 93 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 94 | - </userDefinedRuntimeAttributes> | ||
| 95 | - <connections> | ||
| 96 | - <action selector="startLive:" destination="ip0-b5-5EB" eventType="touchUpInside" id="jsu-XI-PxD"/> | ||
| 97 | - </connections> | ||
| 98 | - </button> | ||
| 99 | - <view tag="100" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="QEM-R1-B72"> | ||
| 100 | - <rect key="frame" x="0.0" y="40" width="75" height="77"/> | ||
| 101 | - <subviews> | ||
| 102 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="we_timeline" translatesAutoresizingMaskIntoConstraints="NO" id="2ju-TP-cax"> | ||
| 103 | - <rect key="frame" x="20" y="8" width="35" height="35"/> | ||
| 104 | - <constraints> | ||
| 105 | - <constraint firstAttribute="height" constant="35" id="aJd-Uh-GI6"/> | ||
| 106 | - </constraints> | ||
| 107 | - <userDefinedRuntimeAttributes> | ||
| 108 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 109 | - <integer key="value" value="15"/> | ||
| 110 | - </userDefinedRuntimeAttribute> | ||
| 111 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 112 | - </userDefinedRuntimeAttributes> | ||
| 113 | - </imageView> | ||
| 114 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="朋友圈" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="D4i-h6-kpc"> | ||
| 115 | - <rect key="frame" x="15" y="51" width="46" height="18"/> | ||
| 116 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 117 | - <nil key="textColor"/> | ||
| 118 | - <nil key="highlightedColor"/> | ||
| 119 | - </label> | ||
| 120 | - </subviews> | ||
| 121 | - <gestureRecognizers/> | ||
| 122 | - <constraints> | ||
| 123 | - <constraint firstItem="2ju-TP-cax" firstAttribute="centerX" secondItem="QEM-R1-B72" secondAttribute="centerX" id="8oK-r1-RRh"/> | ||
| 124 | - <constraint firstAttribute="bottom" secondItem="D4i-h6-kpc" secondAttribute="bottom" constant="8" id="8q2-OU-hNj"/> | ||
| 125 | - <constraint firstItem="2ju-TP-cax" firstAttribute="width" secondItem="2ju-TP-cax" secondAttribute="height" multiplier="1:1" id="9qk-Ox-Ivb"/> | ||
| 126 | - <constraint firstItem="D4i-h6-kpc" firstAttribute="centerX" secondItem="QEM-R1-B72" secondAttribute="centerX" id="DIQ-xt-1Mu"/> | ||
| 127 | - <constraint firstItem="2ju-TP-cax" firstAttribute="top" secondItem="QEM-R1-B72" secondAttribute="top" constant="8" id="Mcj-R7-Dl7"/> | ||
| 128 | - <constraint firstAttribute="height" constant="77" id="jzH-go-9zI"/> | ||
| 129 | - </constraints> | ||
| 130 | - <connections> | ||
| 131 | - <outletCollection property="gestureRecognizers" destination="XUl-Re-1Mg" appends="YES" id="8vV-wN-6md"/> | ||
| 132 | - </connections> | ||
| 133 | - </view> | ||
| 134 | - <view tag="103" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1H6-5k-cyF"> | ||
| 135 | - <rect key="frame" x="225" y="40" width="75" height="77"/> | ||
| 136 | - <subviews> | ||
| 137 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sina" translatesAutoresizingMaskIntoConstraints="NO" id="kj1-kz-BqA"> | ||
| 138 | - <rect key="frame" x="20" y="8" width="35" height="35"/> | ||
| 139 | - <constraints> | ||
| 140 | - <constraint firstAttribute="height" constant="35" id="x1F-Ro-evI"/> | ||
| 141 | - </constraints> | ||
| 142 | - <userDefinedRuntimeAttributes> | ||
| 143 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 144 | - <integer key="value" value="15"/> | ||
| 145 | - </userDefinedRuntimeAttribute> | ||
| 146 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 147 | - </userDefinedRuntimeAttributes> | ||
| 148 | - </imageView> | ||
| 149 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="微博" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pai-sS-dh9"> | ||
| 150 | - <rect key="frame" x="22" y="51" width="31" height="18"/> | ||
| 151 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 152 | - <nil key="textColor"/> | ||
| 153 | - <nil key="highlightedColor"/> | ||
| 154 | - </label> | ||
| 155 | - </subviews> | ||
| 156 | - <gestureRecognizers/> | ||
| 157 | - <constraints> | ||
| 158 | - <constraint firstItem="kj1-kz-BqA" firstAttribute="centerX" secondItem="1H6-5k-cyF" secondAttribute="centerX" id="3H7-Fh-hXU"/> | ||
| 159 | - <constraint firstItem="pai-sS-dh9" firstAttribute="centerX" secondItem="1H6-5k-cyF" secondAttribute="centerX" id="76f-uN-gcQ"/> | ||
| 160 | - <constraint firstItem="kj1-kz-BqA" firstAttribute="width" secondItem="kj1-kz-BqA" secondAttribute="height" multiplier="1:1" id="BqP-6J-daF"/> | ||
| 161 | - <constraint firstItem="kj1-kz-BqA" firstAttribute="top" secondItem="1H6-5k-cyF" secondAttribute="top" constant="8" id="PmY-RZ-2ph"/> | ||
| 162 | - <constraint firstAttribute="bottom" secondItem="pai-sS-dh9" secondAttribute="bottom" constant="8" id="gRi-Hy-DAq"/> | ||
| 163 | - <constraint firstAttribute="height" constant="77" id="gSF-bm-JqK"/> | ||
| 164 | - </constraints> | ||
| 165 | - <connections> | ||
| 166 | - <outletCollection property="gestureRecognizers" destination="hvP-5C-twJ" appends="YES" id="weY-fW-4Jf"/> | ||
| 167 | - </connections> | ||
| 168 | - </view> | ||
| 169 | - <view tag="101" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6dV-3y-bTk"> | ||
| 170 | - <rect key="frame" x="75" y="40" width="75" height="77"/> | ||
| 171 | - <subviews> | ||
| 172 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="we_session" translatesAutoresizingMaskIntoConstraints="NO" id="rXb-rE-jh9"> | ||
| 173 | - <rect key="frame" x="20" y="8" width="35" height="35"/> | ||
| 174 | - <constraints> | ||
| 175 | - <constraint firstAttribute="height" constant="35" id="5nw-MX-Hb4"/> | ||
| 176 | - </constraints> | ||
| 177 | - <userDefinedRuntimeAttributes> | ||
| 178 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 179 | - <integer key="value" value="15"/> | ||
| 180 | - </userDefinedRuntimeAttribute> | ||
| 181 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 182 | - </userDefinedRuntimeAttributes> | ||
| 183 | - </imageView> | ||
| 184 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="微信" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="h0K-4N-xqZ"> | ||
| 185 | - <rect key="frame" x="22" y="51" width="31" height="18"/> | ||
| 186 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 187 | - <nil key="textColor"/> | ||
| 188 | - <nil key="highlightedColor"/> | ||
| 189 | - </label> | ||
| 190 | - </subviews> | ||
| 191 | - <gestureRecognizers/> | ||
| 192 | - <constraints> | ||
| 193 | - <constraint firstAttribute="bottom" secondItem="h0K-4N-xqZ" secondAttribute="bottom" constant="8" id="0S8-dX-ukf"/> | ||
| 194 | - <constraint firstItem="rXb-rE-jh9" firstAttribute="top" secondItem="6dV-3y-bTk" secondAttribute="top" constant="8" id="O3o-Zo-u4V"/> | ||
| 195 | - <constraint firstItem="rXb-rE-jh9" firstAttribute="centerX" secondItem="6dV-3y-bTk" secondAttribute="centerX" id="RLW-3N-chz"/> | ||
| 196 | - <constraint firstItem="h0K-4N-xqZ" firstAttribute="centerX" secondItem="6dV-3y-bTk" secondAttribute="centerX" id="YvR-bW-Olf"/> | ||
| 197 | - <constraint firstAttribute="height" constant="77" id="lUD-JF-vNz"/> | ||
| 198 | - <constraint firstItem="rXb-rE-jh9" firstAttribute="width" secondItem="rXb-rE-jh9" secondAttribute="height" multiplier="1:1" id="nyy-XS-Bjh"/> | ||
| 199 | - </constraints> | ||
| 200 | - <connections> | ||
| 201 | - <outletCollection property="gestureRecognizers" destination="Mg7-3z-rgg" appends="YES" id="Ep6-Xg-XWy"/> | ||
| 202 | - </connections> | ||
| 203 | - </view> | ||
| 204 | - <view tag="104" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8yF-ZZ-mXJ"> | ||
| 205 | - <rect key="frame" x="300" y="40" width="75" height="77"/> | ||
| 206 | - <subviews> | ||
| 207 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="qq" translatesAutoresizingMaskIntoConstraints="NO" id="SjE-Wf-EZp"> | ||
| 208 | - <rect key="frame" x="20" y="8" width="35" height="35"/> | ||
| 209 | - <constraints> | ||
| 210 | - <constraint firstAttribute="height" constant="35" id="gKp-6P-Eio"/> | ||
| 211 | - </constraints> | ||
| 212 | - <userDefinedRuntimeAttributes> | ||
| 213 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 214 | - <integer key="value" value="15"/> | ||
| 215 | - </userDefinedRuntimeAttribute> | ||
| 216 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 217 | - </userDefinedRuntimeAttributes> | ||
| 218 | - </imageView> | ||
| 219 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="QQ" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lJw-jZ-kX1"> | ||
| 220 | - <rect key="frame" x="26" y="51" width="23" height="18"/> | ||
| 221 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 222 | - <nil key="textColor"/> | ||
| 223 | - <nil key="highlightedColor"/> | ||
| 224 | - </label> | ||
| 225 | - </subviews> | ||
| 226 | - <gestureRecognizers/> | ||
| 227 | - <constraints> | ||
| 228 | - <constraint firstAttribute="height" constant="77" id="CTh-FP-jJj"/> | ||
| 229 | - <constraint firstAttribute="bottom" secondItem="lJw-jZ-kX1" secondAttribute="bottom" constant="8" id="Jrl-21-n2N"/> | ||
| 230 | - <constraint firstItem="SjE-Wf-EZp" firstAttribute="centerX" secondItem="8yF-ZZ-mXJ" secondAttribute="centerX" id="nJB-zh-VFZ"/> | ||
| 231 | - <constraint firstItem="SjE-Wf-EZp" firstAttribute="width" secondItem="SjE-Wf-EZp" secondAttribute="height" multiplier="1:1" id="oOM-zP-oqO"/> | ||
| 232 | - <constraint firstItem="lJw-jZ-kX1" firstAttribute="centerX" secondItem="8yF-ZZ-mXJ" secondAttribute="centerX" id="qRt-n9-WnU"/> | ||
| 233 | - <constraint firstItem="SjE-Wf-EZp" firstAttribute="top" secondItem="8yF-ZZ-mXJ" secondAttribute="top" constant="8" id="u7X-QM-swR"/> | ||
| 234 | - </constraints> | ||
| 235 | - <connections> | ||
| 236 | - <outletCollection property="gestureRecognizers" destination="BzP-RN-n5z" appends="YES" id="cqi-mz-3EX"/> | ||
| 237 | - </connections> | ||
| 238 | - </view> | ||
| 239 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="boy-tb-QZb"> | ||
| 240 | - <rect key="frame" x="0.0" y="39" width="375" height="1"/> | ||
| 241 | - <color key="backgroundColor" red="0.87843137250000003" green="0.87843137250000003" blue="0.87843137250000003" alpha="1" colorSpace="calibratedRGB"/> | ||
| 242 | - <constraints> | ||
| 243 | - <constraint firstAttribute="height" constant="1" id="sAq-nX-zQe"/> | ||
| 244 | - </constraints> | ||
| 245 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 246 | - <nil key="textColor"/> | ||
| 247 | - <nil key="highlightedColor"/> | ||
| 248 | - </label> | ||
| 249 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="邀请观看" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="J9A-XJ-110"> | ||
| 250 | - <rect key="frame" x="157" y="8" width="62" height="18"/> | ||
| 251 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 252 | - <nil key="textColor"/> | ||
| 253 | - <nil key="highlightedColor"/> | ||
| 254 | - </label> | ||
| 255 | - <view tag="102" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ps1-Dc-OM3"> | ||
| 256 | - <rect key="frame" x="150" y="40" width="75" height="77"/> | ||
| 257 | - <subviews> | ||
| 258 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="qzone" translatesAutoresizingMaskIntoConstraints="NO" id="zFe-Jv-e9P"> | ||
| 259 | - <rect key="frame" x="20" y="8" width="35" height="35"/> | ||
| 260 | - <constraints> | ||
| 261 | - <constraint firstAttribute="height" constant="35" id="04s-Ew-wi1"/> | ||
| 262 | - </constraints> | ||
| 263 | - <userDefinedRuntimeAttributes> | ||
| 264 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 265 | - <integer key="value" value="15"/> | ||
| 266 | - </userDefinedRuntimeAttribute> | ||
| 267 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 268 | - </userDefinedRuntimeAttributes> | ||
| 269 | - </imageView> | ||
| 270 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="QQ空间" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hoc-PN-xqB"> | ||
| 271 | - <rect key="frame" x="11" y="51" width="54" height="18"/> | ||
| 272 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 273 | - <nil key="textColor"/> | ||
| 274 | - <nil key="highlightedColor"/> | ||
| 275 | - </label> | ||
| 276 | - </subviews> | ||
| 277 | - <gestureRecognizers/> | ||
| 278 | - <constraints> | ||
| 279 | - <constraint firstItem="zFe-Jv-e9P" firstAttribute="width" secondItem="zFe-Jv-e9P" secondAttribute="height" multiplier="1:1" id="FvU-n2-pQk"/> | ||
| 280 | - <constraint firstItem="hoc-PN-xqB" firstAttribute="centerX" secondItem="ps1-Dc-OM3" secondAttribute="centerX" id="P4s-6d-Dkb"/> | ||
| 281 | - <constraint firstItem="zFe-Jv-e9P" firstAttribute="centerX" secondItem="ps1-Dc-OM3" secondAttribute="centerX" id="XWt-0a-OC3"/> | ||
| 282 | - <constraint firstItem="zFe-Jv-e9P" firstAttribute="top" secondItem="ps1-Dc-OM3" secondAttribute="top" constant="8" id="a8k-md-aIw"/> | ||
| 283 | - <constraint firstAttribute="height" constant="77" id="b0u-VJ-CGU"/> | ||
| 284 | - <constraint firstAttribute="bottom" secondItem="hoc-PN-xqB" secondAttribute="bottom" constant="8" id="eNW-Ug-nlg"/> | ||
| 285 | - </constraints> | ||
| 286 | - <connections> | ||
| 287 | - <outletCollection property="gestureRecognizers" destination="fJh-P9-bxZ" appends="YES" id="WDO-iO-2OB"/> | ||
| 288 | - </connections> | ||
| 289 | - </view> | ||
| 290 | - </subviews> | ||
| 291 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 292 | - <constraints> | ||
| 293 | - <constraint firstItem="8yF-ZZ-mXJ" firstAttribute="top" secondItem="QEM-R1-B72" secondAttribute="top" id="0OI-TS-Glh"/> | ||
| 294 | - <constraint firstItem="J9A-XJ-110" firstAttribute="centerX" secondItem="iNB-3t-Wom" secondAttribute="centerX" id="BHa-zp-T9u"/> | ||
| 295 | - <constraint firstItem="1H6-5k-cyF" firstAttribute="width" secondItem="QEM-R1-B72" secondAttribute="width" id="EHk-2s-OLH"/> | ||
| 296 | - <constraint firstItem="ps1-Dc-OM3" firstAttribute="leading" secondItem="6dV-3y-bTk" secondAttribute="trailing" id="GEu-QP-f9c"/> | ||
| 297 | - <constraint firstItem="QEM-R1-B72" firstAttribute="leading" secondItem="iNB-3t-Wom" secondAttribute="leading" id="Gwx-Xr-Qvd"/> | ||
| 298 | - <constraint firstItem="8yF-ZZ-mXJ" firstAttribute="width" secondItem="QEM-R1-B72" secondAttribute="width" id="H53-Az-RR8"/> | ||
| 299 | - <constraint firstItem="8yF-ZZ-mXJ" firstAttribute="leading" secondItem="1H6-5k-cyF" secondAttribute="trailing" id="Ih5-dp-PWL"/> | ||
| 300 | - <constraint firstItem="J9A-XJ-110" firstAttribute="top" secondItem="iNB-3t-Wom" secondAttribute="top" constant="8" id="P5n-Lx-ZWI"/> | ||
| 301 | - <constraint firstItem="ps1-Dc-OM3" firstAttribute="width" secondItem="QEM-R1-B72" secondAttribute="width" id="WOb-kd-PKF"/> | ||
| 302 | - <constraint firstItem="WmD-yl-11a" firstAttribute="centerX" secondItem="iNB-3t-Wom" secondAttribute="centerX" id="XaZ-TO-V9B"/> | ||
| 303 | - <constraint firstItem="boy-tb-QZb" firstAttribute="leading" secondItem="iNB-3t-Wom" secondAttribute="leading" id="ckq-mw-g5Z"/> | ||
| 304 | - <constraint firstItem="1H6-5k-cyF" firstAttribute="leading" secondItem="ps1-Dc-OM3" secondAttribute="trailing" id="cxL-wY-ePE"/> | ||
| 305 | - <constraint firstAttribute="trailing" secondItem="boy-tb-QZb" secondAttribute="trailing" id="e9A-TC-FpW"/> | ||
| 306 | - <constraint firstItem="6dV-3y-bTk" firstAttribute="top" secondItem="QEM-R1-B72" secondAttribute="top" id="hL3-Rj-oBY"/> | ||
| 307 | - <constraint firstItem="QEM-R1-B72" firstAttribute="top" secondItem="iNB-3t-Wom" secondAttribute="top" constant="40" id="hzz-XG-zp9"/> | ||
| 308 | - <constraint firstAttribute="bottom" secondItem="WmD-yl-11a" secondAttribute="bottom" constant="15" id="jQ9-b9-EDJ"/> | ||
| 309 | - <constraint firstAttribute="trailing" secondItem="8yF-ZZ-mXJ" secondAttribute="trailing" id="mYv-fh-WuI"/> | ||
| 310 | - <constraint firstItem="6dV-3y-bTk" firstAttribute="width" secondItem="QEM-R1-B72" secondAttribute="width" id="nA4-k1-Sob"/> | ||
| 311 | - <constraint firstItem="boy-tb-QZb" firstAttribute="top" secondItem="iNB-3t-Wom" secondAttribute="top" constant="39" id="sya-bc-bbA"/> | ||
| 312 | - <constraint firstItem="6dV-3y-bTk" firstAttribute="leading" secondItem="QEM-R1-B72" secondAttribute="trailing" id="tEH-rX-gqE"/> | ||
| 313 | - <constraint firstAttribute="height" constant="200" id="xCH-yp-JHu"/> | ||
| 314 | - <constraint firstItem="1H6-5k-cyF" firstAttribute="top" secondItem="QEM-R1-B72" secondAttribute="top" id="xVE-7W-MSS"/> | ||
| 315 | - <constraint firstItem="ps1-Dc-OM3" firstAttribute="top" secondItem="QEM-R1-B72" secondAttribute="top" id="zPg-fD-L0x"/> | ||
| 316 | - </constraints> | ||
| 317 | - <userDefinedRuntimeAttributes> | ||
| 318 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 319 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 320 | - <integer key="value" value="5"/> | ||
| 321 | - </userDefinedRuntimeAttribute> | ||
| 322 | - </userDefinedRuntimeAttributes> | ||
| 323 | - </view> | ||
| 324 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="kIg-gD-e3o"> | ||
| 325 | - <rect key="frame" x="367" y="28" width="0.0" height="0.0"/> | ||
| 326 | - <constraints> | ||
| 327 | - <constraint firstAttribute="height" id="XJo-OD-6oe"/> | ||
| 328 | - <constraint firstAttribute="width" secondItem="kIg-gD-e3o" secondAttribute="height" multiplier="1:1" id="gYt-bu-mWD"/> | ||
| 329 | - </constraints> | ||
| 330 | - <state key="normal" backgroundImage="竖屏.png"/> | ||
| 331 | - <userDefinedRuntimeAttributes> | ||
| 332 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 333 | - <integer key="value" value="15"/> | ||
| 334 | - </userDefinedRuntimeAttribute> | ||
| 335 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 336 | - </userDefinedRuntimeAttributes> | ||
| 337 | - <connections> | ||
| 338 | - <action selector="isScreenHorizontalBtnClickAction:" destination="ip0-b5-5EB" eventType="touchUpInside" id="qFw-NP-GLs"/> | ||
| 339 | - </connections> | ||
| 340 | - </button> | ||
| 341 | - <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="V2L-Fb-boS"> | ||
| 342 | - <rect key="frame" x="16" y="28" width="94" height="30"/> | ||
| 343 | - <subviews> | ||
| 344 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1EH-O7-P6f"> | ||
| 345 | - <rect key="frame" x="0.0" y="0.0" width="86" height="30"/> | ||
| 346 | - <subviews> | ||
| 347 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="DJ2-Rw-yIA"> | ||
| 348 | - <rect key="frame" x="4" y="1" width="28" height="28"/> | ||
| 349 | - <constraints> | ||
| 350 | - <constraint firstAttribute="height" constant="28" id="ajr-Jv-rdQ"/> | ||
| 351 | - <constraint firstAttribute="width" secondItem="DJ2-Rw-yIA" secondAttribute="height" multiplier="1:1" id="kpH-fM-6CC"/> | ||
| 352 | - </constraints> | ||
| 353 | - <userDefinedRuntimeAttributes> | ||
| 354 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 355 | - <integer key="value" value="15"/> | ||
| 356 | - </userDefinedRuntimeAttribute> | ||
| 357 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 358 | - </userDefinedRuntimeAttributes> | ||
| 359 | - </imageView> | ||
| 360 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YMe-JB-eV2"> | ||
| 361 | - <rect key="frame" x="40" y="5" width="42" height="21"/> | ||
| 362 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 363 | - <nil key="textColor"/> | ||
| 364 | - <nil key="highlightedColor"/> | ||
| 365 | - </label> | ||
| 366 | - </subviews> | ||
| 367 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 368 | - <constraints> | ||
| 369 | - <constraint firstItem="YMe-JB-eV2" firstAttribute="centerY" secondItem="1EH-O7-P6f" secondAttribute="centerY" id="6kR-LO-5gE"/> | ||
| 370 | - <constraint firstItem="YMe-JB-eV2" firstAttribute="leading" secondItem="DJ2-Rw-yIA" secondAttribute="trailing" constant="8" id="J95-TL-8L1"/> | ||
| 371 | - <constraint firstItem="DJ2-Rw-yIA" firstAttribute="leading" secondItem="1EH-O7-P6f" secondAttribute="leading" constant="4" id="Q8U-YY-IdT"/> | ||
| 372 | - <constraint firstItem="DJ2-Rw-yIA" firstAttribute="centerY" secondItem="1EH-O7-P6f" secondAttribute="centerY" id="hZA-rb-qOf"/> | ||
| 373 | - <constraint firstAttribute="height" constant="30" id="mYr-gm-yPj"/> | ||
| 374 | - <constraint firstAttribute="trailing" secondItem="YMe-JB-eV2" secondAttribute="trailing" constant="4" id="uRO-rX-qIH"/> | ||
| 375 | - </constraints> | ||
| 376 | - <userDefinedRuntimeAttributes> | ||
| 377 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 378 | - <integer key="value" value="15"/> | ||
| 379 | - </userDefinedRuntimeAttribute> | ||
| 380 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 381 | - </userDefinedRuntimeAttributes> | ||
| 382 | - </view> | ||
| 383 | - </subviews> | ||
| 384 | - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> | ||
| 385 | - <constraints> | ||
| 386 | - <constraint firstItem="1EH-O7-P6f" firstAttribute="top" secondItem="V2L-Fb-boS" secondAttribute="top" id="KG2-JU-VtG"/> | ||
| 387 | - <constraint firstItem="1EH-O7-P6f" firstAttribute="leading" secondItem="V2L-Fb-boS" secondAttribute="leading" id="Lfa-oQ-T9Z"/> | ||
| 388 | - <constraint firstAttribute="height" constant="30" id="nfG-pF-I02"/> | ||
| 389 | - <constraint firstAttribute="bottom" secondItem="1EH-O7-P6f" secondAttribute="bottom" id="qKk-we-bKv"/> | ||
| 390 | - <constraint firstAttribute="trailing" secondItem="1EH-O7-P6f" secondAttribute="trailing" constant="8" id="xjG-74-wav"/> | ||
| 391 | - </constraints> | ||
| 392 | - </view> | ||
| 393 | - </subviews> | ||
| 394 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 395 | - <constraints> | ||
| 396 | - <constraint firstItem="iNB-3t-Wom" firstAttribute="leading" secondItem="ovQ-y5-L2e" secondAttribute="leading" id="8N2-ZZ-o81"/> | ||
| 397 | - <constraint firstItem="GQ2-99-1ZE" firstAttribute="top" secondItem="22I-3U-xYK" secondAttribute="bottom" id="9u8-PJ-cMy"/> | ||
| 398 | - <constraint firstItem="V2L-Fb-boS" firstAttribute="leading" secondItem="ovQ-y5-L2e" secondAttribute="leading" constant="16" id="AeS-TF-40m"/> | ||
| 399 | - <constraint firstItem="GQ2-99-1ZE" firstAttribute="top" secondItem="iNB-3t-Wom" secondAttribute="bottom" constant="-5" id="Cht-KD-qFR"/> | ||
| 400 | - <constraint firstAttribute="trailing" secondItem="kIg-gD-e3o" secondAttribute="trailing" constant="8" id="I8V-kf-LGb"/> | ||
| 401 | - <constraint firstItem="2i8-Kf-r5H" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="V2L-Fb-boS" secondAttribute="trailing" constant="8" id="Ima-wC-WxQ"/> | ||
| 402 | - <constraint firstItem="2i8-Kf-r5H" firstAttribute="top" secondItem="YzZ-Ac-TmT" secondAttribute="bottom" constant="8" id="Jok-lw-LdQ"/> | ||
| 403 | - <constraint firstItem="22I-3U-xYK" firstAttribute="top" secondItem="YzZ-Ac-TmT" secondAttribute="bottom" id="NF7-d0-UHM"/> | ||
| 404 | - <constraint firstItem="kIg-gD-e3o" firstAttribute="leading" secondItem="2i8-Kf-r5H" secondAttribute="trailing" constant="8" id="REV-i1-0zi"/> | ||
| 405 | - <constraint firstAttribute="trailing" secondItem="iNB-3t-Wom" secondAttribute="trailing" id="Rvz-oT-O3j"/> | ||
| 406 | - <constraint firstItem="V2L-Fb-boS" firstAttribute="top" secondItem="YzZ-Ac-TmT" secondAttribute="bottom" constant="8" id="Uo8-y0-3yF"/> | ||
| 407 | - <constraint firstItem="22I-3U-xYK" firstAttribute="leading" secondItem="ovQ-y5-L2e" secondAttribute="leading" id="boH-iG-WS6"/> | ||
| 408 | - <constraint firstAttribute="trailing" secondItem="22I-3U-xYK" secondAttribute="trailing" id="g9l-of-wPE"/> | ||
| 409 | - <constraint firstItem="kIg-gD-e3o" firstAttribute="top" secondItem="YzZ-Ac-TmT" secondAttribute="bottom" constant="8" id="nmg-Vt-AqQ"/> | ||
| 410 | - </constraints> | ||
| 411 | - </view> | ||
| 412 | - <connections> | ||
| 413 | - <outlet property="definitionLabel" destination="Jah-zM-NyA" id="LLF-Bf-E8B"/> | ||
| 414 | - <outlet property="definitionSelectImage" destination="YES-sk-Ulh" id="LZL-PR-Uvi"/> | ||
| 415 | - <outlet property="isScreenHorizontalBtn" destination="kIg-gD-e3o" id="PV9-Ur-jbs"/> | ||
| 416 | - <outlet property="roomName" destination="YMe-JB-eV2" id="2oF-2D-fva"/> | ||
| 417 | - <outlet property="shareView" destination="iNB-3t-Wom" id="dV3-JY-01O"/> | ||
| 418 | - <outlet property="titleImage" destination="22I-3U-xYK" id="2yV-7f-OWm"/> | ||
| 419 | - <outlet property="userPhoto" destination="DJ2-Rw-yIA" id="bgV-ri-f6B"/> | ||
| 420 | - <outlet property="userPhotoHeight" destination="ajr-Jv-rdQ" id="DcD-xD-sKL"/> | ||
| 421 | - </connections> | ||
| 422 | - </viewController> | ||
| 423 | - <placeholder placeholderIdentifier="IBFirstResponder" id="kbh-za-LPZ" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 424 | - <tapGestureRecognizer id="XUl-Re-1Mg"> | ||
| 425 | - <connections> | ||
| 426 | - <action selector="shareClickAction:" destination="ip0-b5-5EB" id="ikT-4F-pK4"/> | ||
| 427 | - </connections> | ||
| 428 | - </tapGestureRecognizer> | ||
| 429 | - <tapGestureRecognizer id="Mg7-3z-rgg"> | ||
| 430 | - <connections> | ||
| 431 | - <action selector="shareClickAction:" destination="ip0-b5-5EB" id="T6s-W0-65b"/> | ||
| 432 | - </connections> | ||
| 433 | - </tapGestureRecognizer> | ||
| 434 | - <tapGestureRecognizer id="fJh-P9-bxZ"> | ||
| 435 | - <connections> | ||
| 436 | - <action selector="shareClickAction:" destination="ip0-b5-5EB" id="piL-wO-7di"/> | ||
| 437 | - </connections> | ||
| 438 | - </tapGestureRecognizer> | ||
| 439 | - <tapGestureRecognizer id="hvP-5C-twJ"> | ||
| 440 | - <connections> | ||
| 441 | - <action selector="shareClickAction:" destination="ip0-b5-5EB" id="Apn-IG-SDy"/> | ||
| 442 | - </connections> | ||
| 443 | - </tapGestureRecognizer> | ||
| 444 | - <tapGestureRecognizer id="BzP-RN-n5z"> | ||
| 445 | - <connections> | ||
| 446 | - <action selector="shareClickAction:" destination="ip0-b5-5EB" id="Je2-uX-w80"/> | ||
| 447 | - </connections> | ||
| 448 | - </tapGestureRecognizer> | ||
| 449 | - <tapGestureRecognizer id="1Bt-vc-c0u"> | ||
| 450 | - <connections> | ||
| 451 | - <action selector="definitionSelectClickAction:" destination="ip0-b5-5EB" id="R87-TF-qZ4"/> | ||
| 452 | - </connections> | ||
| 453 | - </tapGestureRecognizer> | ||
| 454 | - </objects> | ||
| 455 | - <point key="canvasLocation" x="274" y="1473"/> | ||
| 456 | - </scene> | ||
| 457 | - <!--Delegate--> | ||
| 458 | - <scene sceneID="Vm7-ho-b91"> | ||
| 459 | - <objects> | ||
| 460 | - <viewController storyboardIdentifier="MoivePlayerViewControllerVC" id="0QU-Wv-Ra6" customClass="MoivePlayerViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 461 | - <layoutGuides> | ||
| 462 | - <viewControllerLayoutGuide type="top" id="IPe-Sx-T84"/> | ||
| 463 | - <viewControllerLayoutGuide type="bottom" id="Sc7-qO-bKG"/> | ||
| 464 | - </layoutGuides> | ||
| 465 | - <view key="view" contentMode="scaleToFill" id="jQ8-h6-mT6"> | ||
| 466 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 467 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 468 | - <subviews> | ||
| 469 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vlE-aQ-nqw" customClass="UIControl"> | ||
| 470 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 471 | - <subviews> | ||
| 472 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9Be-Gd-Fuj"> | ||
| 473 | - <rect key="frame" x="0.0" y="417" width="375" height="250"/> | ||
| 474 | - <subviews> | ||
| 475 | - <button opaque="NO" tag="1001" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="YLJ-d9-hFw"> | ||
| 476 | - <rect key="frame" x="125.5" y="1" width="124" height="30"/> | ||
| 477 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 478 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 479 | - <state key="normal" title="简介"> | ||
| 480 | - <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> | ||
| 481 | - </state> | ||
| 482 | - <connections> | ||
| 483 | - <action selector="chatBtnClick:" destination="0QU-Wv-Ra6" eventType="touchUpInside" id="kaC-Co-Ztn"/> | ||
| 484 | - </connections> | ||
| 485 | - </button> | ||
| 486 | - <button opaque="NO" tag="1000" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="okA-30-DU5"> | ||
| 487 | - <rect key="frame" x="0.0" y="1" width="124.5" height="30"/> | ||
| 488 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 489 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 490 | - <state key="normal" title="聊天"> | ||
| 491 | - <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> | ||
| 492 | - </state> | ||
| 493 | - <connections> | ||
| 494 | - <action selector="chatBtnClick:" destination="0QU-Wv-Ra6" eventType="touchUpInside" id="BNA-6q-ake"/> | ||
| 495 | - </connections> | ||
| 496 | - </button> | ||
| 497 | - <button opaque="NO" tag="1002" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="c0r-SE-LjL"> | ||
| 498 | - <rect key="frame" x="250.5" y="1" width="124.5" height="30"/> | ||
| 499 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 500 | - <constraints> | ||
| 501 | - <constraint firstAttribute="height" constant="30" id="hFO-7w-zrN"/> | ||
| 502 | - </constraints> | ||
| 503 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 504 | - <state key="normal" title="留言板"> | ||
| 505 | - <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> | ||
| 506 | - </state> | ||
| 507 | - <connections> | ||
| 508 | - <action selector="chatBtnClick:" destination="0QU-Wv-Ra6" eventType="touchUpInside" id="MWR-xn-WkN"/> | ||
| 509 | - </connections> | ||
| 510 | - </button> | ||
| 511 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Dtr-lD-40Z"> | ||
| 512 | - <rect key="frame" x="0.0" y="28" width="124.5" height="3"/> | ||
| 513 | - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
| 514 | - <color key="backgroundColor" red="0.98823529409999999" green="0.52941176469999995" blue="0.15686274510000001" alpha="1" colorSpace="calibratedRGB"/> | ||
| 515 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 516 | - <nil key="textColor"/> | ||
| 517 | - <nil key="highlightedColor"/> | ||
| 518 | - </label> | ||
| 519 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TTA-ZF-axu" customClass="UIScrollView"> | ||
| 520 | - <rect key="frame" x="0.0" y="32" width="375" height="218"/> | ||
| 521 | - <subviews> | ||
| 522 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SLf-hM-vCC"> | ||
| 523 | - <rect key="frame" x="0.0" y="0.0" width="375" height="218"/> | ||
| 524 | - <subviews> | ||
| 525 | - <containerView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ktG-C3-wgR"> | ||
| 526 | - <rect key="frame" x="125" y="0.0" width="125" height="218"/> | ||
| 527 | - <connections> | ||
| 528 | - <segue destination="d39-wE-zix" kind="embed" identifier="inforScroll" id="WBr-cP-q1X"/> | ||
| 529 | - </connections> | ||
| 530 | - </containerView> | ||
| 531 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qrN-55-eYX"> | ||
| 532 | - <rect key="frame" x="250" y="0.0" width="125" height="218"/> | ||
| 533 | - <subviews> | ||
| 534 | - <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" allowsSelection="NO" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="AhT-H8-j9U"> | ||
| 535 | - <rect key="frame" x="0.0" y="0.0" width="125" height="168"/> | ||
| 536 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 537 | - <prototypes> | ||
| 538 | - <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="cell1" id="WEQ-3V-LrS" customClass="LeaveMessageCell" customModule="YouerLiveVideo" customModuleProvider="target"> | ||
| 539 | - <rect key="frame" x="0.0" y="28" width="125" height="44"/> | ||
| 540 | - <autoresizingMask key="autoresizingMask"/> | ||
| 541 | - <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="WEQ-3V-LrS" id="uhY-FC-Ka2"> | ||
| 542 | - <rect key="frame" x="0.0" y="0.0" width="125" height="44"/> | ||
| 543 | - <autoresizingMask key="autoresizingMask"/> | ||
| 544 | - <subviews> | ||
| 545 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="eZJ-1K-dWz"> | ||
| 546 | - <rect key="frame" x="8" y="8" width="20" height="20"/> | ||
| 547 | - <constraints> | ||
| 548 | - <constraint firstAttribute="width" secondItem="eZJ-1K-dWz" secondAttribute="height" multiplier="1:1" id="0jf-RO-wrQ"/> | ||
| 549 | - <constraint firstAttribute="height" constant="20" id="Tez-Pw-uQ1"/> | ||
| 550 | - </constraints> | ||
| 551 | - </imageView> | ||
| 552 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="piu-Qd-7B2"> | ||
| 553 | - <rect key="frame" x="114" y="20" width="3" height="16"/> | ||
| 554 | - <constraints> | ||
| 555 | - <constraint firstAttribute="height" constant="16" id="0IU-8z-mCI"/> | ||
| 556 | - </constraints> | ||
| 557 | - <fontDescription key="fontDescription" type="system" pointSize="10"/> | ||
| 558 | - <nil key="textColor"/> | ||
| 559 | - <nil key="highlightedColor"/> | ||
| 560 | - </label> | ||
| 561 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Uss-kQ-tQv"> | ||
| 562 | - <rect key="frame" x="36" y="8" width="81" height="16"/> | ||
| 563 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 564 | - <nil key="textColor"/> | ||
| 565 | - <nil key="highlightedColor"/> | ||
| 566 | - </label> | ||
| 567 | - </subviews> | ||
| 568 | - <constraints> | ||
| 569 | - <constraint firstItem="Uss-kQ-tQv" firstAttribute="leading" secondItem="eZJ-1K-dWz" secondAttribute="trailing" constant="8" id="1Gi-iU-721"/> | ||
| 570 | - <constraint firstAttribute="trailing" secondItem="piu-Qd-7B2" secondAttribute="trailing" constant="8" id="1jS-W7-MyJ"/> | ||
| 571 | - <constraint firstAttribute="bottom" secondItem="piu-Qd-7B2" secondAttribute="bottom" constant="8" id="3EC-js-ZAC"/> | ||
| 572 | - <constraint firstItem="eZJ-1K-dWz" firstAttribute="leading" secondItem="uhY-FC-Ka2" secondAttribute="leading" constant="8" id="7ay-NQ-FFT"/> | ||
| 573 | - <constraint firstItem="eZJ-1K-dWz" firstAttribute="top" secondItem="uhY-FC-Ka2" secondAttribute="top" constant="8" id="Tzh-Lt-9hR"/> | ||
| 574 | - <constraint firstItem="Uss-kQ-tQv" firstAttribute="top" secondItem="uhY-FC-Ka2" secondAttribute="top" constant="8" id="i8p-Qt-Xd7"/> | ||
| 575 | - <constraint firstAttribute="trailing" secondItem="Uss-kQ-tQv" secondAttribute="trailing" constant="8" id="yzm-xt-PVN"/> | ||
| 576 | - </constraints> | ||
| 577 | - </tableViewCellContentView> | ||
| 578 | - <connections> | ||
| 579 | - <outlet property="context" destination="Uss-kQ-tQv" id="JCA-hc-2Or"/> | ||
| 580 | - <outlet property="timeLabel" destination="piu-Qd-7B2" id="Ekz-hD-wvZ"/> | ||
| 581 | - <outlet property="userImage" destination="eZJ-1K-dWz" id="0P7-1w-Id6"/> | ||
| 582 | - </connections> | ||
| 583 | - </tableViewCell> | ||
| 584 | - </prototypes> | ||
| 585 | - <connections> | ||
| 586 | - <outlet property="dataSource" destination="0QU-Wv-Ra6" id="d6T-7Z-RrB"/> | ||
| 587 | - <outlet property="delegate" destination="0QU-Wv-Ra6" id="VQH-1d-KNH"/> | ||
| 588 | - </connections> | ||
| 589 | - </tableView> | ||
| 590 | - </subviews> | ||
| 591 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 592 | - <constraints> | ||
| 593 | - <constraint firstAttribute="bottom" secondItem="AhT-H8-j9U" secondAttribute="bottom" constant="50" id="9Db-BF-tho"/> | ||
| 594 | - <constraint firstAttribute="trailing" secondItem="AhT-H8-j9U" secondAttribute="trailing" id="Owl-Ra-WQA"/> | ||
| 595 | - <constraint firstItem="AhT-H8-j9U" firstAttribute="top" secondItem="qrN-55-eYX" secondAttribute="top" id="uCO-4f-4gX"/> | ||
| 596 | - <constraint firstItem="AhT-H8-j9U" firstAttribute="leading" secondItem="qrN-55-eYX" secondAttribute="leading" id="z5U-EZ-UtG"/> | ||
| 597 | - </constraints> | ||
| 598 | - </view> | ||
| 599 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aS9-E3-mNY"> | ||
| 600 | - <rect key="frame" x="0.0" y="0.0" width="125" height="218"/> | ||
| 601 | - <subviews> | ||
| 602 | - <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" allowsSelection="NO" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="em3-vO-QVJ"> | ||
| 603 | - <rect key="frame" x="0.0" y="0.0" width="125" height="168"/> | ||
| 604 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 605 | - <prototypes> | ||
| 606 | - <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="cell" id="SHw-lf-hNL" customClass="ChatCell" customModule="YouerLiveVideo" customModuleProvider="target"> | ||
| 607 | - <rect key="frame" x="0.0" y="28" width="125" height="44"/> | ||
| 608 | - <autoresizingMask key="autoresizingMask"/> | ||
| 609 | - <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="SHw-lf-hNL" id="ZUk-qq-aqV"> | ||
| 610 | - <rect key="frame" x="0.0" y="0.0" width="125" height="44"/> | ||
| 611 | - <autoresizingMask key="autoresizingMask"/> | ||
| 612 | - <subviews> | ||
| 613 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="uwk-2C-Zmg"> | ||
| 614 | - <rect key="frame" x="8" y="8" width="20" height="20"/> | ||
| 615 | - <constraints> | ||
| 616 | - <constraint firstAttribute="width" secondItem="uwk-2C-Zmg" secondAttribute="height" multiplier="1:1" id="8Vv-Vm-Srp"/> | ||
| 617 | - <constraint firstAttribute="height" constant="20" id="m8R-BX-Pb8"/> | ||
| 618 | - </constraints> | ||
| 619 | - </imageView> | ||
| 620 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="h5b-PW-O92"> | ||
| 621 | - <rect key="frame" x="114" y="20" width="3" height="16"/> | ||
| 622 | - <constraints> | ||
| 623 | - <constraint firstAttribute="height" constant="16" id="iQf-Uc-UGG"/> | ||
| 624 | - </constraints> | ||
| 625 | - <fontDescription key="fontDescription" type="system" pointSize="10"/> | ||
| 626 | - <nil key="textColor"/> | ||
| 627 | - <nil key="highlightedColor"/> | ||
| 628 | - </label> | ||
| 629 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="b8r-Xj-HHR"> | ||
| 630 | - <rect key="frame" x="36" y="8" width="81" height="16"/> | ||
| 631 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 632 | - <nil key="textColor"/> | ||
| 633 | - <nil key="highlightedColor"/> | ||
| 634 | - </label> | ||
| 635 | - </subviews> | ||
| 636 | - <constraints> | ||
| 637 | - <constraint firstItem="b8r-Xj-HHR" firstAttribute="leading" secondItem="uwk-2C-Zmg" secondAttribute="trailing" constant="8" id="2ut-Lj-ZZa"/> | ||
| 638 | - <constraint firstItem="uwk-2C-Zmg" firstAttribute="top" secondItem="ZUk-qq-aqV" secondAttribute="top" constant="8" id="3L8-57-gDM"/> | ||
| 639 | - <constraint firstAttribute="trailing" secondItem="h5b-PW-O92" secondAttribute="trailing" constant="8" id="DSH-g9-tkg"/> | ||
| 640 | - <constraint firstItem="b8r-Xj-HHR" firstAttribute="top" secondItem="ZUk-qq-aqV" secondAttribute="top" constant="8" id="OT0-vg-R0n"/> | ||
| 641 | - <constraint firstAttribute="bottom" secondItem="h5b-PW-O92" secondAttribute="bottom" constant="8" id="Oix-Kt-0on"/> | ||
| 642 | - <constraint firstAttribute="trailing" secondItem="b8r-Xj-HHR" secondAttribute="trailing" constant="8" id="Tsy-Me-DIV"/> | ||
| 643 | - <constraint firstItem="uwk-2C-Zmg" firstAttribute="leading" secondItem="ZUk-qq-aqV" secondAttribute="leading" constant="8" id="w51-QH-s3N"/> | ||
| 644 | - </constraints> | ||
| 645 | - </tableViewCellContentView> | ||
| 646 | - <connections> | ||
| 647 | - <outlet property="context" destination="b8r-Xj-HHR" id="DDN-ou-V5E"/> | ||
| 648 | - <outlet property="timeLabel" destination="h5b-PW-O92" id="ZCe-YW-G2b"/> | ||
| 649 | - <outlet property="userImage" destination="uwk-2C-Zmg" id="VPu-Cz-9vz"/> | ||
| 650 | - </connections> | ||
| 651 | - </tableViewCell> | ||
| 652 | - </prototypes> | ||
| 653 | - <connections> | ||
| 654 | - <outlet property="dataSource" destination="0QU-Wv-Ra6" id="caK-Bh-tgU"/> | ||
| 655 | - <outlet property="delegate" destination="0QU-Wv-Ra6" id="094-Kl-PtD"/> | ||
| 656 | - </connections> | ||
| 657 | - </tableView> | ||
| 658 | - </subviews> | ||
| 659 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 660 | - <constraints> | ||
| 661 | - <constraint firstAttribute="bottom" secondItem="em3-vO-QVJ" secondAttribute="bottom" constant="50" id="CjV-lt-XMk"/> | ||
| 662 | - <constraint firstItem="em3-vO-QVJ" firstAttribute="top" secondItem="aS9-E3-mNY" secondAttribute="top" id="WG8-ZC-wlh"/> | ||
| 663 | - <constraint firstAttribute="trailing" secondItem="em3-vO-QVJ" secondAttribute="trailing" id="rpY-dI-mwo"/> | ||
| 664 | - <constraint firstItem="em3-vO-QVJ" firstAttribute="leading" secondItem="aS9-E3-mNY" secondAttribute="leading" id="uvu-GT-osW"/> | ||
| 665 | - </constraints> | ||
| 666 | - </view> | ||
| 667 | - </subviews> | ||
| 668 | - <constraints> | ||
| 669 | - <constraint firstAttribute="bottom" secondItem="aS9-E3-mNY" secondAttribute="bottom" id="3Gk-8D-3aj"/> | ||
| 670 | - <constraint firstAttribute="bottom" secondItem="ktG-C3-wgR" secondAttribute="bottom" id="3iO-Th-6cO"/> | ||
| 671 | - <constraint firstItem="ktG-C3-wgR" firstAttribute="top" secondItem="SLf-hM-vCC" secondAttribute="top" id="5e0-cn-5CB"/> | ||
| 672 | - <constraint firstItem="qrN-55-eYX" firstAttribute="leading" secondItem="ktG-C3-wgR" secondAttribute="trailing" id="FTz-qL-gxb"/> | ||
| 673 | - <constraint firstAttribute="bottom" secondItem="qrN-55-eYX" secondAttribute="bottom" id="HlA-aL-xxq"/> | ||
| 674 | - <constraint firstAttribute="trailing" secondItem="qrN-55-eYX" secondAttribute="trailing" id="JIZ-gM-fPQ"/> | ||
| 675 | - <constraint firstItem="ktG-C3-wgR" firstAttribute="leading" secondItem="aS9-E3-mNY" secondAttribute="trailing" id="KQ5-w5-Ll0"/> | ||
| 676 | - <constraint firstAttribute="width" constant="375" id="NiA-Ck-nKc"/> | ||
| 677 | - <constraint firstItem="qrN-55-eYX" firstAttribute="width" secondItem="aS9-E3-mNY" secondAttribute="width" id="dWl-AF-yJb"/> | ||
| 678 | - <constraint firstItem="aS9-E3-mNY" firstAttribute="leading" secondItem="SLf-hM-vCC" secondAttribute="leading" id="gmE-41-dqB"/> | ||
| 679 | - <constraint firstItem="ktG-C3-wgR" firstAttribute="width" secondItem="aS9-E3-mNY" secondAttribute="width" id="pw4-yS-Hso"/> | ||
| 680 | - <constraint firstItem="aS9-E3-mNY" firstAttribute="top" secondItem="SLf-hM-vCC" secondAttribute="top" id="zGw-07-oZT"/> | ||
| 681 | - <constraint firstItem="qrN-55-eYX" firstAttribute="top" secondItem="SLf-hM-vCC" secondAttribute="top" id="zng-nP-zzD"/> | ||
| 682 | - </constraints> | ||
| 683 | - </view> | ||
| 684 | - </subviews> | ||
| 685 | - <constraints> | ||
| 686 | - <constraint firstAttribute="bottom" secondItem="SLf-hM-vCC" secondAttribute="bottom" id="Bc5-YD-jUU"/> | ||
| 687 | - <constraint firstItem="SLf-hM-vCC" firstAttribute="leading" secondItem="TTA-ZF-axu" secondAttribute="leading" id="HDw-dc-HhA"/> | ||
| 688 | - <constraint firstAttribute="trailing" secondItem="SLf-hM-vCC" secondAttribute="trailing" id="I1W-B4-09J"/> | ||
| 689 | - <constraint firstItem="SLf-hM-vCC" firstAttribute="top" secondItem="TTA-ZF-axu" secondAttribute="top" id="fLD-Gt-D9S"/> | ||
| 690 | - <constraint firstItem="SLf-hM-vCC" firstAttribute="centerY" secondItem="TTA-ZF-axu" secondAttribute="centerY" id="zXZ-dE-If9"/> | ||
| 691 | - </constraints> | ||
| 692 | - <connections> | ||
| 693 | - <outlet property="delegate" destination="0QU-Wv-Ra6" id="3m8-nl-IB7"/> | ||
| 694 | - </connections> | ||
| 695 | - </view> | ||
| 696 | - </subviews> | ||
| 697 | - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> | ||
| 698 | - <constraints> | ||
| 699 | - <constraint firstItem="c0r-SE-LjL" firstAttribute="height" secondItem="okA-30-DU5" secondAttribute="height" id="63F-fR-DFa"/> | ||
| 700 | - <constraint firstItem="c0r-SE-LjL" firstAttribute="top" secondItem="9Be-Gd-Fuj" secondAttribute="top" constant="1" id="B8I-bC-A5a"/> | ||
| 701 | - <constraint firstItem="c0r-SE-LjL" firstAttribute="width" secondItem="okA-30-DU5" secondAttribute="width" id="HjY-al-IEM"/> | ||
| 702 | - <constraint firstItem="okA-30-DU5" firstAttribute="top" secondItem="9Be-Gd-Fuj" secondAttribute="top" constant="1" id="Urz-Lo-7e4"/> | ||
| 703 | - <constraint firstItem="YLJ-d9-hFw" firstAttribute="top" secondItem="9Be-Gd-Fuj" secondAttribute="top" constant="1" id="WfA-bU-1Uc"/> | ||
| 704 | - <constraint firstItem="c0r-SE-LjL" firstAttribute="leading" secondItem="YLJ-d9-hFw" secondAttribute="trailing" constant="1" id="Xi5-iF-gQf"/> | ||
| 705 | - <constraint firstItem="okA-30-DU5" firstAttribute="leading" secondItem="9Be-Gd-Fuj" secondAttribute="leading" id="h5T-Hv-H3v"/> | ||
| 706 | - <constraint firstItem="YLJ-d9-hFw" firstAttribute="leading" secondItem="okA-30-DU5" secondAttribute="trailing" constant="1" id="iMY-Id-XQm"/> | ||
| 707 | - <constraint firstAttribute="trailing" secondItem="c0r-SE-LjL" secondAttribute="trailing" id="mQo-CS-Ovz"/> | ||
| 708 | - <constraint firstAttribute="height" constant="250" id="ms0-t8-rcg"/> | ||
| 709 | - <constraint firstItem="YLJ-d9-hFw" firstAttribute="height" secondItem="okA-30-DU5" secondAttribute="height" id="naS-zV-iLV"/> | ||
| 710 | - <constraint firstAttribute="bottom" secondItem="TTA-ZF-axu" secondAttribute="bottom" id="nhy-Gi-6WT"/> | ||
| 711 | - <constraint firstItem="TTA-ZF-axu" firstAttribute="top" secondItem="okA-30-DU5" secondAttribute="bottom" constant="1" id="pkI-rN-ebn"/> | ||
| 712 | - <constraint firstItem="TTA-ZF-axu" firstAttribute="leading" secondItem="9Be-Gd-Fuj" secondAttribute="leading" id="wGR-nM-XLk"/> | ||
| 713 | - <constraint firstItem="YLJ-d9-hFw" firstAttribute="width" secondItem="okA-30-DU5" secondAttribute="width" id="xj9-1g-8UF"/> | ||
| 714 | - <constraint firstAttribute="trailing" secondItem="TTA-ZF-axu" secondAttribute="trailing" id="yw0-8l-FeP"/> | ||
| 715 | - </constraints> | ||
| 716 | - </view> | ||
| 717 | - <button hidden="YES" opaque="NO" tag="205" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="sdE-qz-kEZ"> | ||
| 718 | - <rect key="frame" x="337" y="172" width="30" height="30"/> | ||
| 719 | - <constraints> | ||
| 720 | - <constraint firstAttribute="height" constant="30" id="jXx-lk-nGN"/> | ||
| 721 | - <constraint firstAttribute="width" secondItem="sdE-qz-kEZ" secondAttribute="height" multiplier="1:1" id="rIZ-ru-Gxz"/> | ||
| 722 | - </constraints> | ||
| 723 | - <state key="normal" backgroundImage="starLive"/> | ||
| 724 | - <connections> | ||
| 725 | - <action selector="playPauseClickAction:" destination="0QU-Wv-Ra6" eventType="touchUpInside" id="wwE-4h-cZh"/> | ||
| 726 | - </connections> | ||
| 727 | - </button> | ||
| 728 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Uz7-8G-gQ8"> | ||
| 729 | - <rect key="frame" x="0.0" y="337" width="375" height="80"/> | ||
| 730 | - <gestureRecognizers/> | ||
| 731 | - <constraints> | ||
| 732 | - <constraint firstAttribute="height" constant="80" id="nUb-9K-nd6"/> | ||
| 733 | - </constraints> | ||
| 734 | - <connections> | ||
| 735 | - <outletCollection property="gestureRecognizers" destination="WoY-4r-3yQ" appends="YES" id="vtI-f3-uFb"/> | ||
| 736 | - </connections> | ||
| 737 | - </view> | ||
| 738 | - <button opaque="NO" tag="200" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="kHb-AT-GAB"> | ||
| 739 | - <rect key="frame" x="337" y="20" width="30" height="30"/> | ||
| 740 | - <constraints> | ||
| 741 | - <constraint firstAttribute="width" secondItem="kHb-AT-GAB" secondAttribute="height" multiplier="1:1" id="Eqk-Rn-qcm"/> | ||
| 742 | - <constraint firstAttribute="width" constant="30" id="zdR-8o-dnF"/> | ||
| 743 | - </constraints> | ||
| 744 | - <state key="normal" backgroundImage="closeAlive"/> | ||
| 745 | - <connections> | ||
| 746 | - <action selector="backBtnClickAction:" destination="0QU-Wv-Ra6" eventType="touchUpInside" id="pJ0-79-40l"/> | ||
| 747 | - </connections> | ||
| 748 | - </button> | ||
| 749 | - <button opaque="NO" tag="202" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="nf4-Rj-fdm"> | ||
| 750 | - <rect key="frame" x="337" y="96" width="30" height="30"/> | ||
| 751 | - <constraints> | ||
| 752 | - <constraint firstAttribute="width" secondItem="nf4-Rj-fdm" secondAttribute="height" multiplier="1:1" id="Axh-Oq-rOw"/> | ||
| 753 | - <constraint firstAttribute="height" constant="30" id="B6L-95-d4z"/> | ||
| 754 | - </constraints> | ||
| 755 | - <state key="normal" backgroundImage="subTitle_on"/> | ||
| 756 | - <connections> | ||
| 757 | - <action selector="subTitleCloseClickAction:" destination="0QU-Wv-Ra6" eventType="touchUpInside" id="5Mz-Ma-rNZ"/> | ||
| 758 | - </connections> | ||
| 759 | - </button> | ||
| 760 | - <button opaque="NO" tag="201" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jfi-VH-N8h"> | ||
| 761 | - <rect key="frame" x="337" y="58" width="30" height="30"/> | ||
| 762 | - <constraints> | ||
| 763 | - <constraint firstAttribute="height" constant="30" id="3oq-SH-iws"/> | ||
| 764 | - <constraint firstAttribute="width" secondItem="jfi-VH-N8h" secondAttribute="height" multiplier="1:1" id="88B-rG-gLz"/> | ||
| 765 | - </constraints> | ||
| 766 | - <state key="normal" backgroundImage="screen_full"/> | ||
| 767 | - <connections> | ||
| 768 | - <action selector="isHorScreenClickAction:" destination="0QU-Wv-Ra6" eventType="touchUpInside" id="D74-9x-3ZX"/> | ||
| 769 | - </connections> | ||
| 770 | - </button> | ||
| 771 | - <view tag="204" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="NfY-SF-Dhi"> | ||
| 772 | - <rect key="frame" x="8" y="20" width="91.5" height="50"/> | ||
| 773 | - <subviews> | ||
| 774 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="default_userRoom" translatesAutoresizingMaskIntoConstraints="NO" id="BkR-Pl-94U"> | ||
| 775 | - <rect key="frame" x="10" y="5" width="40" height="40"/> | ||
| 776 | - <constraints> | ||
| 777 | - <constraint firstAttribute="width" secondItem="BkR-Pl-94U" secondAttribute="height" multiplier="1:1" id="PeB-Aw-5MO"/> | ||
| 778 | - <constraint firstAttribute="height" constant="40" id="g2Q-su-k0W"/> | ||
| 779 | - </constraints> | ||
| 780 | - <userDefinedRuntimeAttributes> | ||
| 781 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 782 | - <integer key="value" value="20"/> | ||
| 783 | - </userDefinedRuntimeAttribute> | ||
| 784 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 785 | - </userDefinedRuntimeAttributes> | ||
| 786 | - </imageView> | ||
| 787 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="观看人数.png" translatesAutoresizingMaskIntoConstraints="NO" id="rH1-CI-l2N"> | ||
| 788 | - <rect key="frame" x="58" y="27" width="20.5" height="15"/> | ||
| 789 | - <color key="tintColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 790 | - <constraints> | ||
| 791 | - <constraint firstAttribute="height" constant="15" id="JhQ-Lf-IRN"/> | ||
| 792 | - <constraint firstAttribute="width" secondItem="rH1-CI-l2N" secondAttribute="height" multiplier="15:11" id="YTt-0b-tiF"/> | ||
| 793 | - </constraints> | ||
| 794 | - </imageView> | ||
| 795 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dDF-Nn-OsE"> | ||
| 796 | - <rect key="frame" x="58" y="8" width="25.5" height="18"/> | ||
| 797 | - <constraints> | ||
| 798 | - <constraint firstAttribute="height" constant="18" id="57H-pb-2xO"/> | ||
| 799 | - </constraints> | ||
| 800 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 801 | - <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 802 | - <nil key="highlightedColor"/> | ||
| 803 | - </label> | ||
| 804 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tYh-h6-LqD"> | ||
| 805 | - <rect key="frame" x="80.5" y="30" width="3" height="12"/> | ||
| 806 | - <fontDescription key="fontDescription" type="system" pointSize="10"/> | ||
| 807 | - <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 808 | - <nil key="highlightedColor"/> | ||
| 809 | - </label> | ||
| 810 | - </subviews> | ||
| 811 | - <color key="backgroundColor" white="0.0" alpha="0.5" colorSpace="calibratedWhite"/> | ||
| 812 | - <constraints> | ||
| 813 | - <constraint firstItem="rH1-CI-l2N" firstAttribute="leading" secondItem="BkR-Pl-94U" secondAttribute="trailing" constant="8" id="0gd-g5-UvT"/> | ||
| 814 | - <constraint firstAttribute="bottom" secondItem="rH1-CI-l2N" secondAttribute="bottom" constant="8" id="CXT-uW-cyQ"/> | ||
| 815 | - <constraint firstAttribute="trailing" secondItem="tYh-h6-LqD" secondAttribute="trailing" constant="8" id="JhK-pz-zyH"/> | ||
| 816 | - <constraint firstAttribute="height" constant="50" id="X8o-2W-jXb"/> | ||
| 817 | - <constraint firstAttribute="bottom" secondItem="tYh-h6-LqD" secondAttribute="bottom" constant="8" id="ejT-0Q-Ht7"/> | ||
| 818 | - <constraint firstItem="dDF-Nn-OsE" firstAttribute="leading" secondItem="BkR-Pl-94U" secondAttribute="trailing" constant="8" id="f1a-gD-e1P"/> | ||
| 819 | - <constraint firstItem="BkR-Pl-94U" firstAttribute="top" secondItem="NfY-SF-Dhi" secondAttribute="top" constant="5" id="f3x-aj-foW"/> | ||
| 820 | - <constraint firstItem="BkR-Pl-94U" firstAttribute="leading" secondItem="NfY-SF-Dhi" secondAttribute="leading" constant="10" id="lTn-r7-18c"/> | ||
| 821 | - <constraint firstAttribute="trailing" secondItem="dDF-Nn-OsE" secondAttribute="trailing" constant="8" id="mw8-Ut-ZqE"/> | ||
| 822 | - <constraint firstItem="dDF-Nn-OsE" firstAttribute="top" secondItem="NfY-SF-Dhi" secondAttribute="top" constant="8" id="rnS-Ur-5MC"/> | ||
| 823 | - <constraint firstAttribute="bottom" secondItem="BkR-Pl-94U" secondAttribute="bottom" constant="5" id="zZi-ZQ-D4s"/> | ||
| 824 | - <constraint firstItem="tYh-h6-LqD" firstAttribute="leading" secondItem="rH1-CI-l2N" secondAttribute="trailing" constant="2" id="ziH-iW-YE2"/> | ||
| 825 | - </constraints> | ||
| 826 | - <userDefinedRuntimeAttributes> | ||
| 827 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 828 | - <integer key="value" value="25"/> | ||
| 829 | - </userDefinedRuntimeAttribute> | ||
| 830 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 831 | - </userDefinedRuntimeAttributes> | ||
| 832 | - </view> | ||
| 833 | - <button opaque="NO" tag="203" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Syn-Gn-nF0"> | ||
| 834 | - <rect key="frame" x="337" y="134" width="30" height="30"/> | ||
| 835 | - <constraints> | ||
| 836 | - <constraint firstAttribute="height" constant="30" id="ZVt-7j-Mfh"/> | ||
| 837 | - <constraint firstAttribute="width" secondItem="Syn-Gn-nF0" secondAttribute="height" multiplier="1:1" id="aSI-mQ-S35"/> | ||
| 838 | - </constraints> | ||
| 839 | - <state key="normal" backgroundImage="share"/> | ||
| 840 | - <connections> | ||
| 841 | - <action selector="shareBtnClick:" destination="0QU-Wv-Ra6" eventType="touchUpInside" id="tOG-EY-DD4"/> | ||
| 842 | - </connections> | ||
| 843 | - </button> | ||
| 844 | - </subviews> | ||
| 845 | - <constraints> | ||
| 846 | - <constraint firstItem="9Be-Gd-Fuj" firstAttribute="leading" secondItem="vlE-aQ-nqw" secondAttribute="leading" id="0pK-vi-7d8"/> | ||
| 847 | - <constraint firstAttribute="trailing" secondItem="kHb-AT-GAB" secondAttribute="trailing" constant="8" id="ANX-eO-2eL"/> | ||
| 848 | - <constraint firstItem="Uz7-8G-gQ8" firstAttribute="leading" secondItem="vlE-aQ-nqw" secondAttribute="leading" id="AXZ-Pz-cac"/> | ||
| 849 | - <constraint firstItem="Syn-Gn-nF0" firstAttribute="top" secondItem="nf4-Rj-fdm" secondAttribute="bottom" constant="8" id="E1C-7n-AML"/> | ||
| 850 | - <constraint firstAttribute="trailing" secondItem="nf4-Rj-fdm" secondAttribute="trailing" constant="8" id="EiO-Wl-Xfy"/> | ||
| 851 | - <constraint firstAttribute="trailing" secondItem="jfi-VH-N8h" secondAttribute="trailing" constant="8" id="FGF-66-zMk"/> | ||
| 852 | - <constraint firstItem="9Be-Gd-Fuj" firstAttribute="top" secondItem="Uz7-8G-gQ8" secondAttribute="bottom" id="N7P-6A-NH1"/> | ||
| 853 | - <constraint firstItem="jfi-VH-N8h" firstAttribute="top" secondItem="kHb-AT-GAB" secondAttribute="bottom" constant="8" id="ND2-S9-P6Q"/> | ||
| 854 | - <constraint firstItem="kHb-AT-GAB" firstAttribute="top" secondItem="vlE-aQ-nqw" secondAttribute="top" constant="20" id="Yd5-Cs-tAV"/> | ||
| 855 | - <constraint firstAttribute="trailing" secondItem="9Be-Gd-Fuj" secondAttribute="trailing" id="Z6k-08-24s"/> | ||
| 856 | - <constraint firstAttribute="trailing" secondItem="jfi-VH-N8h" secondAttribute="trailing" constant="8" id="dev-s9-I8w"/> | ||
| 857 | - <constraint firstItem="NfY-SF-Dhi" firstAttribute="leading" secondItem="vlE-aQ-nqw" secondAttribute="leading" constant="8" id="gzI-en-wWk"/> | ||
| 858 | - <constraint firstItem="nf4-Rj-fdm" firstAttribute="top" secondItem="jfi-VH-N8h" secondAttribute="bottom" constant="8" id="kSW-l8-dfO"/> | ||
| 859 | - <constraint firstAttribute="trailing" secondItem="sdE-qz-kEZ" secondAttribute="trailing" constant="8" id="kca-wi-IOP"/> | ||
| 860 | - <constraint firstItem="sdE-qz-kEZ" firstAttribute="top" secondItem="Syn-Gn-nF0" secondAttribute="bottom" constant="8" id="msg-8Y-JBQ"/> | ||
| 861 | - <constraint firstAttribute="trailing" secondItem="Syn-Gn-nF0" secondAttribute="trailing" constant="8" id="o1t-yE-vQW"/> | ||
| 862 | - <constraint firstItem="NfY-SF-Dhi" firstAttribute="top" secondItem="vlE-aQ-nqw" secondAttribute="top" constant="20" id="sOP-gQ-i9s"/> | ||
| 863 | - <constraint firstAttribute="trailing" secondItem="Uz7-8G-gQ8" secondAttribute="trailing" id="wz1-UK-PqG"/> | ||
| 864 | - </constraints> | ||
| 865 | - <connections> | ||
| 866 | - <action selector="cancleKeyboaed:" destination="0QU-Wv-Ra6" eventType="touchUpInside" id="33m-Xx-F9w"/> | ||
| 867 | - </connections> | ||
| 868 | - </view> | ||
| 869 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="P42-ve-BjH"> | ||
| 870 | - <rect key="frame" x="0.0" y="667" width="375" height="120"/> | ||
| 871 | - <subviews> | ||
| 872 | - <view tag="300" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="P8Z-Du-6lp"> | ||
| 873 | - <rect key="frame" x="0.0" y="40" width="75" height="77"/> | ||
| 874 | - <subviews> | ||
| 875 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="we_timeline" translatesAutoresizingMaskIntoConstraints="NO" id="lV8-Kg-cMp"> | ||
| 876 | - <rect key="frame" x="20" y="8" width="35" height="35"/> | ||
| 877 | - <constraints> | ||
| 878 | - <constraint firstAttribute="height" constant="35" id="rNf-Dl-FUN"/> | ||
| 879 | - </constraints> | ||
| 880 | - <userDefinedRuntimeAttributes> | ||
| 881 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 882 | - <integer key="value" value="15"/> | ||
| 883 | - </userDefinedRuntimeAttribute> | ||
| 884 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 885 | - </userDefinedRuntimeAttributes> | ||
| 886 | - </imageView> | ||
| 887 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="朋友圈" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Y2W-eo-rhk"> | ||
| 888 | - <rect key="frame" x="14.5" y="51" width="46" height="18"/> | ||
| 889 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 890 | - <nil key="textColor"/> | ||
| 891 | - <nil key="highlightedColor"/> | ||
| 892 | - </label> | ||
| 893 | - </subviews> | ||
| 894 | - <gestureRecognizers/> | ||
| 895 | - <constraints> | ||
| 896 | - <constraint firstAttribute="height" constant="77" id="ULF-46-gOa"/> | ||
| 897 | - <constraint firstAttribute="bottom" secondItem="Y2W-eo-rhk" secondAttribute="bottom" constant="8" id="XZw-VT-oCc"/> | ||
| 898 | - <constraint firstItem="Y2W-eo-rhk" firstAttribute="centerX" secondItem="P8Z-Du-6lp" secondAttribute="centerX" id="hH8-tJ-Flp"/> | ||
| 899 | - <constraint firstItem="lV8-Kg-cMp" firstAttribute="width" secondItem="lV8-Kg-cMp" secondAttribute="height" multiplier="1:1" id="kfT-fD-6FV"/> | ||
| 900 | - <constraint firstItem="lV8-Kg-cMp" firstAttribute="centerX" secondItem="P8Z-Du-6lp" secondAttribute="centerX" id="vl1-tq-iNB"/> | ||
| 901 | - <constraint firstItem="lV8-Kg-cMp" firstAttribute="top" secondItem="P8Z-Du-6lp" secondAttribute="top" constant="8" id="wkW-cd-30c"/> | ||
| 902 | - </constraints> | ||
| 903 | - <connections> | ||
| 904 | - <outletCollection property="gestureRecognizers" destination="V53-wf-WfU" appends="YES" id="D9B-eQ-LLT"/> | ||
| 905 | - </connections> | ||
| 906 | - </view> | ||
| 907 | - <view tag="303" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Kls-GS-2AC"> | ||
| 908 | - <rect key="frame" x="225" y="40" width="75" height="77"/> | ||
| 909 | - <subviews> | ||
| 910 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sina" translatesAutoresizingMaskIntoConstraints="NO" id="2I9-Cy-eTE"> | ||
| 911 | - <rect key="frame" x="20" y="8" width="35" height="35"/> | ||
| 912 | - <constraints> | ||
| 913 | - <constraint firstAttribute="height" constant="35" id="5nb-66-Pr8"/> | ||
| 914 | - </constraints> | ||
| 915 | - <userDefinedRuntimeAttributes> | ||
| 916 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 917 | - <integer key="value" value="15"/> | ||
| 918 | - </userDefinedRuntimeAttribute> | ||
| 919 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 920 | - </userDefinedRuntimeAttributes> | ||
| 921 | - </imageView> | ||
| 922 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="微博" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="V9C-0j-xbC"> | ||
| 923 | - <rect key="frame" x="22" y="51" width="31" height="18"/> | ||
| 924 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 925 | - <nil key="textColor"/> | ||
| 926 | - <nil key="highlightedColor"/> | ||
| 927 | - </label> | ||
| 928 | - </subviews> | ||
| 929 | - <gestureRecognizers/> | ||
| 930 | - <constraints> | ||
| 931 | - <constraint firstAttribute="bottom" secondItem="V9C-0j-xbC" secondAttribute="bottom" constant="8" id="Iia-Br-M3i"/> | ||
| 932 | - <constraint firstItem="2I9-Cy-eTE" firstAttribute="width" secondItem="2I9-Cy-eTE" secondAttribute="height" multiplier="1:1" id="JFN-49-STU"/> | ||
| 933 | - <constraint firstItem="V9C-0j-xbC" firstAttribute="centerX" secondItem="Kls-GS-2AC" secondAttribute="centerX" id="Pz4-gN-QKa"/> | ||
| 934 | - <constraint firstItem="2I9-Cy-eTE" firstAttribute="centerX" secondItem="Kls-GS-2AC" secondAttribute="centerX" id="ayJ-Kx-0nA"/> | ||
| 935 | - <constraint firstAttribute="height" constant="77" id="frw-Ak-zJe"/> | ||
| 936 | - <constraint firstItem="2I9-Cy-eTE" firstAttribute="top" secondItem="Kls-GS-2AC" secondAttribute="top" constant="8" id="gFN-A6-l5P"/> | ||
| 937 | - </constraints> | ||
| 938 | - <connections> | ||
| 939 | - <outletCollection property="gestureRecognizers" destination="8Af-h0-OQP" appends="YES" id="H7v-w1-2fS"/> | ||
| 940 | - </connections> | ||
| 941 | - </view> | ||
| 942 | - <view tag="301" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zaf-gZ-eAK"> | ||
| 943 | - <rect key="frame" x="75" y="40" width="75" height="77"/> | ||
| 944 | - <subviews> | ||
| 945 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="we_session" translatesAutoresizingMaskIntoConstraints="NO" id="r7p-dv-DSl"> | ||
| 946 | - <rect key="frame" x="20" y="8" width="35" height="35"/> | ||
| 947 | - <constraints> | ||
| 948 | - <constraint firstAttribute="height" constant="35" id="tVE-NO-hDx"/> | ||
| 949 | - </constraints> | ||
| 950 | - <userDefinedRuntimeAttributes> | ||
| 951 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 952 | - <integer key="value" value="15"/> | ||
| 953 | - </userDefinedRuntimeAttribute> | ||
| 954 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 955 | - </userDefinedRuntimeAttributes> | ||
| 956 | - </imageView> | ||
| 957 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="微信" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tHx-eZ-JQe"> | ||
| 958 | - <rect key="frame" x="22" y="51" width="31" height="18"/> | ||
| 959 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 960 | - <nil key="textColor"/> | ||
| 961 | - <nil key="highlightedColor"/> | ||
| 962 | - </label> | ||
| 963 | - </subviews> | ||
| 964 | - <gestureRecognizers/> | ||
| 965 | - <constraints> | ||
| 966 | - <constraint firstAttribute="bottom" secondItem="tHx-eZ-JQe" secondAttribute="bottom" constant="8" id="6C0-pa-wAh"/> | ||
| 967 | - <constraint firstItem="tHx-eZ-JQe" firstAttribute="centerX" secondItem="zaf-gZ-eAK" secondAttribute="centerX" id="H5D-eF-qDZ"/> | ||
| 968 | - <constraint firstItem="r7p-dv-DSl" firstAttribute="centerX" secondItem="zaf-gZ-eAK" secondAttribute="centerX" id="OgI-dX-DWZ"/> | ||
| 969 | - <constraint firstItem="r7p-dv-DSl" firstAttribute="top" secondItem="zaf-gZ-eAK" secondAttribute="top" constant="8" id="Pvs-V1-NmN"/> | ||
| 970 | - <constraint firstAttribute="height" constant="77" id="QEe-de-iO8"/> | ||
| 971 | - <constraint firstItem="r7p-dv-DSl" firstAttribute="width" secondItem="r7p-dv-DSl" secondAttribute="height" multiplier="1:1" id="k0B-79-nNi"/> | ||
| 972 | - </constraints> | ||
| 973 | - <connections> | ||
| 974 | - <outletCollection property="gestureRecognizers" destination="37o-ro-fzU" appends="YES" id="O9Z-Rx-HlO"/> | ||
| 975 | - </connections> | ||
| 976 | - </view> | ||
| 977 | - <view tag="304" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kbX-g6-sux"> | ||
| 978 | - <rect key="frame" x="300" y="40" width="75" height="77"/> | ||
| 979 | - <subviews> | ||
| 980 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="qq" translatesAutoresizingMaskIntoConstraints="NO" id="aRU-3D-39f"> | ||
| 981 | - <rect key="frame" x="20" y="8" width="35" height="35"/> | ||
| 982 | - <constraints> | ||
| 983 | - <constraint firstAttribute="height" constant="35" id="dja-IJ-7gl"/> | ||
| 984 | - </constraints> | ||
| 985 | - <userDefinedRuntimeAttributes> | ||
| 986 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 987 | - <integer key="value" value="15"/> | ||
| 988 | - </userDefinedRuntimeAttribute> | ||
| 989 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 990 | - </userDefinedRuntimeAttributes> | ||
| 991 | - </imageView> | ||
| 992 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="QQ" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aEK-CV-C6L"> | ||
| 993 | - <rect key="frame" x="26" y="51" width="23" height="18"/> | ||
| 994 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 995 | - <nil key="textColor"/> | ||
| 996 | - <nil key="highlightedColor"/> | ||
| 997 | - </label> | ||
| 998 | - </subviews> | ||
| 999 | - <gestureRecognizers/> | ||
| 1000 | - <constraints> | ||
| 1001 | - <constraint firstAttribute="height" constant="77" id="4xk-JQ-U4o"/> | ||
| 1002 | - <constraint firstItem="aRU-3D-39f" firstAttribute="top" secondItem="kbX-g6-sux" secondAttribute="top" constant="8" id="5os-qX-VcT"/> | ||
| 1003 | - <constraint firstAttribute="bottom" secondItem="aEK-CV-C6L" secondAttribute="bottom" constant="8" id="6bb-1v-UHf"/> | ||
| 1004 | - <constraint firstItem="aRU-3D-39f" firstAttribute="width" secondItem="aRU-3D-39f" secondAttribute="height" multiplier="1:1" id="cN8-Yo-Fde"/> | ||
| 1005 | - <constraint firstItem="aEK-CV-C6L" firstAttribute="centerX" secondItem="kbX-g6-sux" secondAttribute="centerX" id="ieQ-kc-dHS"/> | ||
| 1006 | - <constraint firstItem="aRU-3D-39f" firstAttribute="centerX" secondItem="kbX-g6-sux" secondAttribute="centerX" id="tCz-a3-imz"/> | ||
| 1007 | - </constraints> | ||
| 1008 | - <connections> | ||
| 1009 | - <outletCollection property="gestureRecognizers" destination="L37-sL-3l2" appends="YES" id="zR2-Ai-yOx"/> | ||
| 1010 | - </connections> | ||
| 1011 | - </view> | ||
| 1012 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SYF-Sz-SHh"> | ||
| 1013 | - <rect key="frame" x="0.0" y="39" width="375" height="1"/> | ||
| 1014 | - <color key="backgroundColor" red="0.87843137250000003" green="0.87843137250000003" blue="0.87843137250000003" alpha="1" colorSpace="calibratedRGB"/> | ||
| 1015 | - <constraints> | ||
| 1016 | - <constraint firstAttribute="height" constant="1" id="ttr-bE-uj1"/> | ||
| 1017 | - </constraints> | ||
| 1018 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1019 | - <nil key="textColor"/> | ||
| 1020 | - <nil key="highlightedColor"/> | ||
| 1021 | - </label> | ||
| 1022 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="邀请观看" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3gc-Uq-c56"> | ||
| 1023 | - <rect key="frame" x="157" y="8" width="61.5" height="18"/> | ||
| 1024 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1025 | - <nil key="textColor"/> | ||
| 1026 | - <nil key="highlightedColor"/> | ||
| 1027 | - </label> | ||
| 1028 | - <view tag="302" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IJm-lc-X8k"> | ||
| 1029 | - <rect key="frame" x="150" y="40" width="75" height="77"/> | ||
| 1030 | - <subviews> | ||
| 1031 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="qzone" translatesAutoresizingMaskIntoConstraints="NO" id="yW2-lP-OU8"> | ||
| 1032 | - <rect key="frame" x="20" y="8" width="35" height="35"/> | ||
| 1033 | - <constraints> | ||
| 1034 | - <constraint firstAttribute="height" constant="35" id="RoH-R0-j1G"/> | ||
| 1035 | - </constraints> | ||
| 1036 | - <userDefinedRuntimeAttributes> | ||
| 1037 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 1038 | - <integer key="value" value="15"/> | ||
| 1039 | - </userDefinedRuntimeAttribute> | ||
| 1040 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 1041 | - </userDefinedRuntimeAttributes> | ||
| 1042 | - </imageView> | ||
| 1043 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="QQ空间" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mdb-Oh-zal"> | ||
| 1044 | - <rect key="frame" x="11" y="51" width="53.5" height="18"/> | ||
| 1045 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1046 | - <nil key="textColor"/> | ||
| 1047 | - <nil key="highlightedColor"/> | ||
| 1048 | - </label> | ||
| 1049 | - </subviews> | ||
| 1050 | - <gestureRecognizers/> | ||
| 1051 | - <constraints> | ||
| 1052 | - <constraint firstItem="yW2-lP-OU8" firstAttribute="centerX" secondItem="IJm-lc-X8k" secondAttribute="centerX" id="36g-hR-6zF"/> | ||
| 1053 | - <constraint firstItem="yW2-lP-OU8" firstAttribute="top" secondItem="IJm-lc-X8k" secondAttribute="top" constant="8" id="9MM-yq-owT"/> | ||
| 1054 | - <constraint firstItem="mdb-Oh-zal" firstAttribute="centerX" secondItem="IJm-lc-X8k" secondAttribute="centerX" id="Tfy-zq-3cN"/> | ||
| 1055 | - <constraint firstItem="yW2-lP-OU8" firstAttribute="width" secondItem="yW2-lP-OU8" secondAttribute="height" multiplier="1:1" id="XrD-Tx-UkY"/> | ||
| 1056 | - <constraint firstAttribute="height" constant="77" id="dCT-mx-ucb"/> | ||
| 1057 | - <constraint firstAttribute="bottom" secondItem="mdb-Oh-zal" secondAttribute="bottom" constant="8" id="q2g-h5-kMj"/> | ||
| 1058 | - </constraints> | ||
| 1059 | - <connections> | ||
| 1060 | - <outletCollection property="gestureRecognizers" destination="sx6-py-tDw" appends="YES" id="4Sa-2j-Ctd"/> | ||
| 1061 | - </connections> | ||
| 1062 | - </view> | ||
| 1063 | - </subviews> | ||
| 1064 | - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 1065 | - <constraints> | ||
| 1066 | - <constraint firstItem="IJm-lc-X8k" firstAttribute="top" secondItem="P8Z-Du-6lp" secondAttribute="top" id="7Kh-ka-quA"/> | ||
| 1067 | - <constraint firstItem="Kls-GS-2AC" firstAttribute="top" secondItem="P8Z-Du-6lp" secondAttribute="top" id="AL3-tw-Lzh"/> | ||
| 1068 | - <constraint firstItem="zaf-gZ-eAK" firstAttribute="leading" secondItem="P8Z-Du-6lp" secondAttribute="trailing" id="BOf-MU-4PE"/> | ||
| 1069 | - <constraint firstItem="IJm-lc-X8k" firstAttribute="leading" secondItem="zaf-gZ-eAK" secondAttribute="trailing" id="EuJ-8x-3gr"/> | ||
| 1070 | - <constraint firstAttribute="trailing" secondItem="kbX-g6-sux" secondAttribute="trailing" id="Kmw-KM-uon"/> | ||
| 1071 | - <constraint firstAttribute="trailing" secondItem="SYF-Sz-SHh" secondAttribute="trailing" id="Kxx-vM-1Wz"/> | ||
| 1072 | - <constraint firstAttribute="height" constant="120" id="MeY-Uj-6sd"/> | ||
| 1073 | - <constraint firstItem="Kls-GS-2AC" firstAttribute="width" secondItem="P8Z-Du-6lp" secondAttribute="width" id="NA1-6P-EUR"/> | ||
| 1074 | - <constraint firstItem="IJm-lc-X8k" firstAttribute="width" secondItem="P8Z-Du-6lp" secondAttribute="width" id="O4S-db-3qk"/> | ||
| 1075 | - <constraint firstItem="P8Z-Du-6lp" firstAttribute="leading" secondItem="P42-ve-BjH" secondAttribute="leading" id="QHB-gf-cNj"/> | ||
| 1076 | - <constraint firstItem="SYF-Sz-SHh" firstAttribute="top" secondItem="P42-ve-BjH" secondAttribute="top" constant="39" id="VhR-wh-Szd"/> | ||
| 1077 | - <constraint firstItem="kbX-g6-sux" firstAttribute="leading" secondItem="Kls-GS-2AC" secondAttribute="trailing" id="XGg-z1-tmL"/> | ||
| 1078 | - <constraint firstItem="SYF-Sz-SHh" firstAttribute="leading" secondItem="P42-ve-BjH" secondAttribute="leading" id="baN-Hf-d2U"/> | ||
| 1079 | - <constraint firstItem="3gc-Uq-c56" firstAttribute="top" secondItem="P42-ve-BjH" secondAttribute="top" constant="8" id="nvs-2P-YtG"/> | ||
| 1080 | - <constraint firstItem="kbX-g6-sux" firstAttribute="top" secondItem="P8Z-Du-6lp" secondAttribute="top" id="qIM-s0-U7Y"/> | ||
| 1081 | - <constraint firstItem="Kls-GS-2AC" firstAttribute="leading" secondItem="IJm-lc-X8k" secondAttribute="trailing" id="qsA-R3-h27"/> | ||
| 1082 | - <constraint firstItem="kbX-g6-sux" firstAttribute="width" secondItem="P8Z-Du-6lp" secondAttribute="width" id="qse-Cf-yaS"/> | ||
| 1083 | - <constraint firstItem="zaf-gZ-eAK" firstAttribute="width" secondItem="P8Z-Du-6lp" secondAttribute="width" id="rxO-cf-E4V"/> | ||
| 1084 | - <constraint firstItem="P8Z-Du-6lp" firstAttribute="top" secondItem="P42-ve-BjH" secondAttribute="top" constant="40" id="rxt-tU-x1M"/> | ||
| 1085 | - <constraint firstItem="zaf-gZ-eAK" firstAttribute="top" secondItem="P8Z-Du-6lp" secondAttribute="top" id="uRo-Mi-RRA"/> | ||
| 1086 | - <constraint firstItem="3gc-Uq-c56" firstAttribute="centerX" secondItem="P42-ve-BjH" secondAttribute="centerX" id="v04-EX-2HT"/> | ||
| 1087 | - </constraints> | ||
| 1088 | - <userDefinedRuntimeAttributes> | ||
| 1089 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 1090 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 1091 | - <integer key="value" value="5"/> | ||
| 1092 | - </userDefinedRuntimeAttribute> | ||
| 1093 | - </userDefinedRuntimeAttributes> | ||
| 1094 | - </view> | ||
| 1095 | - </subviews> | ||
| 1096 | - <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> | ||
| 1097 | - <constraints> | ||
| 1098 | - <constraint firstItem="Sc7-qO-bKG" firstAttribute="top" secondItem="9Be-Gd-Fuj" secondAttribute="bottom" id="C3k-k6-TWf"/> | ||
| 1099 | - <constraint firstAttribute="trailing" secondItem="vlE-aQ-nqw" secondAttribute="trailing" id="EsU-Ff-FZJ"/> | ||
| 1100 | - <constraint firstItem="vlE-aQ-nqw" firstAttribute="top" secondItem="IPe-Sx-T84" secondAttribute="bottom" constant="-20" id="FeO-Wf-YlX"/> | ||
| 1101 | - <constraint firstAttribute="trailing" secondItem="P42-ve-BjH" secondAttribute="trailing" id="KEI-Ep-k8N"/> | ||
| 1102 | - <constraint firstItem="Sc7-qO-bKG" firstAttribute="top" secondItem="vlE-aQ-nqw" secondAttribute="bottom" id="caj-uG-734"/> | ||
| 1103 | - <constraint firstAttribute="bottom" secondItem="P42-ve-BjH" secondAttribute="bottom" constant="-120" id="gO8-va-sf6"/> | ||
| 1104 | - <constraint firstItem="vlE-aQ-nqw" firstAttribute="leading" secondItem="jQ8-h6-mT6" secondAttribute="leading" id="j2e-kT-2Yl"/> | ||
| 1105 | - <constraint firstItem="P42-ve-BjH" firstAttribute="leading" secondItem="jQ8-h6-mT6" secondAttribute="leading" id="r9B-i5-sW9"/> | ||
| 1106 | - </constraints> | ||
| 1107 | - </view> | ||
| 1108 | - <connections> | ||
| 1109 | - <outlet property="activeNum" destination="tYh-h6-LqD" id="PMQ-Sx-wTZ"/> | ||
| 1110 | - <outlet property="btnFlagLabel" destination="Dtr-lD-40Z" id="JvP-pj-fW3"/> | ||
| 1111 | - <outlet property="chatLocalView" destination="aS9-E3-mNY" id="Yiw-ul-dFx"/> | ||
| 1112 | - <outlet property="chatTableView" destination="em3-vO-QVJ" id="lWz-gP-Lz9"/> | ||
| 1113 | - <outlet property="leaveMessageLocalView" destination="qrN-55-eYX" id="Jkt-yZ-KvS"/> | ||
| 1114 | - <outlet property="leaveMessageTableView" destination="AhT-H8-j9U" id="F2J-Z5-ZNq"/> | ||
| 1115 | - <outlet property="screenHorizontalBtn" destination="jfi-VH-N8h" id="PUB-jO-5a2"/> | ||
| 1116 | - <outlet property="scrollBottom" destination="C3k-k6-TWf" id="b8K-kA-0Ty"/> | ||
| 1117 | - <outlet property="scrollHeight" destination="ms0-t8-rcg" id="J2J-av-sVV"/> | ||
| 1118 | - <outlet property="scrollView" destination="TTA-ZF-axu" id="bqb-bA-aOf"/> | ||
| 1119 | - <outlet property="scrollViewContanctWidth" destination="NiA-Ck-nKc" id="Bh6-yW-KgM"/> | ||
| 1120 | - <outlet property="scrollviewLocalView" destination="9Be-Gd-Fuj" id="BSl-dy-sym"/> | ||
| 1121 | - <outlet property="shareView" destination="P42-ve-BjH" id="wJG-XT-3PT"/> | ||
| 1122 | - <outlet property="shareViewBottom" destination="gO8-va-sf6" id="h3e-PX-bjx"/> | ||
| 1123 | - <outlet property="sunTitleView" destination="Uz7-8G-gQ8" id="98M-Eo-213"/> | ||
| 1124 | - <outlet property="userImage" destination="BkR-Pl-94U" id="heL-L9-ubf"/> | ||
| 1125 | - <outlet property="userName" destination="dDF-Nn-OsE" id="ToB-NH-mSf"/> | ||
| 1126 | - </connections> | ||
| 1127 | - </viewController> | ||
| 1128 | - <placeholder placeholderIdentifier="IBFirstResponder" id="Hxh-f6-OLQ" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 1129 | - <tapGestureRecognizer id="V53-wf-WfU"> | ||
| 1130 | - <connections> | ||
| 1131 | - <action selector="shareTapGestrueClick:" destination="0QU-Wv-Ra6" id="rru-Mf-loz"/> | ||
| 1132 | - </connections> | ||
| 1133 | - </tapGestureRecognizer> | ||
| 1134 | - <tapGestureRecognizer id="8Af-h0-OQP"> | ||
| 1135 | - <connections> | ||
| 1136 | - <action selector="shareTapGestrueClick:" destination="0QU-Wv-Ra6" id="sze-8S-jdv"/> | ||
| 1137 | - </connections> | ||
| 1138 | - </tapGestureRecognizer> | ||
| 1139 | - <tapGestureRecognizer id="37o-ro-fzU"> | ||
| 1140 | - <connections> | ||
| 1141 | - <action selector="shareTapGestrueClick:" destination="0QU-Wv-Ra6" id="qqe-wI-PUF"/> | ||
| 1142 | - </connections> | ||
| 1143 | - </tapGestureRecognizer> | ||
| 1144 | - <tapGestureRecognizer id="L37-sL-3l2"> | ||
| 1145 | - <connections> | ||
| 1146 | - <action selector="shareTapGestrueClick:" destination="0QU-Wv-Ra6" id="Kei-Nk-GjP"/> | ||
| 1147 | - </connections> | ||
| 1148 | - </tapGestureRecognizer> | ||
| 1149 | - <tapGestureRecognizer id="sx6-py-tDw"> | ||
| 1150 | - <connections> | ||
| 1151 | - <action selector="shareTapGestrueClick:" destination="0QU-Wv-Ra6" id="7Nl-7C-KfI"/> | ||
| 1152 | - </connections> | ||
| 1153 | - </tapGestureRecognizer> | ||
| 1154 | - <tapGestureRecognizer id="WoY-4r-3yQ"> | ||
| 1155 | - <connections> | ||
| 1156 | - <action selector="subTitleTapClickAction:" destination="0QU-Wv-Ra6" id="dU5-pW-kSi"/> | ||
| 1157 | - </connections> | ||
| 1158 | - </tapGestureRecognizer> | ||
| 1159 | - </objects> | ||
| 1160 | - <point key="canvasLocation" x="1349.5999999999999" y="1504.4977511244379"/> | ||
| 1161 | - </scene> | ||
| 1162 | - <!--Alivc Infor View Controller--> | ||
| 1163 | - <scene sceneID="8dY-Ix-NGM"> | ||
| 1164 | - <objects> | ||
| 1165 | - <viewController storyboardIdentifier="AlivcInforViewControllerVC" id="d39-wE-zix" customClass="AlivcInforViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 1166 | - <layoutGuides> | ||
| 1167 | - <viewControllerLayoutGuide type="top" id="ANo-ib-gS2"/> | ||
| 1168 | - <viewControllerLayoutGuide type="bottom" id="H6L-Wb-VqY"/> | ||
| 1169 | - </layoutGuides> | ||
| 1170 | - <view key="view" contentMode="scaleToFill" id="3ny-ok-AEL"> | ||
| 1171 | - <rect key="frame" x="0.0" y="0.0" width="125" height="218"/> | ||
| 1172 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 1173 | - <subviews> | ||
| 1174 | - <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9tF-yR-T0z"> | ||
| 1175 | - <rect key="frame" x="0.0" y="0.0" width="125" height="218"/> | ||
| 1176 | - <subviews> | ||
| 1177 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="acR-7M-ILC"> | ||
| 1178 | - <rect key="frame" x="0.0" y="0.0" width="125" height="312"/> | ||
| 1179 | - <subviews> | ||
| 1180 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="1NM-LN-fWg"> | ||
| 1181 | - <rect key="frame" x="20" y="8" width="60" height="60"/> | ||
| 1182 | - <constraints> | ||
| 1183 | - <constraint firstAttribute="height" constant="60" id="9US-OA-A67"/> | ||
| 1184 | - <constraint firstAttribute="width" secondItem="1NM-LN-fWg" secondAttribute="height" multiplier="1:1" id="ocs-HW-oU7"/> | ||
| 1185 | - </constraints> | ||
| 1186 | - </imageView> | ||
| 1187 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cxc-E8-kWY"> | ||
| 1188 | - <rect key="frame" x="88" y="18" width="33" height="18"/> | ||
| 1189 | - <constraints> | ||
| 1190 | - <constraint firstAttribute="height" constant="18" id="mWJ-Qv-hNu"/> | ||
| 1191 | - </constraints> | ||
| 1192 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 1193 | - <nil key="textColor"/> | ||
| 1194 | - <nil key="highlightedColor"/> | ||
| 1195 | - </label> | ||
| 1196 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8A5-RI-xgo"> | ||
| 1197 | - <rect key="frame" x="88" y="44" width="33" height="16"/> | ||
| 1198 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 1199 | - <nil key="textColor"/> | ||
| 1200 | - <nil key="highlightedColor"/> | ||
| 1201 | - </label> | ||
| 1202 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5QO-FW-pOX"> | ||
| 1203 | - <rect key="frame" x="0.0" y="76" width="125" height="1"/> | ||
| 1204 | - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1205 | - <constraints> | ||
| 1206 | - <constraint firstAttribute="height" constant="1" id="gmr-cH-6Zj"/> | ||
| 1207 | - </constraints> | ||
| 1208 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1209 | - <nil key="textColor"/> | ||
| 1210 | - <nil key="highlightedColor"/> | ||
| 1211 | - </label> | ||
| 1212 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tSC-tg-wCr"> | ||
| 1213 | - <rect key="frame" x="20" y="114" width="33" height="16"/> | ||
| 1214 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 1215 | - <nil key="textColor"/> | ||
| 1216 | - <nil key="highlightedColor"/> | ||
| 1217 | - </label> | ||
| 1218 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="is0-wi-nUw"> | ||
| 1219 | - <rect key="frame" x="0.0" y="138" width="125" height="1"/> | ||
| 1220 | - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1221 | - <constraints> | ||
| 1222 | - <constraint firstAttribute="height" constant="1" id="CND-Gu-2G2"/> | ||
| 1223 | - </constraints> | ||
| 1224 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1225 | - <nil key="textColor"/> | ||
| 1226 | - <nil key="highlightedColor"/> | ||
| 1227 | - </label> | ||
| 1228 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="3sO-SO-H07"> | ||
| 1229 | - <rect key="frame" x="55" y="25.5" width="50" height="25"/> | ||
| 1230 | - <color key="backgroundColor" red="0.98823529409999999" green="0.52941176469999995" blue="0.15686274510000001" alpha="1" colorSpace="calibratedRGB"/> | ||
| 1231 | - <constraints> | ||
| 1232 | - <constraint firstAttribute="width" constant="50" id="RwC-Vd-fEz"/> | ||
| 1233 | - <constraint firstAttribute="height" constant="25" id="bAi-Ox-3bw"/> | ||
| 1234 | - </constraints> | ||
| 1235 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 1236 | - <state key="normal" title="+ 关注"> | ||
| 1237 | - <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1238 | - </state> | ||
| 1239 | - <connections> | ||
| 1240 | - <action selector="isActionClick:" destination="d39-wE-zix" eventType="touchUpInside" id="rp7-rb-TEC"/> | ||
| 1241 | - </connections> | ||
| 1242 | - </button> | ||
| 1243 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wQt-RG-nUJ"> | ||
| 1244 | - <rect key="frame" x="20" y="85" width="61.5" height="21"/> | ||
| 1245 | - <subviews> | ||
| 1246 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="直播公告" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="J5Z-8U-lnf"> | ||
| 1247 | - <rect key="frame" x="8" y="0.0" width="53.5" height="21"/> | ||
| 1248 | - <color key="backgroundColor" red="0.98823529409999999" green="0.52941176469999995" blue="0.15686274510000001" alpha="1" colorSpace="calibratedRGB"/> | ||
| 1249 | - <constraints> | ||
| 1250 | - <constraint firstAttribute="height" constant="21" id="Aqc-vP-MMK"/> | ||
| 1251 | - </constraints> | ||
| 1252 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 1253 | - <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1254 | - <nil key="highlightedColor"/> | ||
| 1255 | - </label> | ||
| 1256 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZZf-pb-xEO"> | ||
| 1257 | - <rect key="frame" x="0.0" y="0.0" width="4" height="21"/> | ||
| 1258 | - <color key="backgroundColor" red="0.98823529409999999" green="0.52941176469999995" blue="0.15686274510000001" alpha="1" colorSpace="calibratedRGB"/> | ||
| 1259 | - <constraints> | ||
| 1260 | - <constraint firstAttribute="width" constant="4" id="BB6-LA-gHy"/> | ||
| 1261 | - </constraints> | ||
| 1262 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1263 | - <nil key="textColor"/> | ||
| 1264 | - <nil key="highlightedColor"/> | ||
| 1265 | - </label> | ||
| 1266 | - </subviews> | ||
| 1267 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1268 | - <constraints> | ||
| 1269 | - <constraint firstItem="ZZf-pb-xEO" firstAttribute="top" secondItem="wQt-RG-nUJ" secondAttribute="top" id="1eL-Je-eN5"/> | ||
| 1270 | - <constraint firstItem="ZZf-pb-xEO" firstAttribute="leading" secondItem="wQt-RG-nUJ" secondAttribute="leading" id="8Ix-Z1-0yT"/> | ||
| 1271 | - <constraint firstAttribute="bottom" secondItem="ZZf-pb-xEO" secondAttribute="bottom" id="HzU-Ls-hUK"/> | ||
| 1272 | - <constraint firstAttribute="bottom" secondItem="J5Z-8U-lnf" secondAttribute="bottom" id="Oj3-DH-tr5"/> | ||
| 1273 | - <constraint firstAttribute="height" constant="21" id="TRS-6z-BKV"/> | ||
| 1274 | - <constraint firstItem="J5Z-8U-lnf" firstAttribute="leading" secondItem="ZZf-pb-xEO" secondAttribute="trailing" constant="4" id="XCh-tb-nqB"/> | ||
| 1275 | - <constraint firstItem="J5Z-8U-lnf" firstAttribute="top" secondItem="wQt-RG-nUJ" secondAttribute="top" id="kfd-pr-KWg"/> | ||
| 1276 | - <constraint firstItem="ZZf-pb-xEO" firstAttribute="leading" secondItem="wQt-RG-nUJ" secondAttribute="leading" id="smB-hM-RwJ"/> | ||
| 1277 | - <constraint firstAttribute="trailing" secondItem="J5Z-8U-lnf" secondAttribute="trailing" id="vPT-G5-VxT"/> | ||
| 1278 | - </constraints> | ||
| 1279 | - </view> | ||
| 1280 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1n3-wj-Hjr"> | ||
| 1281 | - <rect key="frame" x="20" y="147" width="61.5" height="21"/> | ||
| 1282 | - <subviews> | ||
| 1283 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="直播附件" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3jz-Au-RMs"> | ||
| 1284 | - <rect key="frame" x="8" y="0.0" width="53.5" height="21"/> | ||
| 1285 | - <color key="backgroundColor" red="0.98823529409999999" green="0.52941176469999995" blue="0.15686274510000001" alpha="1" colorSpace="calibratedRGB"/> | ||
| 1286 | - <constraints> | ||
| 1287 | - <constraint firstAttribute="height" constant="21" id="0pH-N0-51H"/> | ||
| 1288 | - </constraints> | ||
| 1289 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 1290 | - <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1291 | - <nil key="highlightedColor"/> | ||
| 1292 | - </label> | ||
| 1293 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MDr-ci-fWg"> | ||
| 1294 | - <rect key="frame" x="0.0" y="0.0" width="4" height="21"/> | ||
| 1295 | - <color key="backgroundColor" red="0.98823529409999999" green="0.52941176469999995" blue="0.15686274510000001" alpha="1" colorSpace="calibratedRGB"/> | ||
| 1296 | - <constraints> | ||
| 1297 | - <constraint firstAttribute="width" constant="4" id="hIu-GW-QtX"/> | ||
| 1298 | - </constraints> | ||
| 1299 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1300 | - <nil key="textColor"/> | ||
| 1301 | - <nil key="highlightedColor"/> | ||
| 1302 | - </label> | ||
| 1303 | - </subviews> | ||
| 1304 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1305 | - <constraints> | ||
| 1306 | - <constraint firstItem="MDr-ci-fWg" firstAttribute="leading" secondItem="1n3-wj-Hjr" secondAttribute="leading" id="5IP-Jd-its"/> | ||
| 1307 | - <constraint firstAttribute="height" constant="21" id="5cj-bR-93Q"/> | ||
| 1308 | - <constraint firstItem="MDr-ci-fWg" firstAttribute="top" secondItem="1n3-wj-Hjr" secondAttribute="top" id="8uj-Fv-XSV"/> | ||
| 1309 | - <constraint firstAttribute="trailing" secondItem="3jz-Au-RMs" secondAttribute="trailing" id="90Q-DD-Vm2"/> | ||
| 1310 | - <constraint firstAttribute="bottom" secondItem="MDr-ci-fWg" secondAttribute="bottom" id="Nsh-pq-P33"/> | ||
| 1311 | - <constraint firstAttribute="bottom" secondItem="3jz-Au-RMs" secondAttribute="bottom" id="apx-0o-E1m"/> | ||
| 1312 | - <constraint firstItem="3jz-Au-RMs" firstAttribute="top" secondItem="1n3-wj-Hjr" secondAttribute="top" id="bIl-qY-ARO"/> | ||
| 1313 | - <constraint firstItem="3jz-Au-RMs" firstAttribute="leading" secondItem="MDr-ci-fWg" secondAttribute="trailing" constant="4" id="dS6-qV-9S5"/> | ||
| 1314 | - <constraint firstItem="MDr-ci-fWg" firstAttribute="leading" secondItem="1n3-wj-Hjr" secondAttribute="leading" id="liZ-8A-8bC"/> | ||
| 1315 | - </constraints> | ||
| 1316 | - </view> | ||
| 1317 | - </subviews> | ||
| 1318 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1319 | - <constraints> | ||
| 1320 | - <constraint firstItem="8A5-RI-xgo" firstAttribute="top" secondItem="cxc-E8-kWY" secondAttribute="bottom" constant="8" id="024-JR-nKJ"/> | ||
| 1321 | - <constraint firstItem="cxc-E8-kWY" firstAttribute="leading" secondItem="1NM-LN-fWg" secondAttribute="trailing" constant="8" id="47H-Tu-Bk9"/> | ||
| 1322 | - <constraint firstItem="tSC-tg-wCr" firstAttribute="top" secondItem="wQt-RG-nUJ" secondAttribute="bottom" constant="8" id="7M3-I2-gi6"/> | ||
| 1323 | - <constraint firstItem="1n3-wj-Hjr" firstAttribute="top" secondItem="is0-wi-nUw" secondAttribute="bottom" constant="8" id="FaI-IT-z0e"/> | ||
| 1324 | - <constraint firstItem="wQt-RG-nUJ" firstAttribute="top" secondItem="5QO-FW-pOX" secondAttribute="bottom" constant="8" id="IAJ-dm-qGk"/> | ||
| 1325 | - <constraint firstAttribute="trailing" secondItem="3sO-SO-H07" secondAttribute="trailing" constant="20" id="LHo-GJ-rUu"/> | ||
| 1326 | - <constraint firstItem="5QO-FW-pOX" firstAttribute="top" secondItem="1NM-LN-fWg" secondAttribute="bottom" constant="8" id="PSA-Dg-3f6"/> | ||
| 1327 | - <constraint firstAttribute="trailing" secondItem="is0-wi-nUw" secondAttribute="trailing" id="Pq6-fp-4wx"/> | ||
| 1328 | - <constraint firstItem="is0-wi-nUw" firstAttribute="top" secondItem="tSC-tg-wCr" secondAttribute="bottom" constant="8" id="Vtn-HM-cn8"/> | ||
| 1329 | - <constraint firstItem="1n3-wj-Hjr" firstAttribute="leading" secondItem="acR-7M-ILC" secondAttribute="leading" constant="20" id="fXd-KC-afc"/> | ||
| 1330 | - <constraint firstItem="8A5-RI-xgo" firstAttribute="leading" secondItem="1NM-LN-fWg" secondAttribute="trailing" constant="8" id="fse-aL-lnU"/> | ||
| 1331 | - <constraint firstItem="3sO-SO-H07" firstAttribute="centerY" secondItem="1NM-LN-fWg" secondAttribute="centerY" id="gsC-zK-vzf"/> | ||
| 1332 | - <constraint firstItem="wQt-RG-nUJ" firstAttribute="leading" secondItem="acR-7M-ILC" secondAttribute="leading" constant="20" id="ht1-nT-D68"/> | ||
| 1333 | - <constraint firstItem="1NM-LN-fWg" firstAttribute="top" secondItem="acR-7M-ILC" secondAttribute="top" constant="8" id="k2b-Xm-5Q8"/> | ||
| 1334 | - <constraint firstItem="tSC-tg-wCr" firstAttribute="leading" secondItem="acR-7M-ILC" secondAttribute="leading" constant="20" id="kaM-mK-aFO"/> | ||
| 1335 | - <constraint firstItem="is0-wi-nUw" firstAttribute="leading" secondItem="acR-7M-ILC" secondAttribute="leading" id="l6u-Vv-0hx"/> | ||
| 1336 | - <constraint firstItem="5QO-FW-pOX" firstAttribute="leading" secondItem="acR-7M-ILC" secondAttribute="leading" id="pEX-Xm-k5Y"/> | ||
| 1337 | - <constraint firstAttribute="trailing" secondItem="5QO-FW-pOX" secondAttribute="trailing" id="t3b-oF-nOK"/> | ||
| 1338 | - <constraint firstAttribute="height" constant="312" id="uYt-2B-tKs"/> | ||
| 1339 | - <constraint firstItem="1NM-LN-fWg" firstAttribute="leading" secondItem="acR-7M-ILC" secondAttribute="leading" constant="20" id="uf3-LY-GTB"/> | ||
| 1340 | - <constraint firstItem="cxc-E8-kWY" firstAttribute="top" secondItem="acR-7M-ILC" secondAttribute="top" constant="18" id="wGV-Tn-i9G"/> | ||
| 1341 | - </constraints> | ||
| 1342 | - </view> | ||
| 1343 | - </subviews> | ||
| 1344 | - <constraints> | ||
| 1345 | - <constraint firstAttribute="trailing" secondItem="acR-7M-ILC" secondAttribute="trailing" id="3CR-HA-AAl"/> | ||
| 1346 | - <constraint firstItem="acR-7M-ILC" firstAttribute="top" secondItem="9tF-yR-T0z" secondAttribute="top" id="Fvq-y2-oIL"/> | ||
| 1347 | - <constraint firstItem="acR-7M-ILC" firstAttribute="leading" secondItem="9tF-yR-T0z" secondAttribute="leading" id="cpr-2b-3sD"/> | ||
| 1348 | - <constraint firstItem="acR-7M-ILC" firstAttribute="centerX" secondItem="9tF-yR-T0z" secondAttribute="centerX" id="fEp-P4-8si"/> | ||
| 1349 | - <constraint firstAttribute="bottom" secondItem="acR-7M-ILC" secondAttribute="bottom" id="r0j-qD-6U3"/> | ||
| 1350 | - </constraints> | ||
| 1351 | - </scrollView> | ||
| 1352 | - </subviews> | ||
| 1353 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1354 | - <constraints> | ||
| 1355 | - <constraint firstAttribute="bottom" secondItem="9tF-yR-T0z" secondAttribute="bottom" id="0Dj-jG-e9m"/> | ||
| 1356 | - <constraint firstAttribute="trailing" secondItem="9tF-yR-T0z" secondAttribute="trailing" id="9l6-NM-7tO"/> | ||
| 1357 | - <constraint firstItem="9tF-yR-T0z" firstAttribute="leading" secondItem="3ny-ok-AEL" secondAttribute="leading" id="gG2-qc-eQd"/> | ||
| 1358 | - <constraint firstItem="9tF-yR-T0z" firstAttribute="top" secondItem="3ny-ok-AEL" secondAttribute="top" id="thi-nI-3Pb"/> | ||
| 1359 | - </constraints> | ||
| 1360 | - </view> | ||
| 1361 | - <connections> | ||
| 1362 | - <outlet property="alivcAccessories" destination="1n3-wj-Hjr" id="feB-3F-0Xp"/> | ||
| 1363 | - <outlet property="alivcInfor" destination="tSC-tg-wCr" id="SQC-j1-W52"/> | ||
| 1364 | - <outlet property="contentView" destination="acR-7M-ILC" id="1xq-Ry-qgx"/> | ||
| 1365 | - <outlet property="contentheight" destination="uYt-2B-tKs" id="Cb2-5p-14A"/> | ||
| 1366 | - <outlet property="fileLine" destination="is0-wi-nUw" id="q2L-kl-LGU"/> | ||
| 1367 | - <outlet property="image" destination="1NM-LN-fWg" id="thF-27-7aO"/> | ||
| 1368 | - <outlet property="nickName" destination="cxc-E8-kWY" id="G7p-7S-2lC"/> | ||
| 1369 | - <outlet property="remainBtn" destination="3sO-SO-H07" id="IyD-lt-Lzk"/> | ||
| 1370 | - <outlet property="scrollView" destination="9tF-yR-T0z" id="1Lr-Ne-Eb4"/> | ||
| 1371 | - <outlet property="userNum" destination="8A5-RI-xgo" id="lWE-HN-8B4"/> | ||
| 1372 | - </connections> | ||
| 1373 | - </viewController> | ||
| 1374 | - <placeholder placeholderIdentifier="IBFirstResponder" id="c2P-49-2wz" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 1375 | - </objects> | ||
| 1376 | - <point key="canvasLocation" x="2124" y="1552.6236881559221"/> | ||
| 1377 | - </scene> | ||
| 1378 | - <!--Title--> | ||
| 1379 | - <scene sceneID="8qw-Kh-TAE"> | ||
| 1380 | - <objects> | ||
| 1381 | - <viewController storyboardIdentifier="LiveVideoSettingViewControllerVC" id="jwk-18-f3u" customClass="LiveVideoSettingViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 1382 | - <layoutGuides> | ||
| 1383 | - <viewControllerLayoutGuide type="top" id="ttP-R4-29X"/> | ||
| 1384 | - <viewControllerLayoutGuide type="bottom" id="aD6-6d-DV6"/> | ||
| 1385 | - </layoutGuides> | ||
| 1386 | - <view key="view" contentMode="scaleToFill" id="rK8-pU-53K"> | ||
| 1387 | - <rect key="frame" x="0.0" y="0.0" width="375" height="936"/> | ||
| 1388 | - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
| 1389 | - <subviews> | ||
| 1390 | - <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="goU-wr-35O"> | ||
| 1391 | - <rect key="frame" x="0.0" y="0.0" width="375" height="936"/> | ||
| 1392 | - <subviews> | ||
| 1393 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="lNX-yU-h0E"> | ||
| 1394 | - <rect key="frame" x="0.0" y="0.0" width="375" height="872"/> | ||
| 1395 | - <subviews> | ||
| 1396 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Ojc-oe-kTU"> | ||
| 1397 | - <rect key="frame" x="0.0" y="0.0" width="375" height="142"/> | ||
| 1398 | - <subviews> | ||
| 1399 | - <imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="default" translatesAutoresizingMaskIntoConstraints="NO" id="b1d-Mx-K15"> | ||
| 1400 | - <rect key="frame" x="0.0" y="0.0" width="375" height="141"/> | ||
| 1401 | - </imageView> | ||
| 1402 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hgJ-Y4-7fb"> | ||
| 1403 | - <rect key="frame" x="0.0" y="141" width="375" height="1"/> | ||
| 1404 | - <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1405 | - <constraints> | ||
| 1406 | - <constraint firstAttribute="height" constant="1" id="1z3-NU-Z1H"/> | ||
| 1407 | - </constraints> | ||
| 1408 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1409 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1410 | - <nil key="highlightedColor"/> | ||
| 1411 | - </label> | ||
| 1412 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="点击上传直播封面" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Jpj-0w-YcL"> | ||
| 1413 | - <rect key="frame" x="8" y="104" width="359" height="17"/> | ||
| 1414 | - <fontDescription key="fontDescription" type="system" pointSize="14"/> | ||
| 1415 | - <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1416 | - <nil key="highlightedColor"/> | ||
| 1417 | - </label> | ||
| 1418 | - <imageView contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="上传封面.png" translatesAutoresizingMaskIntoConstraints="NO" id="1TQ-Zo-YPJ"> | ||
| 1419 | - <rect key="frame" x="162.5" y="33" width="50" height="50"/> | ||
| 1420 | - <gestureRecognizers/> | ||
| 1421 | - <constraints> | ||
| 1422 | - <constraint firstAttribute="height" constant="50" id="1ft-Qj-Fo0"/> | ||
| 1423 | - <constraint firstAttribute="width" constant="50" id="2nB-Xa-LbO"/> | ||
| 1424 | - </constraints> | ||
| 1425 | - <connections> | ||
| 1426 | - <outletCollection property="gestureRecognizers" destination="Sss-jf-R1T" appends="YES" id="eMw-aB-QEk"/> | ||
| 1427 | - </connections> | ||
| 1428 | - </imageView> | ||
| 1429 | - </subviews> | ||
| 1430 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1431 | - <constraints> | ||
| 1432 | - <constraint firstItem="hgJ-Y4-7fb" firstAttribute="leading" secondItem="Ojc-oe-kTU" secondAttribute="leading" id="02Q-LE-zvO"/> | ||
| 1433 | - <constraint firstAttribute="bottom" secondItem="hgJ-Y4-7fb" secondAttribute="bottom" id="5HY-Jd-e0R"/> | ||
| 1434 | - <constraint firstItem="Jpj-0w-YcL" firstAttribute="top" secondItem="1TQ-Zo-YPJ" secondAttribute="bottom" constant="21" id="5Hw-So-Et1"/> | ||
| 1435 | - <constraint firstItem="1TQ-Zo-YPJ" firstAttribute="centerX" secondItem="Ojc-oe-kTU" secondAttribute="centerX" id="8lP-lE-wNu"/> | ||
| 1436 | - <constraint firstAttribute="trailing" secondItem="Jpj-0w-YcL" secondAttribute="trailing" constant="8" id="Jfr-ey-TM1"/> | ||
| 1437 | - <constraint firstAttribute="trailing" secondItem="b1d-Mx-K15" secondAttribute="trailing" id="Jg8-Go-RUp"/> | ||
| 1438 | - <constraint firstAttribute="trailing" secondItem="hgJ-Y4-7fb" secondAttribute="trailing" id="N2k-SC-K7S"/> | ||
| 1439 | - <constraint firstAttribute="bottom" secondItem="b1d-Mx-K15" secondAttribute="bottom" constant="1" id="cag-g5-Fe2"/> | ||
| 1440 | - <constraint firstItem="b1d-Mx-K15" firstAttribute="leading" secondItem="Ojc-oe-kTU" secondAttribute="leading" id="dYo-VA-k9n"/> | ||
| 1441 | - <constraint firstItem="Jpj-0w-YcL" firstAttribute="leading" secondItem="Ojc-oe-kTU" secondAttribute="leading" constant="8" id="fPf-Je-gcL"/> | ||
| 1442 | - <constraint firstItem="b1d-Mx-K15" firstAttribute="top" secondItem="Ojc-oe-kTU" secondAttribute="top" id="iyP-EF-wsR"/> | ||
| 1443 | - <constraint firstItem="1TQ-Zo-YPJ" firstAttribute="centerY" secondItem="Ojc-oe-kTU" secondAttribute="centerY" constant="-13" id="ph2-fG-krA"/> | ||
| 1444 | - <constraint firstAttribute="height" constant="142" id="sB1-aI-dtb"/> | ||
| 1445 | - </constraints> | ||
| 1446 | - </view> | ||
| 1447 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cj3-uZ-M2P"> | ||
| 1448 | - <rect key="frame" x="0.0" y="142" width="375" height="50"/> | ||
| 1449 | - <subviews> | ||
| 1450 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jQp-bu-KNx"> | ||
| 1451 | - <rect key="frame" x="0.0" y="49" width="375" height="1"/> | ||
| 1452 | - <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1453 | - <constraints> | ||
| 1454 | - <constraint firstAttribute="height" constant="1" id="GCq-tm-F8w"/> | ||
| 1455 | - </constraints> | ||
| 1456 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1457 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1458 | - <nil key="highlightedColor"/> | ||
| 1459 | - </label> | ||
| 1460 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="直播间名字设置(必填)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="I9Q-1k-d8Q"> | ||
| 1461 | - <rect key="frame" x="15" y="16" width="150" height="18"/> | ||
| 1462 | - <constraints> | ||
| 1463 | - <constraint firstAttribute="width" constant="150" id="bdO-1G-DeN"/> | ||
| 1464 | - </constraints> | ||
| 1465 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1466 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1467 | - <nil key="highlightedColor"/> | ||
| 1468 | - </label> | ||
| 1469 | - <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="bGE-9j-Jod"> | ||
| 1470 | - <rect key="frame" x="173" y="7.5" width="194" height="35"/> | ||
| 1471 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1472 | - <constraints> | ||
| 1473 | - <constraint firstAttribute="height" constant="35" id="rYQ-Ji-tb1"/> | ||
| 1474 | - </constraints> | ||
| 1475 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1476 | - <textInputTraits key="textInputTraits" autocapitalizationType="sentences" returnKeyType="done"/> | ||
| 1477 | - <connections> | ||
| 1478 | - <outlet property="delegate" destination="jwk-18-f3u" id="2Tj-ON-wua"/> | ||
| 1479 | - </connections> | ||
| 1480 | - </textView> | ||
| 1481 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="如:采购经费,活动经费" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pFN-yb-0ZP"> | ||
| 1482 | - <rect key="frame" x="177" y="16" width="146.5" height="18"/> | ||
| 1483 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1484 | - <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1485 | - <nil key="highlightedColor"/> | ||
| 1486 | - </label> | ||
| 1487 | - </subviews> | ||
| 1488 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1489 | - <constraints> | ||
| 1490 | - <constraint firstAttribute="bottom" secondItem="jQp-bu-KNx" secondAttribute="bottom" id="5vK-5o-4Dr"/> | ||
| 1491 | - <constraint firstAttribute="height" constant="50" id="AyX-au-5ZP"/> | ||
| 1492 | - <constraint firstItem="jQp-bu-KNx" firstAttribute="leading" secondItem="cj3-uZ-M2P" secondAttribute="leading" id="GOc-Cx-uof"/> | ||
| 1493 | - <constraint firstItem="pFN-yb-0ZP" firstAttribute="centerY" secondItem="cj3-uZ-M2P" secondAttribute="centerY" id="Jmu-yt-VNe"/> | ||
| 1494 | - <constraint firstItem="I9Q-1k-d8Q" firstAttribute="leading" secondItem="cj3-uZ-M2P" secondAttribute="leading" constant="15" id="Pvu-9S-GWi"/> | ||
| 1495 | - <constraint firstItem="bGE-9j-Jod" firstAttribute="centerY" secondItem="cj3-uZ-M2P" secondAttribute="centerY" id="T4H-t2-iob"/> | ||
| 1496 | - <constraint firstAttribute="trailing" secondItem="jQp-bu-KNx" secondAttribute="trailing" id="ZAq-ve-oiI"/> | ||
| 1497 | - <constraint firstItem="pFN-yb-0ZP" firstAttribute="leading" secondItem="I9Q-1k-d8Q" secondAttribute="trailing" constant="12" id="cjC-3F-BZN"/> | ||
| 1498 | - <constraint firstAttribute="trailing" secondItem="bGE-9j-Jod" secondAttribute="trailing" constant="8" id="hZe-AI-jG9"/> | ||
| 1499 | - <constraint firstItem="I9Q-1k-d8Q" firstAttribute="centerY" secondItem="cj3-uZ-M2P" secondAttribute="centerY" id="imR-CX-RBO"/> | ||
| 1500 | - <constraint firstItem="bGE-9j-Jod" firstAttribute="leading" secondItem="I9Q-1k-d8Q" secondAttribute="trailing" constant="8" id="kkF-9a-21J"/> | ||
| 1501 | - </constraints> | ||
| 1502 | - </view> | ||
| 1503 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FXE-Uo-qly"> | ||
| 1504 | - <rect key="frame" x="0.0" y="192" width="375" height="50"/> | ||
| 1505 | - <subviews> | ||
| 1506 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="r2P-WS-bQu"> | ||
| 1507 | - <rect key="frame" x="0.0" y="49" width="375" height="1"/> | ||
| 1508 | - <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1509 | - <constraints> | ||
| 1510 | - <constraint firstAttribute="height" constant="1" id="V8R-hb-BmR"/> | ||
| 1511 | - </constraints> | ||
| 1512 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1513 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1514 | - <nil key="highlightedColor"/> | ||
| 1515 | - </label> | ||
| 1516 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="选择直播分类" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IaE-i3-aCb"> | ||
| 1517 | - <rect key="frame" x="15" y="16" width="92" height="18"/> | ||
| 1518 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1519 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1520 | - <nil key="highlightedColor"/> | ||
| 1521 | - </label> | ||
| 1522 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="收拢.png" translatesAutoresizingMaskIntoConstraints="NO" id="fMt-kr-ObK"> | ||
| 1523 | - <rect key="frame" x="348" y="15" width="12" height="20"/> | ||
| 1524 | - <constraints> | ||
| 1525 | - <constraint firstAttribute="width" constant="12" id="S8N-C8-lla"/> | ||
| 1526 | - <constraint firstAttribute="height" constant="20" id="Z09-Ge-470"/> | ||
| 1527 | - </constraints> | ||
| 1528 | - </imageView> | ||
| 1529 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jkn-4P-F72"> | ||
| 1530 | - <rect key="frame" x="340" y="25" width="0.0" height="0.0"/> | ||
| 1531 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1532 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1533 | - <nil key="highlightedColor"/> | ||
| 1534 | - </label> | ||
| 1535 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Jnu-Pw-1Qs"> | ||
| 1536 | - <rect key="frame" x="115" y="0.0" width="252" height="50"/> | ||
| 1537 | - <connections> | ||
| 1538 | - <action selector="selectCategoryAction:" destination="jwk-18-f3u" eventType="touchUpInside" id="J8X-cM-NTF"/> | ||
| 1539 | - </connections> | ||
| 1540 | - </button> | ||
| 1541 | - </subviews> | ||
| 1542 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1543 | - <constraints> | ||
| 1544 | - <constraint firstItem="Jnu-Pw-1Qs" firstAttribute="leading" secondItem="IaE-i3-aCb" secondAttribute="trailing" constant="8" id="4p2-EG-aqz"/> | ||
| 1545 | - <constraint firstItem="fMt-kr-ObK" firstAttribute="centerY" secondItem="FXE-Uo-qly" secondAttribute="centerY" id="8fk-fl-Ech"/> | ||
| 1546 | - <constraint firstItem="IaE-i3-aCb" firstAttribute="centerY" secondItem="FXE-Uo-qly" secondAttribute="centerY" id="CYT-pO-0zO"/> | ||
| 1547 | - <constraint firstItem="jkn-4P-F72" firstAttribute="centerY" secondItem="FXE-Uo-qly" secondAttribute="centerY" id="Eo2-KO-xaZ"/> | ||
| 1548 | - <constraint firstAttribute="trailing" secondItem="Jnu-Pw-1Qs" secondAttribute="trailing" constant="8" id="FpY-fx-9cy"/> | ||
| 1549 | - <constraint firstAttribute="bottom" secondItem="Jnu-Pw-1Qs" secondAttribute="bottom" id="RNk-n3-anW"/> | ||
| 1550 | - <constraint firstItem="IaE-i3-aCb" firstAttribute="leading" secondItem="FXE-Uo-qly" secondAttribute="leading" constant="15" id="VJx-Kf-BVS"/> | ||
| 1551 | - <constraint firstAttribute="bottom" secondItem="r2P-WS-bQu" secondAttribute="bottom" id="WO6-vU-2oE"/> | ||
| 1552 | - <constraint firstAttribute="height" constant="50" id="e5r-XN-jQh"/> | ||
| 1553 | - <constraint firstAttribute="trailing" secondItem="fMt-kr-ObK" secondAttribute="trailing" constant="15" id="f2G-JF-Hbb"/> | ||
| 1554 | - <constraint firstItem="Jnu-Pw-1Qs" firstAttribute="top" secondItem="FXE-Uo-qly" secondAttribute="top" id="obu-FW-lDm"/> | ||
| 1555 | - <constraint firstAttribute="trailing" secondItem="r2P-WS-bQu" secondAttribute="trailing" id="s7m-2l-Prg"/> | ||
| 1556 | - <constraint firstItem="r2P-WS-bQu" firstAttribute="leading" secondItem="FXE-Uo-qly" secondAttribute="leading" id="svk-4Z-Mmq"/> | ||
| 1557 | - <constraint firstItem="fMt-kr-ObK" firstAttribute="leading" secondItem="jkn-4P-F72" secondAttribute="trailing" constant="8" id="x3s-To-FlJ"/> | ||
| 1558 | - </constraints> | ||
| 1559 | - </view> | ||
| 1560 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yi1-uo-lEW"> | ||
| 1561 | - <rect key="frame" x="0.0" y="242" width="375" height="94"/> | ||
| 1562 | - <subviews> | ||
| 1563 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="请输入直播公告" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DEM-Ng-GHF"> | ||
| 1564 | - <rect key="frame" x="90" y="9" width="107.5" height="18"/> | ||
| 1565 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1566 | - <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1567 | - <nil key="highlightedColor"/> | ||
| 1568 | - </label> | ||
| 1569 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9yD-48-AVM"> | ||
| 1570 | - <rect key="frame" x="0.0" y="91" width="375" height="1"/> | ||
| 1571 | - <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1572 | - <constraints> | ||
| 1573 | - <constraint firstAttribute="height" constant="1" id="tQz-6w-1Ft"/> | ||
| 1574 | - </constraints> | ||
| 1575 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1576 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1577 | - <nil key="highlightedColor"/> | ||
| 1578 | - </label> | ||
| 1579 | - <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TiW-VB-uOE"> | ||
| 1580 | - <rect key="frame" x="84.5" y="1" width="275.5" height="90"/> | ||
| 1581 | - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> | ||
| 1582 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1583 | - <textInputTraits key="textInputTraits" autocapitalizationType="sentences" returnKeyType="done"/> | ||
| 1584 | - <connections> | ||
| 1585 | - <outlet property="delegate" destination="jwk-18-f3u" id="BPX-7e-dIA"/> | ||
| 1586 | - </connections> | ||
| 1587 | - </textView> | ||
| 1588 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="直播公告" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mw4-7z-qQP"> | ||
| 1589 | - <rect key="frame" x="15" y="8" width="61.5" height="18"/> | ||
| 1590 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1591 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1592 | - <nil key="highlightedColor"/> | ||
| 1593 | - </label> | ||
| 1594 | - </subviews> | ||
| 1595 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1596 | - <constraints> | ||
| 1597 | - <constraint firstItem="9yD-48-AVM" firstAttribute="top" secondItem="TiW-VB-uOE" secondAttribute="bottom" id="1hP-E3-FwA"/> | ||
| 1598 | - <constraint firstItem="mw4-7z-qQP" firstAttribute="leading" secondItem="yi1-uo-lEW" secondAttribute="leading" constant="15" id="4dd-jn-07q"/> | ||
| 1599 | - <constraint firstItem="mw4-7z-qQP" firstAttribute="centerY" secondItem="yi1-uo-lEW" secondAttribute="centerY" id="70d-GB-f1b"/> | ||
| 1600 | - <constraint firstItem="TiW-VB-uOE" firstAttribute="centerY" secondItem="yi1-uo-lEW" secondAttribute="centerY" constant="-1" id="AZZ-dH-zwl"/> | ||
| 1601 | - <constraint firstItem="TiW-VB-uOE" firstAttribute="leading" secondItem="mw4-7z-qQP" secondAttribute="trailing" constant="8" id="B0e-iF-ru0"/> | ||
| 1602 | - <constraint firstItem="DEM-Ng-GHF" firstAttribute="leading" secondItem="mw4-7z-qQP" secondAttribute="trailing" constant="13.5" id="CU5-sY-7bz"/> | ||
| 1603 | - <constraint firstItem="mw4-7z-qQP" firstAttribute="top" secondItem="yi1-uo-lEW" secondAttribute="top" constant="8" id="N4H-pT-ZsI"/> | ||
| 1604 | - <constraint firstAttribute="bottom" secondItem="9yD-48-AVM" secondAttribute="bottom" constant="2" id="bVZ-Tb-sam"/> | ||
| 1605 | - <constraint firstAttribute="trailing" secondItem="TiW-VB-uOE" secondAttribute="trailing" constant="15" id="iLu-oG-6Lx"/> | ||
| 1606 | - <constraint firstAttribute="height" constant="94" id="jrK-aB-b5M"/> | ||
| 1607 | - <constraint firstItem="9yD-48-AVM" firstAttribute="leading" secondItem="yi1-uo-lEW" secondAttribute="leading" id="meo-hS-r1i"/> | ||
| 1608 | - <constraint firstAttribute="trailing" secondItem="9yD-48-AVM" secondAttribute="trailing" id="oX8-s0-XHh"/> | ||
| 1609 | - <constraint firstItem="DEM-Ng-GHF" firstAttribute="top" secondItem="yi1-uo-lEW" secondAttribute="top" constant="9" id="qPB-4R-VFE"/> | ||
| 1610 | - </constraints> | ||
| 1611 | - <variation key="default"> | ||
| 1612 | - <mask key="constraints"> | ||
| 1613 | - <exclude reference="70d-GB-f1b"/> | ||
| 1614 | - </mask> | ||
| 1615 | - </variation> | ||
| 1616 | - </view> | ||
| 1617 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dd4-BM-IKh"> | ||
| 1618 | - <rect key="frame" x="0.0" y="336" width="375" height="50"/> | ||
| 1619 | - <subviews> | ||
| 1620 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jh1-VU-QYP"> | ||
| 1621 | - <rect key="frame" x="0.0" y="49" width="375" height="1"/> | ||
| 1622 | - <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1623 | - <constraints> | ||
| 1624 | - <constraint firstAttribute="height" constant="1" id="u0E-1r-yff"/> | ||
| 1625 | - </constraints> | ||
| 1626 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1627 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1628 | - <nil key="highlightedColor"/> | ||
| 1629 | - </label> | ||
| 1630 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="开始时间(必选)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Hb3-CD-c0q"> | ||
| 1631 | - <rect key="frame" x="15" y="16" width="102" height="18"/> | ||
| 1632 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1633 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1634 | - <nil key="highlightedColor"/> | ||
| 1635 | - </label> | ||
| 1636 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="收拢.png" translatesAutoresizingMaskIntoConstraints="NO" id="X5Q-7E-oqr"> | ||
| 1637 | - <rect key="frame" x="348" y="15" width="12" height="20"/> | ||
| 1638 | - <constraints> | ||
| 1639 | - <constraint firstAttribute="width" secondItem="X5Q-7E-oqr" secondAttribute="height" multiplier="1:1" id="97p-8G-ADg"/> | ||
| 1640 | - <constraint firstAttribute="height" constant="20" id="fbG-1s-0Pr"/> | ||
| 1641 | - </constraints> | ||
| 1642 | - <variation key="default"> | ||
| 1643 | - <mask key="constraints"> | ||
| 1644 | - <exclude reference="97p-8G-ADg"/> | ||
| 1645 | - </mask> | ||
| 1646 | - </variation> | ||
| 1647 | - </imageView> | ||
| 1648 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="gAM-jO-AiE"> | ||
| 1649 | - <rect key="frame" x="298" y="10" width="46" height="30"/> | ||
| 1650 | - <state key="normal" title="请选择"> | ||
| 1651 | - <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1652 | - </state> | ||
| 1653 | - <connections> | ||
| 1654 | - <action selector="startTimeClickAction:" destination="jwk-18-f3u" eventType="touchUpInside" id="HJP-yK-ldW"/> | ||
| 1655 | - </connections> | ||
| 1656 | - </button> | ||
| 1657 | - </subviews> | ||
| 1658 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1659 | - <constraints> | ||
| 1660 | - <constraint firstItem="gAM-jO-AiE" firstAttribute="centerY" secondItem="dd4-BM-IKh" secondAttribute="centerY" id="5HY-7q-31B"/> | ||
| 1661 | - <constraint firstItem="Hb3-CD-c0q" firstAttribute="leading" secondItem="dd4-BM-IKh" secondAttribute="leading" constant="15" id="6co-jg-rDf"/> | ||
| 1662 | - <constraint firstAttribute="trailing" secondItem="X5Q-7E-oqr" secondAttribute="trailing" constant="15" id="GEp-Td-y3I"/> | ||
| 1663 | - <constraint firstAttribute="bottom" secondItem="jh1-VU-QYP" secondAttribute="bottom" id="Jz0-C5-lgP"/> | ||
| 1664 | - <constraint firstItem="X5Q-7E-oqr" firstAttribute="width" secondItem="X5Q-7E-oqr" secondAttribute="height" multiplier="3:5" id="K5P-NK-K65"/> | ||
| 1665 | - <constraint firstAttribute="trailing" secondItem="jh1-VU-QYP" secondAttribute="trailing" id="YFJ-OJ-Du8"/> | ||
| 1666 | - <constraint firstItem="X5Q-7E-oqr" firstAttribute="leading" secondItem="gAM-jO-AiE" secondAttribute="trailing" constant="4" id="aD0-B7-ItN"/> | ||
| 1667 | - <constraint firstItem="jh1-VU-QYP" firstAttribute="leading" secondItem="dd4-BM-IKh" secondAttribute="leading" id="bKb-SG-FmQ"/> | ||
| 1668 | - <constraint firstAttribute="height" constant="50" id="ea8-uJ-9EA"/> | ||
| 1669 | - <constraint firstItem="X5Q-7E-oqr" firstAttribute="centerY" secondItem="dd4-BM-IKh" secondAttribute="centerY" id="kTd-GJ-0hS"/> | ||
| 1670 | - <constraint firstItem="Hb3-CD-c0q" firstAttribute="centerY" secondItem="dd4-BM-IKh" secondAttribute="centerY" id="xZu-bB-UAf"/> | ||
| 1671 | - </constraints> | ||
| 1672 | - </view> | ||
| 1673 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Ok9-zf-IXl"> | ||
| 1674 | - <rect key="frame" x="0.0" y="386" width="375" height="50"/> | ||
| 1675 | - <subviews> | ||
| 1676 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zvm-5f-J1j"> | ||
| 1677 | - <rect key="frame" x="0.0" y="49" width="375" height="1"/> | ||
| 1678 | - <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1679 | - <constraints> | ||
| 1680 | - <constraint firstAttribute="height" constant="1" id="9Yc-Kq-c0d"/> | ||
| 1681 | - </constraints> | ||
| 1682 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1683 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1684 | - <nil key="highlightedColor"/> | ||
| 1685 | - </label> | ||
| 1686 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="结束时间(必选)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0mC-Xy-eAB"> | ||
| 1687 | - <rect key="frame" x="15" y="16" width="102" height="18"/> | ||
| 1688 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1689 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1690 | - <nil key="highlightedColor"/> | ||
| 1691 | - </label> | ||
| 1692 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="收拢.png" translatesAutoresizingMaskIntoConstraints="NO" id="2hA-Ds-4I8"> | ||
| 1693 | - <rect key="frame" x="348" y="15" width="12" height="20"/> | ||
| 1694 | - <constraints> | ||
| 1695 | - <constraint firstAttribute="width" secondItem="2hA-Ds-4I8" secondAttribute="height" multiplier="1:1" id="FW0-H7-dhO"/> | ||
| 1696 | - <constraint firstAttribute="height" constant="20" id="VRu-Mf-VGB"/> | ||
| 1697 | - </constraints> | ||
| 1698 | - <variation key="default"> | ||
| 1699 | - <mask key="constraints"> | ||
| 1700 | - <exclude reference="FW0-H7-dhO"/> | ||
| 1701 | - </mask> | ||
| 1702 | - </variation> | ||
| 1703 | - </imageView> | ||
| 1704 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="7M7-Jd-xs6"> | ||
| 1705 | - <rect key="frame" x="298" y="10" width="46" height="30"/> | ||
| 1706 | - <state key="normal" title="请选择"> | ||
| 1707 | - <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1708 | - </state> | ||
| 1709 | - <connections> | ||
| 1710 | - <action selector="allTimeClickAction:" destination="jwk-18-f3u" eventType="touchUpInside" id="54B-dv-UXQ"/> | ||
| 1711 | - </connections> | ||
| 1712 | - </button> | ||
| 1713 | - </subviews> | ||
| 1714 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1715 | - <constraints> | ||
| 1716 | - <constraint firstAttribute="trailing" secondItem="2hA-Ds-4I8" secondAttribute="trailing" constant="15" id="7TH-O1-SrS"/> | ||
| 1717 | - <constraint firstItem="zvm-5f-J1j" firstAttribute="leading" secondItem="Ok9-zf-IXl" secondAttribute="leading" id="Bxm-Ix-Ho0"/> | ||
| 1718 | - <constraint firstItem="2hA-Ds-4I8" firstAttribute="centerY" secondItem="Ok9-zf-IXl" secondAttribute="centerY" id="Cef-Jy-wJJ"/> | ||
| 1719 | - <constraint firstItem="7M7-Jd-xs6" firstAttribute="centerY" secondItem="Ok9-zf-IXl" secondAttribute="centerY" id="GPS-MQ-Bjw"/> | ||
| 1720 | - <constraint firstAttribute="bottom" secondItem="zvm-5f-J1j" secondAttribute="bottom" id="GpY-DW-hJx"/> | ||
| 1721 | - <constraint firstItem="0mC-Xy-eAB" firstAttribute="centerY" secondItem="Ok9-zf-IXl" secondAttribute="centerY" id="R4l-OJ-JOu"/> | ||
| 1722 | - <constraint firstItem="0mC-Xy-eAB" firstAttribute="leading" secondItem="Ok9-zf-IXl" secondAttribute="leading" constant="15" id="Tg6-2J-GPn"/> | ||
| 1723 | - <constraint firstItem="2hA-Ds-4I8" firstAttribute="width" secondItem="2hA-Ds-4I8" secondAttribute="height" multiplier="3:5" id="UEB-ZX-vyc"/> | ||
| 1724 | - <constraint firstItem="2hA-Ds-4I8" firstAttribute="leading" secondItem="7M7-Jd-xs6" secondAttribute="trailing" constant="4" id="YGI-NJ-JOC"/> | ||
| 1725 | - <constraint firstAttribute="trailing" secondItem="zvm-5f-J1j" secondAttribute="trailing" id="jW6-np-JWg"/> | ||
| 1726 | - <constraint firstAttribute="height" constant="50" id="kcw-uC-RNU"/> | ||
| 1727 | - </constraints> | ||
| 1728 | - </view> | ||
| 1729 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="jU3-sr-OWT"> | ||
| 1730 | - <rect key="frame" x="0.0" y="436" width="375" height="50"/> | ||
| 1731 | - <subviews> | ||
| 1732 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Xc6-T7-nmC"> | ||
| 1733 | - <rect key="frame" x="0.0" y="49" width="375" height="1"/> | ||
| 1734 | - <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1735 | - <constraints> | ||
| 1736 | - <constraint firstAttribute="height" constant="1" id="ltL-uG-s3E"/> | ||
| 1737 | - </constraints> | ||
| 1738 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1739 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1740 | - <nil key="highlightedColor"/> | ||
| 1741 | - </label> | ||
| 1742 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="是否录制" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nSb-xP-QmC"> | ||
| 1743 | - <rect key="frame" x="15" y="16" width="61.5" height="18"/> | ||
| 1744 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1745 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1746 | - <nil key="highlightedColor"/> | ||
| 1747 | - </label> | ||
| 1748 | - <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="qX0-EU-Lcb"> | ||
| 1749 | - <rect key="frame" x="318" y="9.5" width="51" height="31"/> | ||
| 1750 | - <color key="onTintColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1751 | - </switch> | ||
| 1752 | - </subviews> | ||
| 1753 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1754 | - <constraints> | ||
| 1755 | - <constraint firstItem="qX0-EU-Lcb" firstAttribute="centerY" secondItem="jU3-sr-OWT" secondAttribute="centerY" id="NMB-xM-syX"/> | ||
| 1756 | - <constraint firstItem="Xc6-T7-nmC" firstAttribute="leading" secondItem="jU3-sr-OWT" secondAttribute="leading" id="TmS-JP-33t"/> | ||
| 1757 | - <constraint firstAttribute="height" constant="50" id="ahs-ox-Xf1"/> | ||
| 1758 | - <constraint firstItem="nSb-xP-QmC" firstAttribute="leading" secondItem="jU3-sr-OWT" secondAttribute="leading" constant="15" id="eM1-B2-q8M"/> | ||
| 1759 | - <constraint firstAttribute="bottom" secondItem="Xc6-T7-nmC" secondAttribute="bottom" id="oJI-as-24Y"/> | ||
| 1760 | - <constraint firstAttribute="trailing" secondItem="qX0-EU-Lcb" secondAttribute="trailing" constant="8" id="sF0-9h-mDe"/> | ||
| 1761 | - <constraint firstItem="nSb-xP-QmC" firstAttribute="centerY" secondItem="jU3-sr-OWT" secondAttribute="centerY" id="sVJ-S5-AsU"/> | ||
| 1762 | - <constraint firstAttribute="trailing" secondItem="Xc6-T7-nmC" secondAttribute="trailing" id="vag-gQ-TTv"/> | ||
| 1763 | - </constraints> | ||
| 1764 | - </view> | ||
| 1765 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KqY-xs-Fi7"> | ||
| 1766 | - <rect key="frame" x="0.0" y="486" width="375" height="50"/> | ||
| 1767 | - <subviews> | ||
| 1768 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zo9-B4-PPj"> | ||
| 1769 | - <rect key="frame" x="0.0" y="49" width="375" height="1"/> | ||
| 1770 | - <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1771 | - <constraints> | ||
| 1772 | - <constraint firstAttribute="height" constant="1" id="aUu-in-7A9"/> | ||
| 1773 | - </constraints> | ||
| 1774 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1775 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1776 | - <nil key="highlightedColor"/> | ||
| 1777 | - </label> | ||
| 1778 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="是否公开" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Th0-ga-dTj"> | ||
| 1779 | - <rect key="frame" x="15" y="16" width="61.5" height="18"/> | ||
| 1780 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1781 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1782 | - <nil key="highlightedColor"/> | ||
| 1783 | - </label> | ||
| 1784 | - <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Suq-zY-Gxx"> | ||
| 1785 | - <rect key="frame" x="318" y="9.5" width="51" height="31"/> | ||
| 1786 | - <color key="onTintColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1787 | - <connections> | ||
| 1788 | - <action selector="lookOfEveryoneBtnClickAction:" destination="jwk-18-f3u" eventType="valueChanged" id="cvK-OL-ccd"/> | ||
| 1789 | - </connections> | ||
| 1790 | - </switch> | ||
| 1791 | - </subviews> | ||
| 1792 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1793 | - <constraints> | ||
| 1794 | - <constraint firstItem="Th0-ga-dTj" firstAttribute="leading" secondItem="KqY-xs-Fi7" secondAttribute="leading" constant="15" id="ClE-8L-z1W"/> | ||
| 1795 | - <constraint firstItem="Suq-zY-Gxx" firstAttribute="centerY" secondItem="KqY-xs-Fi7" secondAttribute="centerY" id="EJp-i8-Go8"/> | ||
| 1796 | - <constraint firstItem="zo9-B4-PPj" firstAttribute="leading" secondItem="KqY-xs-Fi7" secondAttribute="leading" id="EWz-eM-xDV"/> | ||
| 1797 | - <constraint firstAttribute="bottom" secondItem="zo9-B4-PPj" secondAttribute="bottom" id="Sn1-Jh-Dob"/> | ||
| 1798 | - <constraint firstAttribute="trailing" secondItem="Suq-zY-Gxx" secondAttribute="trailing" constant="8" id="Vm0-Qy-sl6"/> | ||
| 1799 | - <constraint firstAttribute="trailing" secondItem="zo9-B4-PPj" secondAttribute="trailing" id="b5q-fa-yet"/> | ||
| 1800 | - <constraint firstItem="Th0-ga-dTj" firstAttribute="centerY" secondItem="KqY-xs-Fi7" secondAttribute="centerY" id="kF8-yG-1ut"/> | ||
| 1801 | - <constraint firstAttribute="height" constant="50" id="wso-zy-sdG"/> | ||
| 1802 | - </constraints> | ||
| 1803 | - </view> | ||
| 1804 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="piO-2m-hb9"> | ||
| 1805 | - <rect key="frame" x="0.0" y="536" width="375" height="50"/> | ||
| 1806 | - <subviews> | ||
| 1807 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5uf-jt-ZEc"> | ||
| 1808 | - <rect key="frame" x="0.0" y="49" width="375" height="1"/> | ||
| 1809 | - <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1810 | - <constraints> | ||
| 1811 | - <constraint firstAttribute="height" constant="1" id="7pF-tF-gDq"/> | ||
| 1812 | - </constraints> | ||
| 1813 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1814 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1815 | - <nil key="highlightedColor"/> | ||
| 1816 | - </label> | ||
| 1817 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="是否支持互动" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YfA-y3-aJw"> | ||
| 1818 | - <rect key="frame" x="15" y="16" width="92" height="18"/> | ||
| 1819 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1820 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1821 | - <nil key="highlightedColor"/> | ||
| 1822 | - </label> | ||
| 1823 | - <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="cbW-tG-UHt"> | ||
| 1824 | - <rect key="frame" x="318" y="9.5" width="51" height="31"/> | ||
| 1825 | - <color key="onTintColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1826 | - </switch> | ||
| 1827 | - </subviews> | ||
| 1828 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1829 | - <constraints> | ||
| 1830 | - <constraint firstAttribute="trailing" secondItem="5uf-jt-ZEc" secondAttribute="trailing" id="1Z3-D8-9jm"/> | ||
| 1831 | - <constraint firstItem="5uf-jt-ZEc" firstAttribute="leading" secondItem="piO-2m-hb9" secondAttribute="leading" id="2nN-wj-hQ3"/> | ||
| 1832 | - <constraint firstItem="YfA-y3-aJw" firstAttribute="leading" secondItem="piO-2m-hb9" secondAttribute="leading" constant="15" id="M4h-Dk-DHd"/> | ||
| 1833 | - <constraint firstAttribute="trailing" secondItem="cbW-tG-UHt" secondAttribute="trailing" constant="8" id="UR5-uC-Ckf"/> | ||
| 1834 | - <constraint firstItem="YfA-y3-aJw" firstAttribute="centerY" secondItem="piO-2m-hb9" secondAttribute="centerY" id="aGk-ya-qLl"/> | ||
| 1835 | - <constraint firstAttribute="bottom" secondItem="5uf-jt-ZEc" secondAttribute="bottom" id="aHV-2o-EQT"/> | ||
| 1836 | - <constraint firstAttribute="height" constant="50" id="aL5-X5-foV"/> | ||
| 1837 | - <constraint firstItem="cbW-tG-UHt" firstAttribute="centerY" secondItem="piO-2m-hb9" secondAttribute="centerY" id="wDV-jc-jXE"/> | ||
| 1838 | - </constraints> | ||
| 1839 | - </view> | ||
| 1840 | - <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0Z8-Cj-qAK"> | ||
| 1841 | - <rect key="frame" x="0.0" y="586" width="375" height="50"/> | ||
| 1842 | - <subviews> | ||
| 1843 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="s5B-pI-Nza"> | ||
| 1844 | - <rect key="frame" x="0.0" y="49" width="375" height="1"/> | ||
| 1845 | - <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1846 | - <constraints> | ||
| 1847 | - <constraint firstAttribute="height" constant="1" id="WwH-Y8-6w1"/> | ||
| 1848 | - </constraints> | ||
| 1849 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1850 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1851 | - <nil key="highlightedColor"/> | ||
| 1852 | - </label> | ||
| 1853 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="附件" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wpE-Sf-0QP"> | ||
| 1854 | - <rect key="frame" x="15" y="16" width="31" height="18"/> | ||
| 1855 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1856 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1857 | - <nil key="highlightedColor"/> | ||
| 1858 | - </label> | ||
| 1859 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pqO-yo-umd"> | ||
| 1860 | - <rect key="frame" x="342" y="12.5" width="25" height="25"/> | ||
| 1861 | - <constraints> | ||
| 1862 | - <constraint firstAttribute="height" constant="25" id="1Nj-tM-dVg"/> | ||
| 1863 | - <constraint firstAttribute="width" constant="25" id="HzU-Nc-nEV"/> | ||
| 1864 | - </constraints> | ||
| 1865 | - <state key="normal" backgroundImage="examine_file"> | ||
| 1866 | - <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1867 | - </state> | ||
| 1868 | - <connections> | ||
| 1869 | - <action selector="addFileClickAction:" destination="jwk-18-f3u" eventType="touchUpInside" id="8HV-TD-GTv"/> | ||
| 1870 | - </connections> | ||
| 1871 | - </button> | ||
| 1872 | - </subviews> | ||
| 1873 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1874 | - <constraints> | ||
| 1875 | - <constraint firstAttribute="height" constant="50" id="09x-KI-ePT"/> | ||
| 1876 | - <constraint firstItem="s5B-pI-Nza" firstAttribute="leading" secondItem="0Z8-Cj-qAK" secondAttribute="leading" id="2ic-kH-otF"/> | ||
| 1877 | - <constraint firstItem="wpE-Sf-0QP" firstAttribute="leading" secondItem="0Z8-Cj-qAK" secondAttribute="leading" constant="15" id="8ID-Iy-y45"/> | ||
| 1878 | - <constraint firstItem="pqO-yo-umd" firstAttribute="centerY" secondItem="0Z8-Cj-qAK" secondAttribute="centerY" id="OEX-R1-bL8"/> | ||
| 1879 | - <constraint firstItem="wpE-Sf-0QP" firstAttribute="centerY" secondItem="0Z8-Cj-qAK" secondAttribute="centerY" id="OXU-HK-p59"/> | ||
| 1880 | - <constraint firstAttribute="bottom" secondItem="s5B-pI-Nza" secondAttribute="bottom" id="iGq-Fu-F4e"/> | ||
| 1881 | - <constraint firstAttribute="trailing" secondItem="pqO-yo-umd" secondAttribute="trailing" constant="8" id="l8L-GN-7V8"/> | ||
| 1882 | - <constraint firstAttribute="trailing" secondItem="s5B-pI-Nza" secondAttribute="trailing" id="q80-MH-4Rm"/> | ||
| 1883 | - </constraints> | ||
| 1884 | - </view> | ||
| 1885 | - <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="Xbx-Qe-cMi"> | ||
| 1886 | - <rect key="frame" x="0.0" y="636" width="375" height="0.0"/> | ||
| 1887 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1888 | - <constraints> | ||
| 1889 | - <constraint firstAttribute="height" id="iJn-Uf-h00"/> | ||
| 1890 | - </constraints> | ||
| 1891 | - <prototypes> | ||
| 1892 | - <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="documentTableViewCell" id="BeQ-hr-Yht" customClass="documentTableViewCell" customModule="YouerLiveVideo" customModuleProvider="target"> | ||
| 1893 | - <rect key="frame" x="0.0" y="28" width="375" height="44"/> | ||
| 1894 | - <autoresizingMask key="autoresizingMask"/> | ||
| 1895 | - <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="BeQ-hr-Yht" id="fsK-Lx-gbg"> | ||
| 1896 | - <rect key="frame" x="0.0" y="0.0" width="375" height="44"/> | ||
| 1897 | - <autoresizingMask key="autoresizingMask"/> | ||
| 1898 | - <subviews> | ||
| 1899 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon.png" translatesAutoresizingMaskIntoConstraints="NO" id="CEb-RW-8dm"> | ||
| 1900 | - <rect key="frame" x="7" y="7" width="30" height="30"/> | ||
| 1901 | - <constraints> | ||
| 1902 | - <constraint firstAttribute="height" constant="30" id="InH-ge-yG6"/> | ||
| 1903 | - <constraint firstAttribute="width" constant="30" id="iTd-yZ-kpy"/> | ||
| 1904 | - </constraints> | ||
| 1905 | - </imageView> | ||
| 1906 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="线性代数" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="o5f-mD-VXF"> | ||
| 1907 | - <rect key="frame" x="45" y="13" width="322" height="18"/> | ||
| 1908 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1909 | - <nil key="textColor"/> | ||
| 1910 | - <nil key="highlightedColor"/> | ||
| 1911 | - </label> | ||
| 1912 | - </subviews> | ||
| 1913 | - <constraints> | ||
| 1914 | - <constraint firstItem="CEb-RW-8dm" firstAttribute="leading" secondItem="fsK-Lx-gbg" secondAttribute="leadingMargin" constant="-1" id="DlF-G3-UuO"/> | ||
| 1915 | - <constraint firstItem="o5f-mD-VXF" firstAttribute="leading" secondItem="CEb-RW-8dm" secondAttribute="trailing" constant="8" id="YY4-k2-nAI"/> | ||
| 1916 | - <constraint firstItem="o5f-mD-VXF" firstAttribute="centerY" secondItem="fsK-Lx-gbg" secondAttribute="centerY" id="cwz-kz-fzO"/> | ||
| 1917 | - <constraint firstItem="CEb-RW-8dm" firstAttribute="centerY" secondItem="fsK-Lx-gbg" secondAttribute="centerY" id="mdh-rn-pxj"/> | ||
| 1918 | - <constraint firstAttribute="trailingMargin" secondItem="o5f-mD-VXF" secondAttribute="trailing" id="zpf-dp-5W7"/> | ||
| 1919 | - </constraints> | ||
| 1920 | - </tableViewCellContentView> | ||
| 1921 | - <connections> | ||
| 1922 | - <outlet property="iconImageView" destination="CEb-RW-8dm" id="9fA-iX-H5T"/> | ||
| 1923 | - <outlet property="titleLabel" destination="o5f-mD-VXF" id="K4S-IM-tIm"/> | ||
| 1924 | - </connections> | ||
| 1925 | - </tableViewCell> | ||
| 1926 | - </prototypes> | ||
| 1927 | - <connections> | ||
| 1928 | - <outlet property="dataSource" destination="jwk-18-f3u" id="xcz-RI-9af"/> | ||
| 1929 | - <outlet property="delegate" destination="jwk-18-f3u" id="yPI-Zb-3ed"/> | ||
| 1930 | - </connections> | ||
| 1931 | - </tableView> | ||
| 1932 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="PHR-ag-hyg"> | ||
| 1933 | - <rect key="frame" x="97.5" y="812" width="180" height="30"/> | ||
| 1934 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1935 | - <constraints> | ||
| 1936 | - <constraint firstAttribute="width" constant="180" id="0nT-pa-njg"/> | ||
| 1937 | - <constraint firstAttribute="height" constant="30" id="fbW-ZK-0bX"/> | ||
| 1938 | - </constraints> | ||
| 1939 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1940 | - <state key="normal" title="申请直播"> | ||
| 1941 | - <color key="titleColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1942 | - </state> | ||
| 1943 | - <userDefinedRuntimeAttributes> | ||
| 1944 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 1945 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 1946 | - <integer key="value" value="15"/> | ||
| 1947 | - </userDefinedRuntimeAttribute> | ||
| 1948 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth"> | ||
| 1949 | - <integer key="value" value="1"/> | ||
| 1950 | - </userDefinedRuntimeAttribute> | ||
| 1951 | - <userDefinedRuntimeAttribute type="color" keyPath="layer.borderColor"> | ||
| 1952 | - <color key="value" red="0.92156862750000001" green="0.92156862750000001" blue="0.94509803920000002" alpha="1" colorSpace="calibratedRGB"/> | ||
| 1953 | - </userDefinedRuntimeAttribute> | ||
| 1954 | - </userDefinedRuntimeAttributes> | ||
| 1955 | - <connections> | ||
| 1956 | - <action selector="applyLiveBtnClickAction:" destination="jwk-18-f3u" eventType="touchUpInside" id="pzK-4n-lIQ"/> | ||
| 1957 | - </connections> | ||
| 1958 | - </button> | ||
| 1959 | - </subviews> | ||
| 1960 | - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> | ||
| 1961 | - <constraints> | ||
| 1962 | - <constraint firstAttribute="trailing" secondItem="Xbx-Qe-cMi" secondAttribute="trailing" id="0GW-0G-EKN"/> | ||
| 1963 | - <constraint firstItem="yi1-uo-lEW" firstAttribute="top" secondItem="FXE-Uo-qly" secondAttribute="bottom" id="3V7-YW-lOv"/> | ||
| 1964 | - <constraint firstItem="0Z8-Cj-qAK" firstAttribute="leading" secondItem="lNX-yU-h0E" secondAttribute="leading" id="6aw-dG-gd7"/> | ||
| 1965 | - <constraint firstItem="KqY-xs-Fi7" firstAttribute="leading" secondItem="lNX-yU-h0E" secondAttribute="leading" id="8Re-ZE-XbO"/> | ||
| 1966 | - <constraint firstAttribute="trailing" secondItem="Ok9-zf-IXl" secondAttribute="trailing" id="8dw-1L-lKz"/> | ||
| 1967 | - <constraint firstAttribute="trailing" secondItem="KqY-xs-Fi7" secondAttribute="trailing" id="8xr-3s-iUk"/> | ||
| 1968 | - <constraint firstItem="dd4-BM-IKh" firstAttribute="leading" secondItem="lNX-yU-h0E" secondAttribute="leading" id="BDK-Ud-iYB"/> | ||
| 1969 | - <constraint firstItem="cj3-uZ-M2P" firstAttribute="top" secondItem="Ojc-oe-kTU" secondAttribute="bottom" id="BJq-vf-3Vs"/> | ||
| 1970 | - <constraint firstItem="Ok9-zf-IXl" firstAttribute="top" secondItem="dd4-BM-IKh" secondAttribute="bottom" id="CLr-9H-3HV"/> | ||
| 1971 | - <constraint firstItem="Xbx-Qe-cMi" firstAttribute="leading" secondItem="lNX-yU-h0E" secondAttribute="leading" id="CVu-VE-XP9"/> | ||
| 1972 | - <constraint firstItem="FXE-Uo-qly" firstAttribute="leading" secondItem="lNX-yU-h0E" secondAttribute="leading" id="DyC-AK-GcP"/> | ||
| 1973 | - <constraint firstAttribute="trailing" secondItem="yi1-uo-lEW" secondAttribute="trailing" id="HFY-Dz-OS1"/> | ||
| 1974 | - <constraint firstItem="piO-2m-hb9" firstAttribute="leading" secondItem="lNX-yU-h0E" secondAttribute="leading" id="IvQ-wZ-f3T"/> | ||
| 1975 | - <constraint firstItem="PHR-ag-hyg" firstAttribute="centerX" secondItem="lNX-yU-h0E" secondAttribute="centerX" id="Jl8-0M-AzZ"/> | ||
| 1976 | - <constraint firstItem="dd4-BM-IKh" firstAttribute="top" secondItem="yi1-uo-lEW" secondAttribute="bottom" id="K45-kX-LiY"/> | ||
| 1977 | - <constraint firstItem="Ojc-oe-kTU" firstAttribute="top" secondItem="lNX-yU-h0E" secondAttribute="top" id="QNu-hY-sdU"/> | ||
| 1978 | - <constraint firstAttribute="trailing" secondItem="cj3-uZ-M2P" secondAttribute="trailing" id="S8d-h4-COr"/> | ||
| 1979 | - <constraint firstAttribute="trailing" secondItem="jU3-sr-OWT" secondAttribute="trailing" id="UME-dc-7xb"/> | ||
| 1980 | - <constraint firstAttribute="height" constant="872" id="VIM-3A-uOb"/> | ||
| 1981 | - <constraint firstItem="KqY-xs-Fi7" firstAttribute="top" secondItem="jU3-sr-OWT" secondAttribute="bottom" id="WEK-pv-YL6"/> | ||
| 1982 | - <constraint firstAttribute="trailing" secondItem="0Z8-Cj-qAK" secondAttribute="trailing" id="XNR-pM-seD"/> | ||
| 1983 | - <constraint firstItem="jU3-sr-OWT" firstAttribute="top" secondItem="Ok9-zf-IXl" secondAttribute="bottom" id="XzE-xm-bqX"/> | ||
| 1984 | - <constraint firstAttribute="trailing" secondItem="FXE-Uo-qly" secondAttribute="trailing" id="YJU-iL-H0V"/> | ||
| 1985 | - <constraint firstItem="FXE-Uo-qly" firstAttribute="top" secondItem="cj3-uZ-M2P" secondAttribute="bottom" id="Zmr-1T-YgV"/> | ||
| 1986 | - <constraint firstItem="cj3-uZ-M2P" firstAttribute="leading" secondItem="lNX-yU-h0E" secondAttribute="leading" id="bCR-fz-4cw"/> | ||
| 1987 | - <constraint firstAttribute="trailing" secondItem="Ojc-oe-kTU" secondAttribute="trailing" id="cDq-DH-ZSK"/> | ||
| 1988 | - <constraint firstItem="Xbx-Qe-cMi" firstAttribute="top" secondItem="0Z8-Cj-qAK" secondAttribute="bottom" id="iiF-kv-z3r"/> | ||
| 1989 | - <constraint firstAttribute="trailing" secondItem="piO-2m-hb9" secondAttribute="trailing" id="im4-Lg-y3U"/> | ||
| 1990 | - <constraint firstItem="yi1-uo-lEW" firstAttribute="leading" secondItem="lNX-yU-h0E" secondAttribute="leading" id="p5N-nM-0ft"/> | ||
| 1991 | - <constraint firstItem="Ok9-zf-IXl" firstAttribute="leading" secondItem="lNX-yU-h0E" secondAttribute="leading" id="qDg-p3-QQx"/> | ||
| 1992 | - <constraint firstAttribute="bottom" secondItem="PHR-ag-hyg" secondAttribute="bottom" constant="30" id="qyu-JL-Mo0"/> | ||
| 1993 | - <constraint firstItem="Ojc-oe-kTU" firstAttribute="leading" secondItem="lNX-yU-h0E" secondAttribute="leading" id="riW-ff-2My"/> | ||
| 1994 | - <constraint firstAttribute="trailing" secondItem="dd4-BM-IKh" secondAttribute="trailing" id="vKZ-eJ-XAT"/> | ||
| 1995 | - <constraint firstItem="piO-2m-hb9" firstAttribute="top" secondItem="KqY-xs-Fi7" secondAttribute="bottom" id="vk8-hE-8wj"/> | ||
| 1996 | - <constraint firstItem="jU3-sr-OWT" firstAttribute="leading" secondItem="lNX-yU-h0E" secondAttribute="leading" id="w4X-dd-rw4"/> | ||
| 1997 | - <constraint firstItem="0Z8-Cj-qAK" firstAttribute="top" secondItem="piO-2m-hb9" secondAttribute="bottom" id="w7W-Yx-m9g"/> | ||
| 1998 | - </constraints> | ||
| 1999 | - </view> | ||
| 2000 | - </subviews> | ||
| 2001 | - <constraints> | ||
| 2002 | - <constraint firstAttribute="trailing" secondItem="lNX-yU-h0E" secondAttribute="trailing" id="8Du-qT-OGs"/> | ||
| 2003 | - <constraint firstItem="lNX-yU-h0E" firstAttribute="centerX" secondItem="goU-wr-35O" secondAttribute="centerX" id="dMI-lK-Yg4"/> | ||
| 2004 | - <constraint firstAttribute="bottom" secondItem="lNX-yU-h0E" secondAttribute="bottom" id="iPI-cp-aNR"/> | ||
| 2005 | - <constraint firstItem="lNX-yU-h0E" firstAttribute="leading" secondItem="goU-wr-35O" secondAttribute="leading" id="kIp-4U-H0m"/> | ||
| 2006 | - <constraint firstItem="lNX-yU-h0E" firstAttribute="top" secondItem="goU-wr-35O" secondAttribute="top" id="nL1-zM-4HZ"/> | ||
| 2007 | - </constraints> | ||
| 2008 | - </scrollView> | ||
| 2009 | - </subviews> | ||
| 2010 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 2011 | - <constraints> | ||
| 2012 | - <constraint firstItem="goU-wr-35O" firstAttribute="leading" secondItem="rK8-pU-53K" secondAttribute="leading" id="JYx-Oy-LPO"/> | ||
| 2013 | - <constraint firstAttribute="trailing" secondItem="goU-wr-35O" secondAttribute="trailing" id="YLG-Xf-U3c"/> | ||
| 2014 | - <constraint firstItem="goU-wr-35O" firstAttribute="top" secondItem="rK8-pU-53K" secondAttribute="top" id="hG4-xE-HgK"/> | ||
| 2015 | - <constraint firstItem="aD6-6d-DV6" firstAttribute="top" secondItem="goU-wr-35O" secondAttribute="bottom" id="qet-AY-cV1"/> | ||
| 2016 | - </constraints> | ||
| 2017 | - </view> | ||
| 2018 | - <navigationItem key="navigationItem" title="Title" id="3RI-Gq-VlR"/> | ||
| 2019 | - <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/> | ||
| 2020 | - <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> | ||
| 2021 | - <size key="freeformSize" width="375" height="936"/> | ||
| 2022 | - <connections> | ||
| 2023 | - <outlet property="accessoryView" destination="0Z8-Cj-qAK" id="snu-Lg-qMF"/> | ||
| 2024 | - <outlet property="addFiledBtn" destination="pqO-yo-umd" id="kRZ-J2-xMb"/> | ||
| 2025 | - <outlet property="allTimeOfLive" destination="7M7-Jd-xs6" id="0t7-uU-MwI"/> | ||
| 2026 | - <outlet property="applyLiveBtn" destination="PHR-ag-hyg" id="IEP-JD-wPG"/> | ||
| 2027 | - <outlet property="categoryLabel" destination="jkn-4P-F72" id="BSr-C5-MCK"/> | ||
| 2028 | - <outlet property="defaultImage" destination="b1d-Mx-K15" id="Ewu-ty-7kd"/> | ||
| 2029 | - <outlet property="documentTableView" destination="Xbx-Qe-cMi" id="laA-Cv-BcJ"/> | ||
| 2030 | - <outlet property="documentTableViewHeight" destination="iJn-Uf-h00" id="UVi-ah-W9L"/> | ||
| 2031 | - <outlet property="groupAnnouncement" destination="TiW-VB-uOE" id="eM2-5t-ZkN"/> | ||
| 2032 | - <outlet property="hiddenAnnouncementLabel" destination="DEM-Ng-GHF" id="OSH-6x-6eK"/> | ||
| 2033 | - <outlet property="hiddenLiveNameLabel" destination="pFN-yb-0ZP" id="i2g-Bs-V2O"/> | ||
| 2034 | - <outlet property="isEveryOneCouldSpeak" destination="cbW-tG-UHt" id="q2p-CZ-k8O"/> | ||
| 2035 | - <outlet property="isLookOfEveryone" destination="Suq-zY-Gxx" id="qGO-Wc-HEe"/> | ||
| 2036 | - <outlet property="isRecord" destination="qX0-EU-Lcb" id="pPD-3f-RTU"/> | ||
| 2037 | - <outlet property="liveImage" destination="1TQ-Zo-YPJ" id="vly-zu-XTN"/> | ||
| 2038 | - <outlet property="liveNameLabel" destination="bGE-9j-Jod" id="Cdp-sd-6sC"/> | ||
| 2039 | - <outlet property="scrollViewContentSizeY" destination="VIM-3A-uOb" id="UwY-L8-zZW"/> | ||
| 2040 | - <outlet property="startTime" destination="gAM-jO-AiE" id="Xy2-1k-vg6"/> | ||
| 2041 | - </connections> | ||
| 2042 | - </viewController> | ||
| 2043 | - <placeholder placeholderIdentifier="IBFirstResponder" id="vC8-it-fz2" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 2044 | - <tapGestureRecognizer id="Sss-jf-R1T"> | ||
| 2045 | - <connections> | ||
| 2046 | - <action selector="liveImageTapAction:" destination="jwk-18-f3u" id="4U3-PG-ehg"/> | ||
| 2047 | - </connections> | ||
| 2048 | - </tapGestureRecognizer> | ||
| 2049 | - </objects> | ||
| 2050 | - <point key="canvasLocation" x="-588" y="1728.9355322338831"/> | ||
| 2051 | - </scene> | ||
| 2052 | - </scenes> | ||
| 2053 | - <resources> | ||
| 2054 | - <image name="botoom_image" width="48" height="48"/> | ||
| 2055 | - <image name="closeAlive" width="33" height="33"/> | ||
| 2056 | - <image name="default" width="375" height="167"/> | ||
| 2057 | - <image name="default_userRoom" width="19" height="17"/> | ||
| 2058 | - <image name="examine_file" width="64" height="64"/> | ||
| 2059 | - <image name="icon.png" width="80" height="80"/> | ||
| 2060 | - <image name="qq" width="58" height="58"/> | ||
| 2061 | - <image name="qzone" width="58" height="58"/> | ||
| 2062 | - <image name="screen_full" width="33" height="33"/> | ||
| 2063 | - <image name="share" width="33" height="33"/> | ||
| 2064 | - <image name="sina" width="58" height="58"/> | ||
| 2065 | - <image name="starLive" width="22" height="22"/> | ||
| 2066 | - <image name="subTitle_on" width="33" height="33"/> | ||
| 2067 | - <image name="we_session" width="39" height="39"/> | ||
| 2068 | - <image name="we_timeline" width="58" height="58"/> | ||
| 2069 | - <image name="上传封面.png" width="116" height="116"/> | ||
| 2070 | - <image name="收拢.png" width="15" height="25"/> | ||
| 2071 | - <image name="竖屏.png" width="45" height="45"/> | ||
| 2072 | - <image name="观看人数.png" width="31" height="20"/> | ||
| 2073 | - </resources> | ||
| 2074 | -</document> |
YouerLiveVideo/YouerLiveVideo/controller/Live/LiveVideoSettingShareViewController.swift
| @@ -1,216 +0,0 @@ | @@ -1,216 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// LiveVideoSettingShareViewController.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 左丞 on 16/11/14. | ||
| 6 | -// Copyright © 2016年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class LiveVideoSettingShareViewController: UIViewController,UITableViewDelegate,UITableViewDataSource,UIGestureRecognizerDelegate { | ||
| 12 | - var definitionArr:[String] = ["标准","流畅","高清"] | ||
| 13 | - var actionTableView:UITableView! | ||
| 14 | - var actionTableViewLocationView:UIView! | ||
| 15 | - var definition:Int=1 | ||
| 16 | - | ||
| 17 | - @IBOutlet weak var userPhotoHeight: NSLayoutConstraint! | ||
| 18 | - @IBOutlet weak var definitionSelectImage: UIImageView! | ||
| 19 | - @IBOutlet weak var definitionLabel: UILabel! | ||
| 20 | - @IBOutlet weak var roomName: UILabel! | ||
| 21 | - @IBOutlet weak var userPhoto: UIImageView! | ||
| 22 | - @IBOutlet weak var isScreenHorizontalBtn: UIButton! | ||
| 23 | - @IBOutlet weak var shareView: UIView! | ||
| 24 | - @IBOutlet weak var titleImage: UIImageView! | ||
| 25 | - var liveDetail:LiveDetail! | ||
| 26 | - override func viewDidLoad() { | ||
| 27 | - super.viewDidLoad() | ||
| 28 | - shareView.backgroundColor = UIColor.white.withAlphaComponent(0.7) | ||
| 29 | - titleImage.sd_setImage(with: NSURL(string: liveDetail.f_LiveImg) as URL?, placeholderImage: #imageLiteral(resourceName: "defphoto.png")) | ||
| 30 | - titleImage.contentMode = .scaleAspectFill | ||
| 31 | - titleImage.layer.masksToBounds = true | ||
| 32 | - roomName.text = liveDetail.f_LiveName | ||
| 33 | - userPhoto.image = #imageLiteral(resourceName: "default_userRoom") | ||
| 34 | - } | ||
| 35 | - | ||
| 36 | - override func viewWillAppear(_ animated: Bool) { | ||
| 37 | -// if isScreenHorizontalBtn.isSelected{ | ||
| 38 | -// self.navigationController?.isNavigationBarHidden = true | ||
| 39 | -// }else{ | ||
| 40 | -// self.navigationController?.isNavigationBarHidden = false | ||
| 41 | -// } | ||
| 42 | - } | ||
| 43 | - | ||
| 44 | - override func didReceiveMemoryWarning() { | ||
| 45 | - super.didReceiveMemoryWarning() | ||
| 46 | - // Dispose of any resources that can be recreated. | ||
| 47 | - } | ||
| 48 | - @IBAction func definitionSelectClickAction(_ sender: Any) { | ||
| 49 | - let view = (sender as! UIGestureRecognizer).view! | ||
| 50 | - creatSelectTableView() | ||
| 51 | - definitionSelectImage.image = #imageLiteral(resourceName: "top_image") | ||
| 52 | - actionTableView.frame = CGRect(x: view.frame.origin.x, y: view.frame.maxY, width: 100, height: 132) | ||
| 53 | - } | ||
| 54 | - | ||
| 55 | - func creatSelectTableView(){ | ||
| 56 | - if actionTableViewLocationView == nil{ | ||
| 57 | - actionTableViewLocationView = UIView(frame: UIScreen.main.bounds) | ||
| 58 | - actionTableViewLocationView.backgroundColor = UIColor.black.withAlphaComponent(0.7) | ||
| 59 | - let gesture = UITapGestureRecognizer(target: self, action: #selector(LiveVideoSettingShareViewController.cancleActionTableView)) | ||
| 60 | - gesture.delegate = self | ||
| 61 | - actionTableViewLocationView.addGestureRecognizer(gesture) | ||
| 62 | - actionTableView = UITableView(frame: CGRect(x: 0, y: 0, width: 100, height: 132), style: .plain); | ||
| 63 | - actionTableView.layer.borderColor = UIColor.orange.cgColor | ||
| 64 | - actionTableView.layer.borderWidth = 1 | ||
| 65 | - actionTableView.layer.cornerRadius = 5 | ||
| 66 | - actionTableView.layer.masksToBounds = true | ||
| 67 | - actionTableView.delegate = self | ||
| 68 | - actionTableView.dataSource = self | ||
| 69 | - actionTableViewLocationView.addSubview(actionTableView) | ||
| 70 | - self.view.addSubview(actionTableViewLocationView) | ||
| 71 | - }else{ | ||
| 72 | - self.view.addSubview(actionTableViewLocationView) | ||
| 73 | - } | ||
| 74 | - } | ||
| 75 | - | ||
| 76 | - func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool{ | ||
| 77 | - if touch.view!.superview!.isKind(of: UITableViewCell.classForCoder()){ | ||
| 78 | - return false | ||
| 79 | - }else{ | ||
| 80 | - return true | ||
| 81 | - } | ||
| 82 | - } | ||
| 83 | - | ||
| 84 | - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | ||
| 85 | - definitionLabel.text = definitionArr[indexPath.row] | ||
| 86 | - definition = indexPath.row | ||
| 87 | - cancleActionTableView() | ||
| 88 | - } | ||
| 89 | - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | ||
| 90 | - return definitionArr.count | ||
| 91 | - } | ||
| 92 | - | ||
| 93 | - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | ||
| 94 | - var cell = tableView.dequeueReusableCell(withIdentifier: "cell") | ||
| 95 | - if cell == nil{ | ||
| 96 | - cell = UITableViewCell(style: .default, reuseIdentifier: "cell") | ||
| 97 | - } | ||
| 98 | - cell!.textLabel?.text = definitionArr[indexPath.row] | ||
| 99 | - return cell! | ||
| 100 | - } | ||
| 101 | - | ||
| 102 | - func cancleActionTableView(){ | ||
| 103 | - actionTableViewLocationView.removeFromSuperview() | ||
| 104 | - definitionSelectImage.image = #imageLiteral(resourceName: "botoom_image") | ||
| 105 | - } | ||
| 106 | - | ||
| 107 | - @IBAction func shareClickAction(_ sender: UITapGestureRecognizer) { | ||
| 108 | - var platformType:UMSocialPlatformType! | ||
| 109 | - var text:String = "大家快来观看,\(AppDelegate.instance().accountManager.name())正在直播" | ||
| 110 | - switch sender.view!.tag { | ||
| 111 | - case 100://微信朋友圈 | ||
| 112 | - platformType=UMSocialPlatformType.wechatTimeLine | ||
| 113 | - break | ||
| 114 | - case 101://微信 | ||
| 115 | - platformType=UMSocialPlatformType.wechatSession | ||
| 116 | - text = "\(AppDelegate.instance().accountManager.name())给您分享了一个直播,快来看啊" | ||
| 117 | - break | ||
| 118 | - case 102://QQ空间 | ||
| 119 | - platformType=UMSocialPlatformType.qzone | ||
| 120 | - | ||
| 121 | - break | ||
| 122 | - case 103://新浪微博 | ||
| 123 | - platformType=UMSocialPlatformType.sina | ||
| 124 | - //要求text加url | ||
| 125 | - break | ||
| 126 | - case 104://QQ | ||
| 127 | - platformType=UMSocialPlatformType.QQ | ||
| 128 | - text = "\(AppDelegate.instance().accountManager.name())给您分享了一个直播,快来看啊" | ||
| 129 | - break | ||
| 130 | - default: | ||
| 131 | - break | ||
| 132 | - } | ||
| 133 | - var title:String = liveDetail.f_LiveName | ||
| 134 | - if liveDetail.f_LiveName.characters.count > 8{ | ||
| 135 | - title = (liveDetail.f_LiveName as NSString).substring(to: 7)+"..." | ||
| 136 | - } | ||
| 137 | - shareUrl(text: text, url: "http://www.sxspy.net/MZhiBo/Index?LiveId="+liveDetail.f_Id, VC: self, image: titleImage.image!, platformType: platformType,title:title) | ||
| 138 | - } | ||
| 139 | - | ||
| 140 | - @IBAction func startLive(_ sender: Any) { | ||
| 141 | - let formatte=DateFormatter() | ||
| 142 | - formatte.dateFormat="yyyy-MM-dd HH:mm" | ||
| 143 | - //开始直播按钮 | ||
| 144 | - switch aliveIsStartOrEnd() { | ||
| 145 | - case 1: | ||
| 146 | - self.view.makeToast("开始时间:\(formatte.string(from: Date(timeIntervalSince1970: JSON.fromString(jsonString: liveDetail.f_Description)!["starttime"].doubleValue/1000 as TimeInterval)))") | ||
| 147 | - case 2: | ||
| 148 | - self.view.makeToast("直播已结束") | ||
| 149 | - | ||
| 150 | - case 3: | ||
| 151 | - let vc = AlivcLiveViewController(nibName: "AlivcLiveViewController", bundle: nil, url: liveDetail.f_Sid) | ||
| 152 | -// vc!.isScreenHorizontal = isScreenHorizontalBtn.isSelected | ||
| 153 | - vc!.isScreenHorizontal = true | ||
| 154 | - vc!.liveDetail = liveDetail | ||
| 155 | - vc!.title = AppDelegate.instance().accountManager.name()+"的直播间" | ||
| 156 | - vc!.userNameString = AppDelegate.instance().accountManager.name() | ||
| 157 | - vc!.definition = definition; | ||
| 158 | - vc!.endTimer = JSON.fromString(jsonString: liveDetail.f_Description)!["endtime"].doubleValue/1000 as TimeInterval | ||
| 159 | - vc!.isApplyChat = JSON.fromString(jsonString: liveDetail.f_Description)!["interactive"].boolValue | ||
| 160 | - // self.navigationController?.isNavigationBarHidden = false | ||
| 161 | - self.present(vc!, animated: true, completion: nil) | ||
| 162 | - | ||
| 163 | - | ||
| 164 | - default: | ||
| 165 | - break | ||
| 166 | - } | ||
| 167 | - } | ||
| 168 | - | ||
| 169 | - @IBAction func isScreenHorizontalBtnClickAction(_ sender: Any) { | ||
| 170 | - isScreenHorizontalBtn.isSelected = !isScreenHorizontalBtn.isSelected | ||
| 171 | - isScreenHorizontalBtn.setBackgroundImage(#imageLiteral(resourceName: "竖屏.png"), for: .normal) | ||
| 172 | - | ||
| 173 | -// var transform = CGAffineTransform(rotationAngle: 0) | ||
| 174 | -// self.view.frame = CGRect(x:0, y:0, width:getScreenWidth(),height:getScreenHeight()) | ||
| 175 | -// self.navigationController?.isNavigationBarHidden = false | ||
| 176 | - if isScreenHorizontalBtn.isSelected{ | ||
| 177 | - isScreenHorizontalBtn.setBackgroundImage(#imageLiteral(resourceName: "横屏.png"), for: .normal) | ||
| 178 | -// self.navigationController?.isNavigationBarHidden = true | ||
| 179 | -// transform = CGAffineTransform(rotationAngle: (CGFloat)(M_PI_2)) | ||
| 180 | -// self.view.frame = CGRect(x:0, y:0, width:getScreenHeight(),height:getScreenWidth()) | ||
| 181 | - } | ||
| 182 | -// self.view.transform = transform; | ||
| 183 | -// self.view.layoutSubviews() | ||
| 184 | - } | ||
| 185 | - | ||
| 186 | - func aliveIsStartOrEnd()->Int{//0:未开始,1:已结束,2:正在直播 | ||
| 187 | - let formatte=DateFormatter() | ||
| 188 | - formatte.dateFormat="yyyy-MM-dd HH:mm" | ||
| 189 | - //开始直播按钮 | ||
| 190 | - let nowDate=Date() | ||
| 191 | - let resultStart=nowDate.compare(Date(timeIntervalSince1970: JSON.fromString(jsonString: liveDetail.f_Description)!["starttime"].doubleValue/1000 as TimeInterval)) | ||
| 192 | - let resultEnd=nowDate.compare(Date(timeIntervalSince1970: JSON.fromString(jsonString: liveDetail.f_Description)!["endtime"].doubleValue/1000 as TimeInterval)) | ||
| 193 | - if resultStart == ComparisonResult.orderedAscending{ | ||
| 194 | - //还未到开始时间 | ||
| 195 | - return 1 | ||
| 196 | - }else if resultEnd == ComparisonResult.orderedDescending{ | ||
| 197 | - //已经结束 | ||
| 198 | - return 2 | ||
| 199 | - }else{ | ||
| 200 | - //可以正常直播 | ||
| 201 | - return 3 | ||
| 202 | - } | ||
| 203 | - } | ||
| 204 | - | ||
| 205 | - /* | ||
| 206 | - // MARK: - Navigation | ||
| 207 | - | ||
| 208 | - // In a storyboard-based application, you will often want to do a little preparation before navigation | ||
| 209 | - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { | ||
| 210 | - // Get the new view controller using segue.destinationViewController. | ||
| 211 | - // Pass the selected object to the new view controller. | ||
| 212 | - } | ||
| 213 | - */ | ||
| 214 | - | ||
| 215 | -} | ||
| 216 | - |
YouerLiveVideo/YouerLiveVideo/controller/Live/LiveVideoSettingViewController.swift
| @@ -1,436 +0,0 @@ | @@ -1,436 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// LiveVideoSettingViewController.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 左丞 on 16/11/10. | ||
| 6 | -// Copyright © 2016年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class LiveVideoSettingViewController: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate,ZSDSetPasswordViewDelegate,UITextViewDelegate,UITableViewDelegate,UITableViewDataSource{ | ||
| 12 | - @IBOutlet var defaultImage: UIImageView! | ||
| 13 | - @IBOutlet var applyLiveBtn: UIButton! | ||
| 14 | - @IBOutlet weak var addFiledBtn: UIButton! | ||
| 15 | - @IBOutlet var isRecord: UISwitch! //是否录制 | ||
| 16 | - @IBOutlet weak var isEveryOneCouldSpeak: UISwitch!//是否支持互动 | ||
| 17 | - @IBOutlet weak var isLookOfEveryone: UISwitch!//是否公开 | ||
| 18 | - @IBOutlet weak var startTime: UIButton! | ||
| 19 | - var startDate:Date? | ||
| 20 | - @IBOutlet weak var allTimeOfLive: UIButton! | ||
| 21 | - var endDate:Date? | ||
| 22 | - @IBOutlet var hiddenAnnouncementLabel: UILabel! | ||
| 23 | - @IBOutlet weak var groupAnnouncement: UITextView! | ||
| 24 | - @IBOutlet weak var liveImage: UIImageView! //直播间封面 | ||
| 25 | - | ||
| 26 | - @IBOutlet weak var hiddenLiveNameLabel: UILabel! | ||
| 27 | - @IBOutlet weak var liveNameLabel: UITextView!//直播间名称 | ||
| 28 | - @IBOutlet var categoryLabel: UILabel! //直播间分类 | ||
| 29 | - @IBOutlet weak var accessoryView: UIView! | ||
| 30 | - @IBOutlet var documentTableView: UITableView! | ||
| 31 | - var documentArray:[FileInfor]=[] | ||
| 32 | - @IBOutlet var documentTableViewHeight: NSLayoutConstraint! | ||
| 33 | - @IBOutlet weak var scrollViewContentSizeY: NSLayoutConstraint! | ||
| 34 | - var passWord:String! | ||
| 35 | - var isSetPassWord:Bool = false | ||
| 36 | - var fileImage:String=""//上传后的照片 | ||
| 37 | - var liveDetail:LiveDetail?//若是修改直播间信息则有这个参数 | ||
| 38 | - var category:String="" //分类ID | ||
| 39 | - var categoryName:String="" //分类名称 | ||
| 40 | - override func viewDidLoad() { | ||
| 41 | - super.viewDidLoad() | ||
| 42 | - applyLiveBtn.layer.borderWidth = 1 | ||
| 43 | - applyLiveBtn.layer.borderColor = UIColor.groupTableViewBackground.cgColor | ||
| 44 | - addFiledBtn.layer.cornerRadius = 5 | ||
| 45 | - addFiledBtn.layer.masksToBounds = true | ||
| 46 | - NotificationCenter.default.addObserver(self, selector: #selector(LiveVideoSettingViewController.KeyboardWillChangeFrame(_:)), name: NSNotification.Name.UIKeyboardWillChangeFrame, object: nil) | ||
| 47 | - var defaultHeight:CGFloat=616+100//有附件了 +50 | ||
| 48 | - if let item = liveDetail { | ||
| 49 | - category=item.f_Category | ||
| 50 | - categoryName=item.f_CategoryName | ||
| 51 | - if item.f_IsExamine==0{ //未审核 | ||
| 52 | - applyLiveBtn.setTitle("修改直播", for: UIControlState.normal) | ||
| 53 | - }else{//item.f_IsExamine=2 未通过 | ||
| 54 | - defaultHeight=586 | ||
| 55 | - self.view.isUserInteractionEnabled=false | ||
| 56 | - applyLiveBtn.isHidden=true | ||
| 57 | - } | ||
| 58 | - fileImage=item.f_LiveImg | ||
| 59 | - defaultImage.sd_setImage(with: URL(string: item.f_LiveImg), placeholderImage: UIImage(named:"default")) | ||
| 60 | - liveNameLabel.text=item.f_LiveName | ||
| 61 | - if let json=JSON.fromString(jsonString: item.f_Description){ | ||
| 62 | - hiddenAnnouncementLabel.isHidden=true | ||
| 63 | - groupAnnouncement.text=json["announcement"].stringValue | ||
| 64 | - let formatte=DateFormatter() | ||
| 65 | - formatte.dateFormat="yyyy-MM-dd HH:mm" | ||
| 66 | - startDate=Date(timeIntervalSince1970: json["starttime"].doubleValue/1000 as TimeInterval) | ||
| 67 | - self.startTime.setTitle("\(formatte.string(from: startDate!))", for: .normal) | ||
| 68 | - endDate=Date(timeIntervalSince1970: json["endtime"].doubleValue/1000 as TimeInterval) | ||
| 69 | - self.allTimeOfLive.setTitle("\(formatte.string(from: endDate!))", for: .normal) | ||
| 70 | - if json["record"] != nil{ | ||
| 71 | - isRecord.isOn=json["record"].boolValue | ||
| 72 | - }else{ | ||
| 73 | - isRecord.isOn=true | ||
| 74 | - } | ||
| 75 | - isLookOfEveryone.isOn=json["Public"].boolValue | ||
| 76 | - if !isLookOfEveryone.isOn { | ||
| 77 | - if self.zsdView != nil { | ||
| 78 | - self.zsdView.passwordTextField.text=json["roompasswd"].stringValue | ||
| 79 | - }else{ | ||
| 80 | - passWord=json["roompasswd"].stringValue | ||
| 81 | - } | ||
| 82 | - } | ||
| 83 | - isEveryOneCouldSpeak.isOn=json["interactive"].boolValue | ||
| 84 | - let doc = json["attachFiles"].arrayValue | ||
| 85 | - for item in doc{ | ||
| 86 | - documentArray.append(FileInfor(json: item)) | ||
| 87 | - } | ||
| 88 | - if documentArray.count>0 { | ||
| 89 | - accessoryView.isHidden=false | ||
| 90 | - documentTableViewHeight.constant=CGFloat(documentArray.count)*44 | ||
| 91 | - defaultHeight=defaultHeight+(CGFloat(documentArray.count)*44+50) | ||
| 92 | - } | ||
| 93 | - } | ||
| 94 | - } | ||
| 95 | - if defaultHeight >= getScreenHeight()-64{ | ||
| 96 | - scrollViewContentSizeY.constant = defaultHeight | ||
| 97 | - }else{ | ||
| 98 | - scrollViewContentSizeY.constant = getScreenHeight()-64 | ||
| 99 | - } | ||
| 100 | - } | ||
| 101 | - override func viewWillAppear(_ animated: Bool) { | ||
| 102 | - super.viewWillAppear(animated) | ||
| 103 | - categoryLabel.text=categoryName | ||
| 104 | - } | ||
| 105 | - func KeyboardWillChangeFrame(_ noti:NSNotification){ | ||
| 106 | - if isSetPassWord{ | ||
| 107 | - let info = noti.userInfo | ||
| 108 | - let endFrame = info![UIKeyboardFrameEndUserInfoKey] as! NSValue | ||
| 109 | - let dur = info![UIKeyboardAnimationDurationUserInfoKey] | ||
| 110 | - UIView.animate(withDuration: dur as! TimeInterval, animations: { () -> Void in | ||
| 111 | - self.zsdView.frame.origin.y = (endFrame.cgRectValue.origin.y - 100)/2 | ||
| 112 | - }) | ||
| 113 | - } | ||
| 114 | - } | ||
| 115 | - | ||
| 116 | - override func didReceiveMemoryWarning() { | ||
| 117 | - super.didReceiveMemoryWarning() | ||
| 118 | - // Dispose of any resources that can be recreated. | ||
| 119 | - } | ||
| 120 | - // MARK: - 点击直播封面设置按钮 | ||
| 121 | - @IBAction func liveImageTapAction(_ sender: AnyObject) { | ||
| 122 | - self.view.endEditing(true) | ||
| 123 | - let action=UIAlertController(title:nil,message:nil,preferredStyle:.actionSheet) | ||
| 124 | - let cameraAction=UIAlertAction(title: "拍照", style: UIAlertActionStyle.default) { (action) in | ||
| 125 | - if cameraOrPhotPermissions(1, view: self.view){ | ||
| 126 | - let vc = UIImagePickerController() | ||
| 127 | - vc.delegate = self | ||
| 128 | - vc.sourceType = .camera | ||
| 129 | - self.present(vc, animated: true, completion: nil) | ||
| 130 | - } | ||
| 131 | - } | ||
| 132 | - let photoAction=UIAlertAction(title: "从相册选择", style: UIAlertActionStyle.default) { (action) in | ||
| 133 | - if cameraOrPhotPermissions(0, view: self.view){ | ||
| 134 | - let vc = UIImagePickerController() | ||
| 135 | - vc.delegate = self | ||
| 136 | - vc.sourceType = .photoLibrary | ||
| 137 | - self.present(vc, animated: true, completion: nil) | ||
| 138 | - } | ||
| 139 | - } | ||
| 140 | - let cancleAction=UIAlertAction(title: "取消", style: UIAlertActionStyle.cancel) { (action) in | ||
| 141 | - } | ||
| 142 | - action.addAction(cameraAction) | ||
| 143 | - action.addAction(photoAction) | ||
| 144 | - action.addAction(cancleAction) | ||
| 145 | - self.present(action, animated: true, completion: nil) | ||
| 146 | - } | ||
| 147 | - // MARK: - 选择图片 | ||
| 148 | - func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { | ||
| 149 | - picker.dismiss(animated: true, completion: { () -> Void in | ||
| 150 | - var oimage = info[UIImagePickerControllerOriginalImage] as? UIImage | ||
| 151 | - oimage = oimage!.imageScaledToScale() | ||
| 152 | - let filePath=FilesManager.imageFilePath(String(format:"%f.jpg",Date().timeIntervalSince1970)) | ||
| 153 | - try? UIImageJPEGRepresentation(oimage!,0.7)!.write(to: URL(fileURLWithPath: filePath), options: [.atomic]) | ||
| 154 | - self.defaultImage.image = oimage | ||
| 155 | - self.updateImage(file: filePath) | ||
| 156 | - }) | ||
| 157 | - } | ||
| 158 | - func updateImage(file:String){ | ||
| 159 | - SVProgressHUD.show(withStatus: "图片上传中...") | ||
| 160 | - SVProgressHUD.setDefaultMaskType(.black) | ||
| 161 | - AppDelegate.instance().httpServer.uploadFile(file: NSURL(fileURLWithPath: file)) { (str, error) in | ||
| 162 | - SVProgressHUD.dismiss() | ||
| 163 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 164 | - let str=json.contentData().arrayValue[0].stringValue | ||
| 165 | - self.fileImage=str | ||
| 166 | - }, failHandler: { (error) in | ||
| 167 | - self.fileImage="" | ||
| 168 | - self.view.makeToast("图片上传失败:\(error.localizedDescription)") | ||
| 169 | - }) | ||
| 170 | - } | ||
| 171 | - } | ||
| 172 | - // MARK: - 点击直播分类选择分类 | ||
| 173 | - @IBAction func selectCategoryAction(_ sender: UIButton) { | ||
| 174 | - let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "MoreViewController") as! MoreViewController | ||
| 175 | - vc.superVC=self | ||
| 176 | - self.navigationController!.pushViewController(vc, animated: true) | ||
| 177 | - } | ||
| 178 | - // MARK: - 点击开始时间选择按钮 | ||
| 179 | - @IBAction func startTimeClickAction(_ sender: AnyObject) { | ||
| 180 | - self.view.endEditing(true) | ||
| 181 | - let datePicker=UIDatePicker() | ||
| 182 | - datePicker.datePickerMode=UIDatePickerMode.dateAndTime | ||
| 183 | - datePicker.date = Date(timeIntervalSinceNow: 60) | ||
| 184 | - datePicker.frame=CGRect(x: 0,y: 40,width: 270,height: 150) | ||
| 185 | - let alertController=UIAlertController(title: "请选择\n\n\n\n\n\n",message: nil,preferredStyle: .alert) | ||
| 186 | - let callActionHandler = { (action:UIAlertAction!) -> Void in | ||
| 187 | - let result = datePicker.date.compare(Date()) | ||
| 188 | - if result == ComparisonResult.orderedAscending { | ||
| 189 | - self.view.makeToast("请选择正确开始时间") | ||
| 190 | - self.startTime.setTitle("请选择", for: .normal) | ||
| 191 | - self.startDate=nil | ||
| 192 | - return | ||
| 193 | - } | ||
| 194 | - let formatte=DateFormatter() | ||
| 195 | - formatte.dateFormat="yyyy-MM-dd HH:mm" | ||
| 196 | - print("\(formatte.string(from: datePicker.date))") | ||
| 197 | - self.startTime.setTitle("\(formatte.string(from: datePicker.date))", for: .normal) | ||
| 198 | - self.startDate=datePicker.date | ||
| 199 | - } | ||
| 200 | - let cancelAction=UIAlertAction(title: "取消",style: .default, handler: nil) | ||
| 201 | - let action=UIAlertAction(title: "确定",style: .default, handler: callActionHandler) | ||
| 202 | - alertController.view.addSubview(datePicker) | ||
| 203 | - alertController.addAction(cancelAction) | ||
| 204 | - alertController.addAction(action) | ||
| 205 | - self.present(alertController, animated: true, completion: nil) | ||
| 206 | - } | ||
| 207 | - // MARK: - 点击结束时间选择按钮 | ||
| 208 | - @IBAction func allTimeClickAction(_ sender: AnyObject) { | ||
| 209 | - self.view.endEditing(true) | ||
| 210 | - let datePicker=UIDatePicker() | ||
| 211 | - datePicker.datePickerMode=UIDatePickerMode.dateAndTime | ||
| 212 | - if startDate == nil{ | ||
| 213 | - datePicker.date = Date(timeIntervalSinceNow: 4*60*60) | ||
| 214 | - }else{ | ||
| 215 | - datePicker.date = Date(timeInterval: 4*60*60, since: startDate!) | ||
| 216 | - } | ||
| 217 | - datePicker.frame=CGRect(x: 0,y: 40,width: 270,height: 150) | ||
| 218 | - let locale = Locale(identifier: "zh_CH") | ||
| 219 | - datePicker.locale = locale | ||
| 220 | - let alertController=UIAlertController(title: "请选择\n\n\n\n\n\n",message: nil,preferredStyle: .alert) | ||
| 221 | - let callActionHandler = { (action:UIAlertAction!) -> Void in | ||
| 222 | - if let start=self.startDate{ | ||
| 223 | - let result = datePicker.date.compare(start) | ||
| 224 | - if result == ComparisonResult.orderedAscending { | ||
| 225 | - self.view.makeToast("请选择正确结束时间") | ||
| 226 | - self.allTimeOfLive.setTitle("请选择", for: .normal) | ||
| 227 | - self.endDate=nil | ||
| 228 | - return | ||
| 229 | - }else if datePicker.date.timeIntervalSince(start)>4*60*60 { | ||
| 230 | - self.view.makeToast("直播时长最大为4小时") | ||
| 231 | - return | ||
| 232 | - } | ||
| 233 | - let formatte=DateFormatter() | ||
| 234 | - formatte.dateFormat="yyyy-MM-dd HH:mm" | ||
| 235 | - self.allTimeOfLive.setTitle("\(formatte.string(from: datePicker.date))", for: .normal) | ||
| 236 | - self.endDate=datePicker.date | ||
| 237 | - }else{ | ||
| 238 | - self.view.makeToast("请选择正确开始时间") | ||
| 239 | - } | ||
| 240 | - } | ||
| 241 | - let cancelAction=UIAlertAction(title: "取消",style: .default, handler: nil) | ||
| 242 | - let action=UIAlertAction(title: "确定",style: .default, handler: callActionHandler) | ||
| 243 | - alertController.view.addSubview(datePicker) | ||
| 244 | - alertController.addAction(cancelAction) | ||
| 245 | - alertController.addAction(action) | ||
| 246 | - self.present(alertController, animated: true, completion: nil) | ||
| 247 | - } | ||
| 248 | - // MARK: - 文档TableViewDelegate,TableViewDataSource | ||
| 249 | - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | ||
| 250 | - //点击文档下载并打开 | ||
| 251 | - let item=documentArray[indexPath.row] | ||
| 252 | - let down=DownLoad.share | ||
| 253 | - down.superVC=self | ||
| 254 | - down.downLoadWithUrl(url: item.url) | ||
| 255 | - } | ||
| 256 | - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | ||
| 257 | - return documentArray.count | ||
| 258 | - } | ||
| 259 | - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | ||
| 260 | - let item=documentArray[indexPath.row] | ||
| 261 | - let cell=tableView.dequeueReusableCell(withIdentifier: "documentTableViewCell", for: indexPath) as! documentTableViewCell | ||
| 262 | - cell.iconImageView.image=UIImage(named: selectImageFromString(string: item.name)) | ||
| 263 | - cell.titleLabel.text=item.name | ||
| 264 | - return cell | ||
| 265 | - } | ||
| 266 | - // MARK: - 底部申请直播按钮 | ||
| 267 | - @IBAction func applyLiveBtnClickAction(_ sender: AnyObject) { | ||
| 268 | - //申请直播 | ||
| 269 | - if liveNameLabel.text == ""{ | ||
| 270 | - AppDelegate.instance().window?.makeToast("直播间名字不能为空") | ||
| 271 | - return | ||
| 272 | - } | ||
| 273 | - if category=="" { | ||
| 274 | - AppDelegate.instance().window?.makeToast("直播间分类不能为空") | ||
| 275 | - return | ||
| 276 | - } | ||
| 277 | - if fileImage == ""{ | ||
| 278 | - AppDelegate.instance().window?.makeToast("直播间封面图片不能为空") | ||
| 279 | - return | ||
| 280 | - } | ||
| 281 | - if startDate == nil || endDate == nil{ | ||
| 282 | - AppDelegate.instance().window?.makeToast("直播间开始结束时间不能为空") | ||
| 283 | - return | ||
| 284 | - } | ||
| 285 | - var loadText:String="" | ||
| 286 | - var parameters:Dictionary<String,AnyObject> | ||
| 287 | - if liveDetail != nil { | ||
| 288 | - loadText="修改直播" | ||
| 289 | - parameters=["f_Id":liveDetail!.f_Id as AnyObject,"f_LiveName":liveNameLabel.text! as AnyObject,"f_LiveImg":fileImage as AnyObject,"f_Description":toJSON() as AnyObject,"f_Category":category as AnyObject] | ||
| 290 | - }else{ | ||
| 291 | - loadText="申请直播" | ||
| 292 | - parameters=["f_LiveName":liveNameLabel.text! as AnyObject,"f_LiveImg":fileImage as AnyObject,"f_Description":toJSON() as AnyObject,"f_Category":category as AnyObject] | ||
| 293 | - } | ||
| 294 | - SVProgressHUD.show(withStatus: "\(loadText)...") | ||
| 295 | - SVProgressHUD.setDefaultMaskType(.black) | ||
| 296 | - if liveDetail != nil { | ||
| 297 | - AppDelegate.instance().httpServer.postUpdateLive(parameters: parameters) { (str, error) in | ||
| 298 | - SVProgressHUD.dismiss() | ||
| 299 | - if error==nil { | ||
| 300 | - if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 301 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 302 | - self.navigationController!.popViewController(animated: true) | ||
| 303 | - AppDelegate.instance().window?.makeToast("修改直播成功,请等待审核") | ||
| 304 | - }, failHandler: { (error) in | ||
| 305 | - self.view.makeToast("修改直播失败:\(error.localizedDescription)") | ||
| 306 | - }) | ||
| 307 | - }else{ | ||
| 308 | - self.view.makeToast("修改直播失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
| 309 | - } | ||
| 310 | - }else{ | ||
| 311 | - self.view.makeToast("修改直播失败:\(error!.description)") | ||
| 312 | - } | ||
| 313 | - } | ||
| 314 | - }else{ | ||
| 315 | - AppDelegate.instance().httpServer.postCreateLive(parameters: parameters) { (str, error) in | ||
| 316 | - SVProgressHUD.dismiss() | ||
| 317 | - if error==nil { | ||
| 318 | - if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 319 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 320 | - self.navigationController!.popToRootViewController(animated: true) | ||
| 321 | - AppDelegate.instance().window?.makeToast("申请直播成功,请等待审核") | ||
| 322 | - }, failHandler: { (error) in | ||
| 323 | - self.view.makeToast("申请直播失败:\(error.localizedDescription)") | ||
| 324 | - }) | ||
| 325 | - }else{ | ||
| 326 | - self.view.makeToast("申请直播失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
| 327 | - } | ||
| 328 | - }else{ | ||
| 329 | - self.view.makeToast("申请直播失败:\(error!.description)") | ||
| 330 | - } | ||
| 331 | - } | ||
| 332 | - } | ||
| 333 | - } | ||
| 334 | - func toJSON()->String{ | ||
| 335 | - var info=Dictionary<String,AnyObject>() | ||
| 336 | - info["announcement"]=groupAnnouncement.text as AnyObject?//公告 | ||
| 337 | - info["starttime"]=(startDate?.timeIntervalSince1970)!*1000 as AnyObject?//毫秒单位 long类型 | ||
| 338 | - info["endtime"]=(endDate?.timeIntervalSince1970)!*1000 as AnyObject?//结束时间 long类型 | ||
| 339 | - info["record"]=isRecord.isOn as AnyObject? //是否录制 | ||
| 340 | - info["Public"]=isLookOfEveryone.isOn as AnyObject? //是否公开 | ||
| 341 | - info["interactive"]=isEveryOneCouldSpeak.isOn as AnyObject? //是否互动 | ||
| 342 | - if !isLookOfEveryone.isOn { | ||
| 343 | - info["roompasswd"] = self.zsdView != nil ? self.zsdView.passwordTextField.text! as AnyObject? : passWord as AnyObject? //房间密码 | ||
| 344 | - } | ||
| 345 | - if documentArray.count>0 { | ||
| 346 | - info["attachFiles"]=JSON.fromString(jsonString: liveDetail!.f_Description)!["attachFiles"].stringValue as AnyObject | ||
| 347 | - } | ||
| 348 | - return JSON(info).rawString() ?? "{}" | ||
| 349 | - } | ||
| 350 | - @IBAction func addFileClickAction(_ sender: AnyObject) { | ||
| 351 | - | ||
| 352 | - } | ||
| 353 | - var zsdView:ZSDSetPasswordView! | ||
| 354 | - var zsdbackView:UIView! | ||
| 355 | - @IBAction func lookOfEveryoneBtnClickAction(_ sender: AnyObject) { | ||
| 356 | - let switchs = sender as! UISwitch | ||
| 357 | - isSetPassWord = true | ||
| 358 | - if !switchs.isOn{ | ||
| 359 | - if zsdbackView == nil{ | ||
| 360 | - creatZSDView() | ||
| 361 | - }else{ | ||
| 362 | - zsdView.clearUpPassword() | ||
| 363 | - zsdView.fieldBecomeFirstResponder() | ||
| 364 | - self.view.addSubview(zsdbackView) | ||
| 365 | - } | ||
| 366 | - } | ||
| 367 | - | ||
| 368 | - } | ||
| 369 | - | ||
| 370 | - func creatZSDView(){ | ||
| 371 | - let zsdViewWidth :CGFloat = 200 | ||
| 372 | - zsdbackView = UIView(frame: UIScreen.main.bounds) | ||
| 373 | - zsdbackView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(LiveVideoSettingViewController.cancleZSDView))) | ||
| 374 | - zsdbackView.backgroundColor = UIColor.black.withAlphaComponent(0.7) | ||
| 375 | - zsdView = ZSDSetPasswordView(frame: CGRect(x: (getScreenWidth()-zsdViewWidth)/2, y: 0, width: zsdViewWidth, height: 90)) | ||
| 376 | - zsdView.delegate = self | ||
| 377 | - zsdView.layer.masksToBounds = true | ||
| 378 | - zsdView.layer.cornerRadius = 5 | ||
| 379 | - zsdView.fieldBecomeFirstResponder() | ||
| 380 | - let title = UILabel(frame: CGRect(x: (zsdViewWidth - 100)/2, y: 5, width: 100, height: 30)) | ||
| 381 | - title.text = "请输入密码" | ||
| 382 | - zsdView.addSubview(title) | ||
| 383 | - zsdbackView.addSubview(zsdView) | ||
| 384 | - self.view.addSubview(zsdbackView) | ||
| 385 | - } | ||
| 386 | - | ||
| 387 | - func passwordView(_ passwordView: ZSDSetPasswordView!, inputPassword password: String!) { | ||
| 388 | - passWord = password | ||
| 389 | - removeZSDView() | ||
| 390 | - } | ||
| 391 | - | ||
| 392 | - func cancleZSDView(){ | ||
| 393 | - if passWord == nil||passWord.characters.count < 4{ | ||
| 394 | - isLookOfEveryone.isOn = true | ||
| 395 | - } | ||
| 396 | - removeZSDView() | ||
| 397 | - } | ||
| 398 | - | ||
| 399 | - func removeZSDView(){ | ||
| 400 | - isSetPassWord = false | ||
| 401 | - zsdView.passwordTextField.resignFirstResponder() | ||
| 402 | - zsdbackView.removeFromSuperview() | ||
| 403 | - | ||
| 404 | - } | ||
| 405 | - | ||
| 406 | - func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { | ||
| 407 | - if text == "\n"{ | ||
| 408 | - textView.resignFirstResponder() | ||
| 409 | - return false | ||
| 410 | - } | ||
| 411 | - return true | ||
| 412 | - } | ||
| 413 | - func textViewDidChange(_ textView: UITextView) { | ||
| 414 | - var num = 40 | ||
| 415 | - var str = "直播间名字字数不能超过40字" | ||
| 416 | - if textView == liveNameLabel{ | ||
| 417 | - hiddenLiveNameLabel.isHidden=(textView.text.characters.count > 0) | ||
| 418 | - }else{ | ||
| 419 | - num = 200 | ||
| 420 | - str = "公告字数不能超过200字" | ||
| 421 | - hiddenAnnouncementLabel.isHidden=(textView.text.characters.count > 0) | ||
| 422 | - } | ||
| 423 | - if textView.text.characters.count > num{ | ||
| 424 | - textView.text = (textView.text as NSString).substring(to: num) | ||
| 425 | - textView.resignFirstResponder() | ||
| 426 | - let alert = UIAlertController(title: "提示", message: str, preferredStyle: .alert) | ||
| 427 | - alert.addAction(UIAlertAction(title: "取消", style: .cancel, handler: nil)) | ||
| 428 | - self.present(alert, animated: true, completion: nil) | ||
| 429 | - } | ||
| 430 | - } | ||
| 431 | - | ||
| 432 | -} | ||
| 433 | -class documentTableViewCell: UITableViewCell { | ||
| 434 | - @IBOutlet var iconImageView: UIImageView! | ||
| 435 | - @IBOutlet var titleLabel: UILabel! | ||
| 436 | -} |
YouerLiveVideo/YouerLiveVideo/controller/Live/PassWordView.swift
| @@ -1,61 +0,0 @@ | @@ -1,61 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// PassWordView.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 左丞 on 17/1/22. | ||
| 6 | -// Copyright © 2017年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class PassWordView: UIView ,ZSDSetPasswordViewDelegate{ | ||
| 12 | - | ||
| 13 | - @IBOutlet weak var zsdView: ZSDSetPasswordView! | ||
| 14 | - var superVC:UIViewController! | ||
| 15 | - var passWord:String! | ||
| 16 | - var delegate:PassWordEnterViewDelegate! | ||
| 17 | - /* | ||
| 18 | - // Only override draw() if you perform custom drawing. | ||
| 19 | - // An empty implementation adve rsely affects performance during animation. | ||
| 20 | - override func draw(_ rect: CGRect) { | ||
| 21 | - // Drawing code | ||
| 22 | - } | ||
| 23 | - */ | ||
| 24 | - override func awakeFromNib() { | ||
| 25 | - NotificationCenter.default.addObserver(self, selector: #selector(PassWordView.KeyboardWillChangeFrame(_:)), name: NSNotification.Name.UIKeyboardWillChangeFrame, object: nil) | ||
| 26 | - zsdView.delegate = self | ||
| 27 | - | ||
| 28 | - zsdView.frame = CGRect(x: (getScreenWidth()-200)/2, y: 0, width: 200, height: 90) | ||
| 29 | - zsdView.layer.masksToBounds = true | ||
| 30 | - zsdView.layer.cornerRadius = 5 | ||
| 31 | - zsdView.fieldBecomeFirstResponder() | ||
| 32 | - | ||
| 33 | - let title = UILabel(frame: CGRect(x: (200 - 100)/2, y: 5, width: 100, height: 30)) | ||
| 34 | - title.text = "请输入密码" | ||
| 35 | - zsdView.addSubview(title) | ||
| 36 | - self.addSubview(zsdView) | ||
| 37 | - } | ||
| 38 | - | ||
| 39 | - func KeyboardWillChangeFrame(_ noti:NSNotification){ | ||
| 40 | - let info = noti.userInfo | ||
| 41 | - let endFrame = info![UIKeyboardFrameEndUserInfoKey] as! NSValue | ||
| 42 | - let dur = info![UIKeyboardAnimationDurationUserInfoKey] | ||
| 43 | - UIView.animate(withDuration: dur as! TimeInterval, animations: { () -> Void in | ||
| 44 | - self.zsdView.frame.origin.y = (endFrame.cgRectValue.origin.y - 100)/2 | ||
| 45 | - }) | ||
| 46 | - } | ||
| 47 | - | ||
| 48 | - @IBAction func tapClick(_ sender: Any) { | ||
| 49 | - self.removeFromSuperview() | ||
| 50 | - } | ||
| 51 | - | ||
| 52 | - func passwordView(_ passwordView: ZSDSetPasswordView!, inputPassword password: String!) { | ||
| 53 | - if delegate != nil{ | ||
| 54 | - delegate.passwordView(password) | ||
| 55 | - } | ||
| 56 | - } | ||
| 57 | -} | ||
| 58 | - | ||
| 59 | -public protocol PassWordEnterViewDelegate : NSObjectProtocol { | ||
| 60 | - func passwordView(_ password: String!) | ||
| 61 | -} |
YouerLiveVideo/YouerLiveVideo/controller/Live/PassWordView.xib
| @@ -1,36 +0,0 @@ | @@ -1,36 +0,0 @@ | ||
| 1 | -<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
| 2 | -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11542" systemVersion="15G31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> | ||
| 3 | - <device id="retina4_7" orientation="portrait"> | ||
| 4 | - <adaptation id="fullscreen"/> | ||
| 5 | - </device> | ||
| 6 | - <dependencies> | ||
| 7 | - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11524"/> | ||
| 8 | - <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | ||
| 9 | - </dependencies> | ||
| 10 | - <objects> | ||
| 11 | - <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> | ||
| 12 | - <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> | ||
| 13 | - <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="PassWordView" customModule="YouerLiveVideo" customModuleProvider="target"> | ||
| 14 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 15 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 16 | - <subviews> | ||
| 17 | - <view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="BEL-mr-Ny5" customClass="ZSDSetPasswordView"> | ||
| 18 | - <rect key="frame" x="87.5" y="288.5" width="200" height="90"/> | ||
| 19 | - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
| 20 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 21 | - </view> | ||
| 22 | - </subviews> | ||
| 23 | - <color key="backgroundColor" white="0.0" alpha="0.22880595438918913" colorSpace="calibratedWhite"/> | ||
| 24 | - <gestureRecognizers/> | ||
| 25 | - <connections> | ||
| 26 | - <outlet property="zsdView" destination="BEL-mr-Ny5" id="LDH-Il-CEp"/> | ||
| 27 | - <outletCollection property="gestureRecognizers" destination="NkT-gQ-zHa" appends="YES" id="zen-Fy-QcB"/> | ||
| 28 | - </connections> | ||
| 29 | - </view> | ||
| 30 | - <tapGestureRecognizer id="NkT-gQ-zHa"> | ||
| 31 | - <connections> | ||
| 32 | - <action selector="tapClick:" destination="iN0-l3-epB" id="DDe-4T-dWB"/> | ||
| 33 | - </connections> | ||
| 34 | - </tapGestureRecognizer> | ||
| 35 | - </objects> | ||
| 36 | -</document> |
YouerLiveVideo/YouerLiveVideo/controller/LiveRoomDetailViewController.swift
| @@ -1,57 +0,0 @@ | @@ -1,57 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// LiveRoomDetailViewController.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 葛建军 on 16/11/11. | ||
| 6 | -// Copyright © 2016年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class LiveRoomDetailViewController: UIViewController { | ||
| 12 | - @IBOutlet var personIcon: UIImageView! | ||
| 13 | - @IBOutlet var personNameLabel: UILabel! | ||
| 14 | - @IBOutlet var startTimeLabel: UILabel! | ||
| 15 | - @IBOutlet var coverImage: UIImageView! | ||
| 16 | - @IBOutlet var imageH: NSLayoutConstraint! | ||
| 17 | - @IBOutlet var announcementLabel: UILabel! | ||
| 18 | - @IBOutlet var startDetailTimeLabel: UILabel! | ||
| 19 | - @IBOutlet var endDetailTimeLabel: UILabel! | ||
| 20 | - @IBOutlet var isPublic: UILabel! | ||
| 21 | - @IBOutlet var isInteractive: UILabel! | ||
| 22 | - @IBOutlet var isExamineLabel: UILabel! | ||
| 23 | - @IBOutlet var scrollContentViewH: NSLayoutConstraint! | ||
| 24 | - @IBOutlet var attachViewH: NSLayoutConstraint!//附件所在View的高度 | ||
| 25 | - var item:LiveDetail!//直播间详情 | ||
| 26 | - let formatte=DateFormatter() | ||
| 27 | - override func viewDidLoad() { | ||
| 28 | - super.viewDidLoad() | ||
| 29 | - attachViewH.constant=0 | ||
| 30 | - formatte.dateFormat="yyyy-MM-dd HH:mm:ss" | ||
| 31 | - personNameLabel.text=AppDelegate.instance().accountManager.name() | ||
| 32 | - startTimeLabel.text=formatte.string(from: Date(timeIntervalSince1970: JSON.fromString(jsonString: item.f_Description)!["starttime"].doubleValue/1000 as TimeInterval)) | ||
| 33 | - coverImage.sd_setImage(with: URL(string:item.f_LiveImg), placeholderImage: UIImage(named:"icon")) | ||
| 34 | - announcementLabel.text=JSON.fromString(jsonString: item.f_Description)!["announcement"].stringValue | ||
| 35 | - startDetailTimeLabel.text=formatte.string(from: Date(timeIntervalSince1970: JSON.fromString(jsonString: item.f_Description)!["starttime"].doubleValue/1000 as TimeInterval)) | ||
| 36 | - endDetailTimeLabel.text=formatte.string(from: Date(timeIntervalSince1970: JSON.fromString(jsonString: item.f_Description)!["endtime"].doubleValue/1000 as TimeInterval)) | ||
| 37 | - isPublic.text = JSON.fromString(jsonString: item.f_Description)!["Public"].boolValue ? "是" : "否" | ||
| 38 | - isInteractive.text = JSON.fromString(jsonString: item.f_Description)!["interactive"].boolValue ? "是" : "否" | ||
| 39 | - isExamineLabel.text = item.f_IsExamine==0 ? "待审核" : "审核未通过" | ||
| 40 | - imageH.constant=getScreenWidth() | ||
| 41 | - scrollContentViewH.constant=50+imageH.constant+250 | ||
| 42 | - } | ||
| 43 | - @IBAction func backAction(_ sender: UIBarButtonItem) { | ||
| 44 | - self.navigationController!.popViewController(animated: true) | ||
| 45 | - } | ||
| 46 | - | ||
| 47 | - | ||
| 48 | - | ||
| 49 | - | ||
| 50 | - | ||
| 51 | - | ||
| 52 | - | ||
| 53 | - | ||
| 54 | - override func didReceiveMemoryWarning() { | ||
| 55 | - super.didReceiveMemoryWarning() | ||
| 56 | - } | ||
| 57 | -} |
YouerLiveVideo/YouerLiveVideo/controller/LiveTypeListViewController.swift
| @@ -1,135 +0,0 @@ | @@ -1,135 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// LiveTypeListViewController.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 葛建军 on 17/1/20. | ||
| 6 | -// Copyright © 2017年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class LiveTypeListViewController: UIViewController,UITableViewDelegate,UITableViewDataSource ,PassWordEnterViewDelegate{ | ||
| 12 | - var isType:Bool=true //Typ分类的,Org机构的 | ||
| 13 | - var F_OrganizeId:String="" | ||
| 14 | - var F_LiveType:String="" | ||
| 15 | - var Lives:[LiveDetail]=[] | ||
| 16 | - var index:Int=0 | ||
| 17 | - @IBOutlet var tableView: UITableView! | ||
| 18 | - var passWordView:PassWordView! | ||
| 19 | - override func viewDidLoad() { | ||
| 20 | - super.viewDidLoad() | ||
| 21 | - passWordView = Bundle.main.loadNibNamed("PassWordView", owner: nil, options: nil)?[0] as! PassWordView | ||
| 22 | - passWordView.delegate = self | ||
| 23 | - tableView.register(UINib(nibName: "HomeTableViewCell", bundle: nil), forCellReuseIdentifier: "cell") | ||
| 24 | - let header=MJRefreshNormalHeader(refreshingBlock: { | ||
| 25 | - self.index=0 | ||
| 26 | - self.getHotLiveList { (success) in | ||
| 27 | - self.tableView.mj_header.endRefreshing() | ||
| 28 | - } | ||
| 29 | - }) | ||
| 30 | - header?.lastUpdatedTimeLabel.isHidden=true | ||
| 31 | - tableView.mj_header=header | ||
| 32 | - tableView.mj_footer=MJRefreshBackNormalFooter(refreshingBlock: { | ||
| 33 | - self.getHotLiveList { (success) in | ||
| 34 | - self.tableView.mj_footer.endRefreshing() | ||
| 35 | - } | ||
| 36 | - }) | ||
| 37 | - getHotLiveList { (success) in | ||
| 38 | - } | ||
| 39 | - } | ||
| 40 | - func getHotLiveList(completionHandler:@escaping (Bool) -> ()){ | ||
| 41 | - SVProgressHUD.show(withStatus: "加载中...") | ||
| 42 | - SVProgressHUD.setDefaultMaskType(.black) | ||
| 43 | - var parameters:Dictionary<String,AnyObject>=[:] | ||
| 44 | - var name:String="" | ||
| 45 | - if isType { | ||
| 46 | - name="分类" | ||
| 47 | - parameters=["PageIndex":index as AnyObject,"PageSize":10 as AnyObject,"WhatLive":"Typ" as AnyObject,"F_LiveType":F_LiveType as AnyObject] | ||
| 48 | - }else{ | ||
| 49 | - name="学校" | ||
| 50 | - parameters=["PageIndex":index as AnyObject,"PageSize":10 as AnyObject,"WhatLive":"Org" as AnyObject,"F_OrganizeId":F_OrganizeId as AnyObject] | ||
| 51 | - } | ||
| 52 | - AppDelegate.instance().httpServer.getLive(parameters: parameters, completionHandler: { (str, error) in | ||
| 53 | - var success:Bool=true | ||
| 54 | - SVProgressHUD.dismiss() | ||
| 55 | - if error==nil { | ||
| 56 | - if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 57 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 58 | - success=true | ||
| 59 | - let lives=LiveDetail.getAllLives(j: json) | ||
| 60 | - if lives.count>0{ | ||
| 61 | - self.index+=1 | ||
| 62 | - if self.index==1 { | ||
| 63 | - self.Lives=lives | ||
| 64 | - }else{ | ||
| 65 | - self.Lives+=lives | ||
| 66 | - } | ||
| 67 | - } | ||
| 68 | - self.tableView.reloadData() | ||
| 69 | - }, failHandler: { (error) in | ||
| 70 | - success=false | ||
| 71 | - AppDelegate.instance().window?.makeToast("获取\(name)列表失败:\(error.localizedDescription)") | ||
| 72 | - }) | ||
| 73 | - }else{ | ||
| 74 | - success=false | ||
| 75 | - AppDelegate.instance().window?.makeToast("获取\(name)列表失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
| 76 | - } | ||
| 77 | - }else{ | ||
| 78 | - success=false | ||
| 79 | - AppDelegate.instance().window?.makeToast("获取\(name)列表失败:\(error!.description)") | ||
| 80 | - } | ||
| 81 | - completionHandler(success) | ||
| 82 | - }) | ||
| 83 | - } | ||
| 84 | - var selectLiv:LiveDetail! | ||
| 85 | - | ||
| 86 | - // MARK: - UITableViewDataSource,UITableViewDelegate | ||
| 87 | - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | ||
| 88 | - selectLiv=Lives[indexPath.row] | ||
| 89 | - let dic = JSON.fromString(jsonString: selectLiv.f_Description)! | ||
| 90 | - if dic["Public"].boolValue{ | ||
| 91 | - persentToMoivePlayer(from: self, liv: selectLiv) | ||
| 92 | - }else{ | ||
| 93 | - passWordView.passWord = dic["roompasswd"].stringValue | ||
| 94 | - passWordView.zsdView.clearUpPassword() | ||
| 95 | - passWordView.zsdView.passwordTextField.becomeFirstResponder() | ||
| 96 | - self.view.addSubview(passWordView) | ||
| 97 | - } | ||
| 98 | - | ||
| 99 | - } | ||
| 100 | - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | ||
| 101 | - return Lives.count | ||
| 102 | - } | ||
| 103 | - func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { | ||
| 104 | - //return 70+getScreenWidth()/2 | ||
| 105 | - return 331 | ||
| 106 | - } | ||
| 107 | - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | ||
| 108 | - let cell=tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! HomeTableViewCell | ||
| 109 | - cell.setUpWith(item: Lives[indexPath.row]) | ||
| 110 | - return cell | ||
| 111 | - } | ||
| 112 | - | ||
| 113 | - func passwordView(_ password: String!) { | ||
| 114 | - passWordView.zsdView.passwordTextField.resignFirstResponder() | ||
| 115 | - persentToMoivePlayer(from: self, liv: selectLiv) | ||
| 116 | - passWordView.removeFromSuperview() | ||
| 117 | - } | ||
| 118 | - | ||
| 119 | - override func didReceiveMemoryWarning() { | ||
| 120 | - super.didReceiveMemoryWarning() | ||
| 121 | - // Dispose of any resources that can be recreated. | ||
| 122 | - } | ||
| 123 | - | ||
| 124 | - | ||
| 125 | - /* | ||
| 126 | - // MARK: - Navigation | ||
| 127 | - | ||
| 128 | - // In a storyboard-based application, you will often want to do a little preparation before navigation | ||
| 129 | - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { | ||
| 130 | - // Get the new view controller using segue.destinationViewController. | ||
| 131 | - // Pass the selected object to the new view controller. | ||
| 132 | - } | ||
| 133 | - */ | ||
| 134 | - | ||
| 135 | -} |
YouerLiveVideo/YouerLiveVideo/controller/MainViewController.swift
| @@ -1,94 +0,0 @@ | @@ -1,94 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// MainViewController.swift | ||
| 3 | -// XSTLive | ||
| 4 | -// | ||
| 5 | -// Created by 葛建军 on 16/11/9. | ||
| 6 | -// Copyright © 2016年 HANGZHOUTEAM. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class MainViewController: UITabBarController,UITabBarControllerDelegate { | ||
| 12 | - var button:UIButton! | ||
| 13 | - override func viewDidLoad() { | ||
| 14 | - super.viewDidLoad() | ||
| 15 | - let backButton=UIBarButtonItem() | ||
| 16 | - backButton.title="返回" | ||
| 17 | - self.navigationItem.backBarButtonItem=backButton | ||
| 18 | - self.title="教育视频云" | ||
| 19 | - self.configTheme() | ||
| 20 | - self.tabBar.tintColor = Theme.topBarColor() | ||
| 21 | - tabBar.barTintColor = UIColor.white | ||
| 22 | - // 添加突出按钮 | ||
| 23 | -// addCenterButtonWithImage(UIImage(named: "开始直播")!, selectedImage: UIImage(named: "psb.jpg")!) | ||
| 24 | - // UITabBarControllerDelegate 指定为自己 | ||
| 25 | - self.delegate = self | ||
| 26 | - //指定当前页——中间页 | ||
| 27 | - self.selectedIndex = 0 | ||
| 28 | - //设点button状态 | ||
| 29 | -// button.isSelected = true | ||
| 30 | - | ||
| 31 | - let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 30, height: 30)) | ||
| 32 | - imageView.image = UIImage(named: "icon") | ||
| 33 | - self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: imageView) | ||
| 34 | - //1消息 2通讯录 3动态 4我的 storyboard里设置selectedImage没用,这里设置下,顺便排个序 | ||
| 35 | - let items=tabBar.items | ||
| 36 | - tabBar.tintColor = Theme.topBarColor() | ||
| 37 | - for item in items!{ | ||
| 38 | - switch item.tag{ | ||
| 39 | - case 1: | ||
| 40 | - item.selectedImage=UIImage(named:"视窗")!.withRenderingMode(UIImageRenderingMode.alwaysTemplate) | ||
| 41 | - case 2: | ||
| 42 | - item.selectedImage=UIImage(named:"首页")!.withRenderingMode(UIImageRenderingMode.alwaysTemplate) | ||
| 43 | - default: | ||
| 44 | - break | ||
| 45 | - } | ||
| 46 | - } | ||
| 47 | - } | ||
| 48 | -// // MARK: - addCenterButton | ||
| 49 | -// func addCenterButtonWithImage(_ buttonImage:UIImage,selectedImage:UIImage){ | ||
| 50 | -// button = UIButton(type: UIButtonType.custom) | ||
| 51 | -// button.addTarget(self, action: #selector(MainViewController.pressChange(_:)), for: UIControlEvents.touchUpInside) | ||
| 52 | -// button.autoresizingMask = [.flexibleRightMargin,.flexibleLeftMargin,.flexibleTopMargin,.flexibleBottomMargin] | ||
| 53 | -// // 设定button大小为适应图片 | ||
| 54 | -// button.frame = CGRect(x: 0.0, y: 0.0, width: 75,height: 75)//buttonImage.size.width, buttonImage.size.height) | ||
| 55 | -// button.setImage(buttonImage, for: UIControlState()) | ||
| 56 | -//// button.setImage(selectedImage, forState: UIControlState.Selected) | ||
| 57 | -// // 这个比较恶心 去掉选中button时候的阴影 | ||
| 58 | -// button.adjustsImageWhenHighlighted = false | ||
| 59 | -// /* | ||
| 60 | -// * 核心代码:设置button的center 和 tabBar的 center 做对齐操作, 同时做出相对的上浮 | ||
| 61 | -// */ | ||
| 62 | -// var center = self.tabBar.center | ||
| 63 | -// center.y = center.y - self.tabBar.frame.size.height/2 | ||
| 64 | -// button.center = center | ||
| 65 | -// self.view.addSubview(button) | ||
| 66 | -// } | ||
| 67 | - //点击中间按钮 | ||
| 68 | -// func pressChange(_ sender:UIButton){ | ||
| 69 | -// buildLiveAction() | ||
| 70 | -// } | ||
| 71 | - | ||
| 72 | - override var shouldAutorotate: Bool{ | ||
| 73 | - return false | ||
| 74 | - } | ||
| 75 | - | ||
| 76 | -// //创建直播间或者登录账号 | ||
| 77 | -// func buildLiveAction(){ | ||
| 78 | -// if AppDelegate.instance().accountManager.isOnline() { | ||
| 79 | -// let vc = UIStoryboard(name: "Live", bundle: nil).instantiateViewController(withIdentifier: "LiveVideoSettingViewControllerVC") as! LiveVideoSettingViewController | ||
| 80 | -// vc.title = "直播设置" | ||
| 81 | -// self.navigationController?.pushViewController(vc, animated: true) | ||
| 82 | -// }else{ | ||
| 83 | -// let vc = UIStoryboard(name: "User", bundle: nil).instantiateViewController(withIdentifier: "LoginViewControllerVC") as! LoginViewController | ||
| 84 | -// self.present(vc.wrapWithNavigationController(), animated: true, completion: nil) | ||
| 85 | -// } | ||
| 86 | -// } | ||
| 87 | - // MARK: - TabBar Delegate | ||
| 88 | - func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) { | ||
| 89 | - } | ||
| 90 | - override func didReceiveMemoryWarning() { | ||
| 91 | - super.didReceiveMemoryWarning() | ||
| 92 | - } | ||
| 93 | - | ||
| 94 | -} |
YouerLiveVideo/YouerLiveVideo/controller/MoreViewController.swift
| @@ -1,69 +0,0 @@ | @@ -1,69 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// MoreViewController.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 葛建军 on 17/1/16. | ||
| 6 | -// Copyright © 2017年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class MoreViewController: UIViewController,UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout { | ||
| 12 | - var superVC:LiveVideoSettingViewController? | ||
| 13 | - var liveTypeArray:[LiveType]=[] | ||
| 14 | - var type:String="Live" | ||
| 15 | - @IBOutlet var collectionView: UICollectionView! | ||
| 16 | - override func viewDidLoad() { | ||
| 17 | - super.viewDidLoad() | ||
| 18 | - collectionView.register(UINib(nibName: "liveTitleCollectionCell", bundle: nil), forCellWithReuseIdentifier: "liveTitleCollectionCell") | ||
| 19 | - getLiveTypeList() | ||
| 20 | - } | ||
| 21 | - func getLiveTypeList(){ | ||
| 22 | - AppDelegate.instance().httpServer.postLiveType(type: type) { (str, error) in | ||
| 23 | - if error==nil { | ||
| 24 | - if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 25 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 26 | - self.liveTypeArray=LiveType.getAllLiveType(j: json) | ||
| 27 | - self.collectionView.reloadData() | ||
| 28 | - }, failHandler: { (error) in | ||
| 29 | - NSLog("获取分类列表失败:\(error.localizedDescription)") | ||
| 30 | - }) | ||
| 31 | - }else{ | ||
| 32 | - NSLog("获取分类列表失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
| 33 | - } | ||
| 34 | - }else{ | ||
| 35 | - NSLog("获取分类列表失败失败:\(error!.description)") | ||
| 36 | - } | ||
| 37 | - } | ||
| 38 | - } | ||
| 39 | - override func didReceiveMemoryWarning() { | ||
| 40 | - super.didReceiveMemoryWarning() | ||
| 41 | - } | ||
| 42 | - //MARK: - UICollectionViewDelegateFlowLayout | ||
| 43 | - func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { | ||
| 44 | - return CGSize(width: getScreenWidth()/4, height: getScreenWidth()/4) | ||
| 45 | - } | ||
| 46 | - //MARK: - UICollectionViewDelegate,UICollectionViewDataSource | ||
| 47 | - func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { | ||
| 48 | - return liveTypeArray.count | ||
| 49 | - } | ||
| 50 | - func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { | ||
| 51 | - let cell=collectionView.dequeueReusableCell(withReuseIdentifier: "liveTitleCollectionCell", for: indexPath) as! liveTitleCollectionCell | ||
| 52 | - cell.setUpWith(type: liveTypeArray[indexPath.row]) | ||
| 53 | - return cell | ||
| 54 | - } | ||
| 55 | - func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { | ||
| 56 | - let item=liveTypeArray[indexPath.row] | ||
| 57 | - if superVC != nil { | ||
| 58 | - self.superVC!.category=item.f_Id | ||
| 59 | - self.superVC!.categoryName=item.f_LiveTypeName | ||
| 60 | - self.navigationController!.popViewController(animated: true) | ||
| 61 | - return | ||
| 62 | - } | ||
| 63 | - let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LiveTypeListViewController") as! LiveTypeListViewController | ||
| 64 | - vc.isType=true | ||
| 65 | - vc.F_LiveType=item.f_Id | ||
| 66 | - vc.title=item.f_LiveTypeName | ||
| 67 | - self.navigationController!.pushViewController(vc, animated: true) | ||
| 68 | - } | ||
| 69 | -} |
YouerLiveVideo/YouerLiveVideo/controller/MyViewController.swift
| @@ -1,87 +0,0 @@ | @@ -1,87 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// MyViewController.swift | ||
| 3 | -// XSTLive | ||
| 4 | -// | ||
| 5 | -// Created by 葛建军 on 16/11/9. | ||
| 6 | -// Copyright © 2016年 HANGZHOUTEAM. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class MyViewController: UIViewController,UITableViewDelegate,UITableViewDataSource { | ||
| 12 | - var dataSet:[Live]=[Live(image:"直播列表",name:"直播列表",url:"直播列表的地址",type: LivesType.liveList),Live(image:"直播历史",name:"直播历史",url:"直播历史的地址",type: LivesType.liveHistory),Live(image:"我的关注",name:"我的关注",url:"关注地址",type: LivesType.other)]//,Live(image:"观看历史",name:"观看历史",url:"观看历史的地址",type: LivesType.watchHistory),Live(image:"我的充值",name:"我的充值",url:"处理充值",type: LivesType.other) | ||
| 13 | - @IBOutlet var userView: UIView! | ||
| 14 | - @IBOutlet var nouserLabel: UILabel! | ||
| 15 | - @IBOutlet var iconImage: UIImageView! | ||
| 16 | - @IBOutlet var nameLabel: UILabel! | ||
| 17 | - @IBOutlet var numberLabel: UILabel! | ||
| 18 | - @IBOutlet var tableView: UITableView! | ||
| 19 | - override func viewDidLoad() { | ||
| 20 | - super.viewDidLoad() | ||
| 21 | - NotificationCenter.default.addObserver(self, selector: #selector(MyViewController.refreshUser), name: NSNotification.Name(rawValue: "refreshFirstVC"), object: nil) | ||
| 22 | - } | ||
| 23 | - override func viewWillAppear(_ animated: Bool) { | ||
| 24 | - refreshUser() | ||
| 25 | - } | ||
| 26 | - func refreshUser(){ | ||
| 27 | - if !AppDelegate.instance().accountManager.isOnline() { | ||
| 28 | - userView.isHidden=true | ||
| 29 | - nouserLabel.isHidden=false | ||
| 30 | - iconImage.image=UIImage(named:"defphoto") | ||
| 31 | - }else{ | ||
| 32 | - userView.isHidden=false | ||
| 33 | - nouserLabel.isHidden=true | ||
| 34 | - iconImage.sd_setImage(with: URL(string: AppDelegate.instance().accountManager.photo()), placeholderImage: UIImage(named:"defphoto")) | ||
| 35 | - nameLabel.text="昵称:"+AppDelegate.instance().accountManager.name() | ||
| 36 | - numberLabel.text="账号:"+AppDelegate.instance().accountManager.phone() | ||
| 37 | - } | ||
| 38 | - } | ||
| 39 | - | ||
| 40 | - @IBAction func photoImageTapAction(_ sender: AnyObject) { | ||
| 41 | - if !AppDelegate.instance().accountManager.isOnline(){ | ||
| 42 | - let vc = UIStoryboard(name: "User", bundle: nil).instantiateViewController(withIdentifier: "LoginViewControllerVC") as! LoginViewController | ||
| 43 | - self.present(vc.wrapWithNavigationController(), animated: true, completion: nil) | ||
| 44 | - }else{ | ||
| 45 | - //设置页面 | ||
| 46 | - let vc = UIStoryboard(name: "User", bundle: nil).instantiateViewController(withIdentifier: "PersonalSettingViewControllerVC") as! PersonalSettingViewController | ||
| 47 | - self.navigationController!.pushViewController(vc, animated: true) | ||
| 48 | - } | ||
| 49 | - } | ||
| 50 | - override func didReceiveMemoryWarning() { | ||
| 51 | - super.didReceiveMemoryWarning() | ||
| 52 | - } | ||
| 53 | - | ||
| 54 | - // MARK: -UITableViewDelegate UITableViewDataSource | ||
| 55 | - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | ||
| 56 | - return dataSet.count | ||
| 57 | - } | ||
| 58 | - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | ||
| 59 | - let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! MyTableViewCell | ||
| 60 | - let list=dataSet[(indexPath as NSIndexPath).row] | ||
| 61 | - cell.titleImage.image=UIImage(named: "\(list.image)") | ||
| 62 | - cell.titleLabel.text=list.name | ||
| 63 | - return cell | ||
| 64 | - } | ||
| 65 | - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | ||
| 66 | - if AppDelegate.instance().accountManager.isOnline() { | ||
| 67 | - let list=dataSet[(indexPath as NSIndexPath).row] | ||
| 68 | - if indexPath.row==0 || indexPath.row==1{ | ||
| 69 | - let liveRoomsVC=Story.instantiateViewControllerWithIdentifier("LiveListViewController", storyName: "User") as! LiveListViewController | ||
| 70 | - liveRoomsVC.type=list.type | ||
| 71 | - liveRoomsVC.title=list.name | ||
| 72 | - self.navigationController?.pushViewController(liveRoomsVC, animated: true) | ||
| 73 | - }else if indexPath.row==2{ | ||
| 74 | - let schoolAttentionVC=Story.instantiateViewControllerWithIdentifier("MyAttentionViewController", storyName: "User") as! MyAttentionViewController | ||
| 75 | - self.navigationController?.pushViewController(schoolAttentionVC, animated: true) | ||
| 76 | - }else{ | ||
| 77 | - AppDelegate.instance().window?.makeToast("\(list.name)") | ||
| 78 | - } | ||
| 79 | - }else{ | ||
| 80 | - AppDelegate.instance().window?.makeToast("请先登录") | ||
| 81 | - } | ||
| 82 | - } | ||
| 83 | -} | ||
| 84 | -class MyTableViewCell: UITableViewCell { | ||
| 85 | - @IBOutlet var titleImage: UIImageView! | ||
| 86 | - @IBOutlet var titleLabel: UILabel! | ||
| 87 | -} |
YouerLiveVideo/YouerLiveVideo/controller/UserCenter/LiveListViewController.swift
| @@ -1,220 +0,0 @@ | @@ -1,220 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// LiveListViewController.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 葛建军 on 17/1/17. | ||
| 6 | -// Copyright © 2017年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | -enum LivesType:Int { | ||
| 11 | - case liveList //直播列表 | ||
| 12 | - case liveHistory //直播历史 | ||
| 13 | - case watchHistory //观看历史 | ||
| 14 | - case other //其他 | ||
| 15 | -} | ||
| 16 | -class LiveListViewController: UIViewController,UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout,UITableViewDelegate,UITableViewDataSource { | ||
| 17 | - @IBOutlet var iconImage: UIImageView! | ||
| 18 | - @IBOutlet var nameLabel: UILabel! | ||
| 19 | - @IBOutlet var numberLabel: UILabel! | ||
| 20 | - var type:LivesType! | ||
| 21 | - @IBOutlet var titleCollectionView: UICollectionView! | ||
| 22 | - @IBOutlet var titleViewHeight: NSLayoutConstraint! | ||
| 23 | - var titleDataSet:[String]=["全部","审核通过","审核未通过","待审核"] | ||
| 24 | - @IBOutlet var liveListTableView: UITableView! | ||
| 25 | - var allListRoom:[LiveDetail]=[] | ||
| 26 | - var roomListDataSet:[LiveDetail]=[] | ||
| 27 | - var currentType:Int=0//测试改变顶部状态时 | ||
| 28 | - override func viewDidLoad() { | ||
| 29 | - super.viewDidLoad() | ||
| 30 | - liveListTableView.register(UINib(nibName: "HomeTableViewCell", bundle: nil), forCellReuseIdentifier: "cell") | ||
| 31 | - } | ||
| 32 | - override func viewWillAppear(_ animated: Bool) { | ||
| 33 | - super.viewWillAppear(animated) | ||
| 34 | - refreshUser() | ||
| 35 | - getListWithType() | ||
| 36 | - } | ||
| 37 | - //MARK: - 刷新个人信息 | ||
| 38 | - func refreshUser(){ | ||
| 39 | - //顶部collectionView的展示与否 | ||
| 40 | - if type==LivesType.liveList{ | ||
| 41 | - titleViewHeight.constant=40 | ||
| 42 | - }else{ | ||
| 43 | - titleViewHeight.constant=0 | ||
| 44 | - } | ||
| 45 | - //这里必然在线,不用判断是否在线 | ||
| 46 | - iconImage.sd_setImage(with: URL(string: AppDelegate.instance().accountManager.photo()), placeholderImage: UIImage(named:"defphoto")) | ||
| 47 | - nameLabel.text="昵称:"+AppDelegate.instance().accountManager.name() | ||
| 48 | - numberLabel.text="账号:"+AppDelegate.instance().accountManager.phone() | ||
| 49 | - } | ||
| 50 | - //MARK: - 刷新直播列表信息 | ||
| 51 | - func getListWithType(){ | ||
| 52 | - SVProgressHUD.show(withStatus: "加载中...") | ||
| 53 | - SVProgressHUD.setDefaultMaskType(.black) | ||
| 54 | - //清空数据 | ||
| 55 | - switch type.hashValue { | ||
| 56 | - case 0: | ||
| 57 | - let parameters:Dictionary<String,AnyObject>=["PageIndex":0 as AnyObject,"PageSize":INT32_MAX as AnyObject,"WhatLive":"My" as AnyObject] | ||
| 58 | - AppDelegate.instance().httpServer.getLive(parameters: parameters, completionHandler: { (str, error) in | ||
| 59 | - SVProgressHUD.dismiss() | ||
| 60 | - if error==nil { | ||
| 61 | - if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 62 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 63 | - self.allListRoom=LiveDetail.getAllLives(j: json) | ||
| 64 | - self.roomListDataSet=self.allListRoom | ||
| 65 | - self.liveListTableView.reloadData() | ||
| 66 | - }, failHandler: { (error) in | ||
| 67 | - self.view.makeToast("获取直播列表失败:\(error.localizedDescription)") | ||
| 68 | - }) | ||
| 69 | - }else{ | ||
| 70 | - self.view.makeToast("获取直播列表失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
| 71 | - } | ||
| 72 | - }else{ | ||
| 73 | - self.view.makeToast("获取直播列表失败:\(error!.description)") | ||
| 74 | - } | ||
| 75 | - }) | ||
| 76 | - break | ||
| 77 | - case 1: | ||
| 78 | - let parameters:Dictionary<String,AnyObject>=["PageIndex":0 as AnyObject,"PageSize":INT32_MAX as AnyObject,"WhatLive":"My" as AnyObject] | ||
| 79 | - AppDelegate.instance().httpServer.getLive(parameters: parameters, completionHandler: { (str, error) in | ||
| 80 | - SVProgressHUD.dismiss() | ||
| 81 | - if error==nil { | ||
| 82 | - if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 83 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 84 | - for item in LiveDetail.getAllLives(j: json){ | ||
| 85 | - if item.f_IsExamine==1{ | ||
| 86 | - self.allListRoom.append(item) | ||
| 87 | - } | ||
| 88 | - } | ||
| 89 | - self.roomListDataSet=self.allListRoom | ||
| 90 | - self.liveListTableView.reloadData() | ||
| 91 | - }, failHandler: { (error) in | ||
| 92 | - self.view.makeToast("获取直播列表失败:\(error.localizedDescription)") | ||
| 93 | - }) | ||
| 94 | - }else{ | ||
| 95 | - self.view.makeToast("获取直播列表失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
| 96 | - } | ||
| 97 | - }else{ | ||
| 98 | - self.view.makeToast("获取直播列表失败:\(error!.description)") | ||
| 99 | - } | ||
| 100 | - }) | ||
| 101 | -// AppDelegate.instance().httpServer.getPlayHistory(completionHandler: { (str, error) in | ||
| 102 | -// SVProgressHUD.dismiss() | ||
| 103 | -// if error == nil&&JSON.fromString(jsonString: str)!["issuccess"].intValue == 1{ | ||
| 104 | -// //处理数据{"issuccess":1,"data":[{"name":"直播历史1"},{"name":"直播历史2"}]} | ||
| 105 | -// }else{ | ||
| 106 | -// self.view.makeToast("获取直播历史失败") | ||
| 107 | -// } | ||
| 108 | -// }) | ||
| 109 | - break | ||
| 110 | - case 2: | ||
| 111 | - AppDelegate.instance().httpServer.getLiveHistory(completionHandler: { (str, error) in | ||
| 112 | - SVProgressHUD.dismiss() | ||
| 113 | - if error == nil&&JSON.fromString(jsonString: str)!["issuccess"].intValue == 1{ | ||
| 114 | - //处理数据{"issuccess":1,"data":[{"name":"直播历史1"},{"name":"直播历史2"}]} | ||
| 115 | - }else{ | ||
| 116 | - self.view.makeToast("获取观看历史失败") | ||
| 117 | - } | ||
| 118 | - | ||
| 119 | - }) | ||
| 120 | - break | ||
| 121 | - default: | ||
| 122 | - break | ||
| 123 | - } | ||
| 124 | - } | ||
| 125 | - // MARK: - UITableViewDataSource,UITableViewDelegate | ||
| 126 | - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | ||
| 127 | - return roomListDataSet.count | ||
| 128 | - } | ||
| 129 | - func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { | ||
| 130 | - //return 70+getScreenWidth()/2 | ||
| 131 | - return 331 | ||
| 132 | - } | ||
| 133 | - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | ||
| 134 | - let cell=tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! HomeTableViewCell | ||
| 135 | - cell.setUpWith(type: type,item: roomListDataSet[indexPath.row]) | ||
| 136 | - return cell | ||
| 137 | - } | ||
| 138 | - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | ||
| 139 | - let item=roomListDataSet[indexPath.row] | ||
| 140 | - if type==LivesType.liveList{ | ||
| 141 | - if item.f_IsExamine == 1{ | ||
| 142 | - let vc = UIStoryboard(name: "Live", bundle: nil).instantiateViewController(withIdentifier: "LiveVideoSettingShareViewControllerVC") as! LiveVideoSettingShareViewController | ||
| 143 | - vc.liveDetail = item | ||
| 144 | - vc.title = "直播分享" | ||
| 145 | - self.navigationController?.pushViewController(vc, animated: true) | ||
| 146 | - return | ||
| 147 | - } | ||
| 148 | - let vc = Story.instantiateViewControllerWithIdentifier("LiveVideoSettingViewControllerVC", storyName: "Live") as! LiveVideoSettingViewController | ||
| 149 | - vc.title = "直播设置" | ||
| 150 | - vc.liveDetail=item | ||
| 151 | - self.navigationController?.pushViewController(vc, animated: true) | ||
| 152 | - | ||
| 153 | -// let vc=Story.instantiateViewControllerWithIdentifier("LiveRoomDetailViewController", storyName: "Main") as! LiveRoomDetailViewController | ||
| 154 | -// vc.item=item | ||
| 155 | -// self.navigationController?.pushViewController(vc, animated: true) | ||
| 156 | - return | ||
| 157 | - } | ||
| 158 | - } | ||
| 159 | - // MARK: - UICollectionViewDelegate | ||
| 160 | - func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { | ||
| 161 | - return titleDataSet.count | ||
| 162 | - } | ||
| 163 | - func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { | ||
| 164 | - return CGSize(width: getScreenWidth()/4, height: 40) | ||
| 165 | - } | ||
| 166 | - func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { | ||
| 167 | - let cell=collectionView.dequeueReusableCell(withReuseIdentifier: "selectCell", for: indexPath) as! selectTypeCell | ||
| 168 | - cell.titleLabel.text=titleDataSet[(indexPath as NSIndexPath).row] | ||
| 169 | - if indexPath.row==currentType{ | ||
| 170 | - cell.titleLabel.textColor=Theme.topBarColor() | ||
| 171 | - cell.currentLabel.isHidden=false | ||
| 172 | - }else{ | ||
| 173 | - cell.titleLabel.textColor=UIColor.black | ||
| 174 | - cell.currentLabel.isHidden=true | ||
| 175 | - } | ||
| 176 | - if (indexPath as NSIndexPath).row==3{ | ||
| 177 | - cell.lineLabel.isHidden=true | ||
| 178 | - }else{ | ||
| 179 | - cell.lineLabel.isHidden=false | ||
| 180 | - } | ||
| 181 | - return cell | ||
| 182 | - } | ||
| 183 | - func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { | ||
| 184 | - var array:[LiveDetail]=[] | ||
| 185 | - var type:Int=0 | ||
| 186 | - switch titleDataSet[indexPath.row] { | ||
| 187 | - case "全部": | ||
| 188 | - type = -1 | ||
| 189 | - array=self.allListRoom | ||
| 190 | - case "审核通过": | ||
| 191 | - type=1 | ||
| 192 | - case "审核未通过": | ||
| 193 | - type=2 | ||
| 194 | - case "待审核": | ||
| 195 | - type=0 | ||
| 196 | - default: | ||
| 197 | - type=0 | ||
| 198 | - } | ||
| 199 | - for item in self.allListRoom { | ||
| 200 | - if item.f_IsExamine==type{ | ||
| 201 | - array.append(item) | ||
| 202 | - } | ||
| 203 | - } | ||
| 204 | - self.roomListDataSet=array | ||
| 205 | - currentType=indexPath.row | ||
| 206 | - self.titleCollectionView.reloadData() | ||
| 207 | - self.liveListTableView.reloadData() | ||
| 208 | - } | ||
| 209 | - | ||
| 210 | - override func didReceiveMemoryWarning() { | ||
| 211 | - super.didReceiveMemoryWarning() | ||
| 212 | - } | ||
| 213 | - | ||
| 214 | - | ||
| 215 | -} | ||
| 216 | -class selectTypeCell: UICollectionViewCell { | ||
| 217 | - @IBOutlet var titleLabel: UILabel! | ||
| 218 | - @IBOutlet var lineLabel: UILabel! | ||
| 219 | - @IBOutlet var currentLabel: UILabel! | ||
| 220 | -} |
YouerLiveVideo/YouerLiveVideo/controller/UserCenter/LiveRoomsViewController.swift
| @@ -1,259 +0,0 @@ | @@ -1,259 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// LiveRoomsViewController.swift | ||
| 3 | -// XSTLive | ||
| 4 | -// | ||
| 5 | -// Created by 葛建军 on 16/11/10. | ||
| 6 | -// Copyright © 2016年 HANGZHOUTEAM. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class LiveRoomsViewController: UIViewController,UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout { | ||
| 12 | - @IBOutlet var iconImage: UIImageView! | ||
| 13 | - @IBOutlet var nameLabel: UILabel! | ||
| 14 | - @IBOutlet var numberLabel: UILabel! | ||
| 15 | - var type:LivesType! | ||
| 16 | - @IBOutlet var titleCollectionView: UICollectionView! | ||
| 17 | - @IBOutlet var titleViewHeight: NSLayoutConstraint! | ||
| 18 | - var titleDataSet:[String]=["全部","审核通过","审核未通过","待审核"] | ||
| 19 | - @IBOutlet var roomListCollectionView: UICollectionView! | ||
| 20 | - var allListRoom:[LiveDetail]=[] | ||
| 21 | - var roomListDataSet:[LiveDetail]=[] | ||
| 22 | - var currentType:Int=0//测试改变顶部状态时 | ||
| 23 | - override func viewWillAppear(_ animated: Bool) { | ||
| 24 | - super.viewWillAppear(animated) | ||
| 25 | - } | ||
| 26 | - override func viewDidLoad() { | ||
| 27 | - super.viewDidLoad() | ||
| 28 | - refreshUser() | ||
| 29 | - getListWithType() | ||
| 30 | - } | ||
| 31 | - func refreshUser(){ | ||
| 32 | - //顶部collectionView的展示与否 | ||
| 33 | - if type==LivesType.liveList{ | ||
| 34 | - titleViewHeight.constant=50 | ||
| 35 | - }else{ | ||
| 36 | - titleViewHeight.constant=0 | ||
| 37 | - } | ||
| 38 | - //这里必然在线,不用判断是否在线 | ||
| 39 | - iconImage.sd_setImage(with: URL(string: AppDelegate.instance().accountManager.photo()), placeholderImage: UIImage(named:"defphoto")) | ||
| 40 | - nameLabel.text=AppDelegate.instance().accountManager.name() | ||
| 41 | - numberLabel.isHidden=false | ||
| 42 | - numberLabel.text="账号: "+AppDelegate.instance().accountManager.phone() | ||
| 43 | - } | ||
| 44 | - func getListWithType(){ | ||
| 45 | - SVProgressHUD.show(withStatus: "加载中...") | ||
| 46 | - SVProgressHUD.setDefaultMaskType(.black) | ||
| 47 | - //清空数据 | ||
| 48 | - switch type.hashValue { | ||
| 49 | - case 0: | ||
| 50 | - let parameters:Dictionary<String,AnyObject>=["PageIndex":0 as AnyObject,"PageSize":10 as AnyObject,"WhatLive":"My" as AnyObject] | ||
| 51 | - AppDelegate.instance().httpServer.getLive(parameters: parameters, completionHandler: { (str, error) in | ||
| 52 | - SVProgressHUD.dismiss() | ||
| 53 | - if error==nil { | ||
| 54 | - if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 55 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 56 | - for j in json["data"].arrayValue { | ||
| 57 | - self.allListRoom.append(LiveDetail(j:j)) | ||
| 58 | - } | ||
| 59 | - self.roomListDataSet=self.allListRoom | ||
| 60 | - self.roomListCollectionView.reloadData() | ||
| 61 | - }, failHandler: { (error) in | ||
| 62 | - self.view.makeToast("获取直播列表失败失败:\(error.localizedDescription)") | ||
| 63 | - }) | ||
| 64 | - }else{ | ||
| 65 | - self.view.makeToast("获取直播列表失败失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
| 66 | - } | ||
| 67 | - }else{ | ||
| 68 | - self.view.makeToast("获取直播列表失败失败:\(error!.description)") | ||
| 69 | - } | ||
| 70 | - }) | ||
| 71 | - break | ||
| 72 | - case 1: | ||
| 73 | - | ||
| 74 | - break | ||
| 75 | - case 2: | ||
| 76 | - | ||
| 77 | - break | ||
| 78 | - default: | ||
| 79 | - break | ||
| 80 | - } | ||
| 81 | - } | ||
| 82 | - @IBAction func backAction(_ sender: UIBarButtonItem) { | ||
| 83 | - self.navigationController!.popViewController(animated: true) | ||
| 84 | - } | ||
| 85 | - | ||
| 86 | - // MARK: - UICollectionViewDelegate | ||
| 87 | - func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { | ||
| 88 | - if collectionView==roomListCollectionView{ | ||
| 89 | - return roomListDataSet.count | ||
| 90 | - }else{ | ||
| 91 | - return titleDataSet.count | ||
| 92 | - } | ||
| 93 | - } | ||
| 94 | - func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { | ||
| 95 | - var width:CGFloat! | ||
| 96 | - var height:CGFloat! | ||
| 97 | - if collectionView==roomListCollectionView{ | ||
| 98 | - width=(getScreenWidth()-4)/2 | ||
| 99 | - height=width+30 | ||
| 100 | - }else{ | ||
| 101 | - width=getScreenWidth()/4 | ||
| 102 | - height=50 | ||
| 103 | - } | ||
| 104 | - return CGSize(width: width, height: height) | ||
| 105 | - } | ||
| 106 | - func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { | ||
| 107 | - if collectionView==roomListCollectionView{ | ||
| 108 | - let formatte=DateFormatter() | ||
| 109 | - formatte.dateFormat="yyyy-MM-dd HH:mm:ss" | ||
| 110 | - let item=roomListDataSet[indexPath.row] | ||
| 111 | - let cell=collectionView.dequeueReusableCell(withReuseIdentifier: "roomListCell", for: indexPath) as! roomLiveDetailCell | ||
| 112 | -// XSTLiveManager.shareXSTLiveManager().fetchLiveMembers(roomId: item.f_RoomId, completion: { (success, members) in | ||
| 113 | -// if success { | ||
| 114 | -// cell.personNumberLabel.text=" \(members.count)" | ||
| 115 | -// }else{ | ||
| 116 | -// cell.personNumberLabel.text=" 0" | ||
| 117 | -// } | ||
| 118 | -// }) | ||
| 119 | - cell.backgroundImage.sd_setImage(with: URL(string:item.f_LiveImg), placeholderImage: UIImage(named:"icon")) | ||
| 120 | - cell.nameLabel.text=item.f_LiveName | ||
| 121 | - cell.timeLabel.text=formatte.string(from: Date(timeIntervalSince1970: JSON.fromString(jsonString: item.f_Description)!["starttime"].doubleValue/1000 as TimeInterval)) | ||
| 122 | - if type==LivesType.liveList{ | ||
| 123 | - cell.passLabel.isHidden=false | ||
| 124 | - cell.pageLabel.isHidden=true | ||
| 125 | - if item.f_IsExamine==1 { | ||
| 126 | - cell.passLabel.backgroundColor=UIColor.groupTableViewBackground | ||
| 127 | - cell.passLabel.textColor=UIColor.gray | ||
| 128 | - cell.passLabel.text="通过" | ||
| 129 | - }else if item.f_IsExamine==2 { | ||
| 130 | - cell.passLabel.backgroundColor=Theme.topBarColor() | ||
| 131 | - cell.passLabel.textColor=UIColor.white | ||
| 132 | - cell.passLabel.text="未通过" | ||
| 133 | - }else{ | ||
| 134 | - cell.passLabel.backgroundColor=UIColor.groupTableViewBackground | ||
| 135 | - cell.passLabel.textColor=UIColor.gray | ||
| 136 | - cell.passLabel.text="待审核" | ||
| 137 | - } | ||
| 138 | - }else if type==LivesType.liveHistory{ | ||
| 139 | - cell.passLabel.isHidden=true | ||
| 140 | - cell.pageLabel.isHidden=false | ||
| 141 | - cell.pageLabel.text=" 直播历史\((indexPath as NSIndexPath).row+1) " | ||
| 142 | - }else if type==LivesType.watchHistory{ | ||
| 143 | - cell.passLabel.isHidden=true | ||
| 144 | - cell.pageLabel.isHidden=false | ||
| 145 | - cell.pageLabel.text=" 观看历史\((indexPath as NSIndexPath).row+1) " | ||
| 146 | - } | ||
| 147 | - return cell | ||
| 148 | - }else{ | ||
| 149 | - let cell=collectionView.dequeueReusableCell(withReuseIdentifier: "selectCell", for: indexPath) as! selectTypeCell | ||
| 150 | - cell.titleLabel.text=titleDataSet[(indexPath as NSIndexPath).row] | ||
| 151 | - if indexPath.row==currentType{ | ||
| 152 | - cell.titleLabel.textColor=Theme.topBarColor() | ||
| 153 | - }else{ | ||
| 154 | - cell.titleLabel.textColor=UIColor.black | ||
| 155 | - } | ||
| 156 | - if (indexPath as NSIndexPath).row==3{ | ||
| 157 | - cell.lineLabel.isHidden=true | ||
| 158 | - }else{ | ||
| 159 | - cell.lineLabel.isHidden=false | ||
| 160 | - } | ||
| 161 | - return cell | ||
| 162 | - } | ||
| 163 | - } | ||
| 164 | - func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { | ||
| 165 | - if collectionView==roomListCollectionView{ | ||
| 166 | - let item=roomListDataSet[indexPath.row] | ||
| 167 | - if type==LivesType.liveList{ | ||
| 168 | - if item.f_IsExamine == 1{ | ||
| 169 | - let vc = UIStoryboard(name: "Live", bundle: nil).instantiateViewController(withIdentifier: "LiveVideoSettingShareViewControllerVC") as! LiveVideoSettingShareViewController | ||
| 170 | - vc.liveDetail = item | ||
| 171 | - vc.title = "直播分享" | ||
| 172 | - self.navigationController?.pushViewController(vc, animated: true) | ||
| 173 | - return | ||
| 174 | - } | ||
| 175 | - let vc=Story.instantiateViewControllerWithIdentifier("LiveRoomDetailViewController", storyName: "Main") as! LiveRoomDetailViewController | ||
| 176 | - vc.item=item | ||
| 177 | - self.navigationController?.pushViewController(vc, animated: true) | ||
| 178 | - return | ||
| 179 | - } | ||
| 180 | - }else{ | ||
| 181 | - var array:[LiveDetail]=[] | ||
| 182 | - var type:Int=0 | ||
| 183 | - switch titleDataSet[indexPath.row] { | ||
| 184 | - case "全部": | ||
| 185 | - type = -1 | ||
| 186 | - array=self.allListRoom | ||
| 187 | - case "审核通过": | ||
| 188 | - type=1 | ||
| 189 | - case "审核未通过": | ||
| 190 | - type=2 | ||
| 191 | - case "待审核": | ||
| 192 | - type=0 | ||
| 193 | - default: | ||
| 194 | - type=0 | ||
| 195 | - } | ||
| 196 | - for item in self.allListRoom { | ||
| 197 | - if item.f_IsExamine==type{ | ||
| 198 | - array.append(item) | ||
| 199 | - } | ||
| 200 | - } | ||
| 201 | - self.roomListDataSet=array | ||
| 202 | - currentType=indexPath.row | ||
| 203 | - self.titleCollectionView.reloadData() | ||
| 204 | - self.roomListCollectionView.reloadData() | ||
| 205 | - } | ||
| 206 | - } | ||
| 207 | - | ||
| 208 | - | ||
| 209 | - @IBAction func showAlertMenu(_ sender: UILongPressGestureRecognizer) { | ||
| 210 | - let p=sender.location(in: sender.view) | ||
| 211 | - if let indexPath=self.roomListCollectionView.indexPathForItem(at: p){ | ||
| 212 | - let cell=self.roomListCollectionView.cellForItem(at: indexPath) as! roomLiveDetailCell | ||
| 213 | - cell.becomeFirstResponder() | ||
| 214 | - if sender.state==UIGestureRecognizerState.began{ | ||
| 215 | - let menu=UIMenuController.shared | ||
| 216 | - let item=indexUIMenuItem(title:"拷贝",action:#selector(LiveRoomsViewController.copyAction(_:))) | ||
| 217 | - item.indexPath=indexPath | ||
| 218 | - menu.menuItems=[item] | ||
| 219 | - menu.setTargetRect(cell.bounds, in: cell) | ||
| 220 | - menu.arrowDirection=UIMenuControllerArrowDirection.down | ||
| 221 | - menu.update() | ||
| 222 | - menu.isMenuVisible=true } | ||
| 223 | - } | ||
| 224 | - } | ||
| 225 | - override var canBecomeFirstResponder : Bool { | ||
| 226 | - return true | ||
| 227 | - } | ||
| 228 | - func copyAction(_ item:UIMenuController){ | ||
| 229 | - let alert=AlertController.creatAlert("拷贝\(((item.menuItems![0] as! indexUIMenuItem).indexPath! as NSIndexPath).row+1)号房间") | ||
| 230 | - self.present(alert, animated: true, completion: nil) | ||
| 231 | - } | ||
| 232 | - | ||
| 233 | - | ||
| 234 | - | ||
| 235 | - | ||
| 236 | - | ||
| 237 | - | ||
| 238 | - | ||
| 239 | - | ||
| 240 | - | ||
| 241 | - | ||
| 242 | - | ||
| 243 | - | ||
| 244 | - | ||
| 245 | - override func didReceiveMemoryWarning() { | ||
| 246 | - super.didReceiveMemoryWarning() | ||
| 247 | - } | ||
| 248 | -} | ||
| 249 | -class roomLiveDetailCell: UICollectionViewCell { | ||
| 250 | - | ||
| 251 | - @IBOutlet var backgroundImage: UIImageView! | ||
| 252 | - @IBOutlet var passLabel: UILabel! | ||
| 253 | - @IBOutlet var pageLabel: UILabel! | ||
| 254 | - @IBOutlet var nameLabel: UILabel! | ||
| 255 | - @IBOutlet var personNumberLabel: UILabel! | ||
| 256 | - @IBOutlet var timeLabel: UILabel! | ||
| 257 | - | ||
| 258 | - | ||
| 259 | -} |
YouerLiveVideo/YouerLiveVideo/controller/UserCenter/LoginViewController.swift
| @@ -1,145 +0,0 @@ | @@ -1,145 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// LoginViewController.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 左丞 on 16/11/11. | ||
| 6 | -// Copyright © 2016年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class LoginViewController: UIViewController,UITextFieldDelegate { | ||
| 12 | - @IBOutlet var changeViewTop: NSLayoutConstraint! | ||
| 13 | - @IBOutlet var phoneNumberTextField: UITextField! | ||
| 14 | - @IBOutlet var passwordTextField: UITextField! | ||
| 15 | - override func viewDidLoad() { | ||
| 16 | - super.viewDidLoad() | ||
| 17 | - let numberPlaceholder=NSMutableAttributedString(string: "请输入11位数的手机号码") | ||
| 18 | - numberPlaceholder.addAttribute(NSForegroundColorAttributeName, value: UIColor.white, range: NSMakeRange(0, 12)) | ||
| 19 | - phoneNumberTextField.attributedPlaceholder=numberPlaceholder | ||
| 20 | - phoneNumberTextField.tintColor=Theme.topBarColor() | ||
| 21 | - let passwordPlaceholder=NSMutableAttributedString(string: "请输入6位以上的密码") | ||
| 22 | - passwordPlaceholder.addAttribute(NSForegroundColorAttributeName, value: UIColor.white, range: NSMakeRange(0, 10)) | ||
| 23 | - passwordTextField.attributedPlaceholder=passwordPlaceholder | ||
| 24 | - passwordTextField.tintColor=Theme.topBarColor() | ||
| 25 | - | ||
| 26 | - NotificationCenter.default.addObserver(self, selector: #selector(LoginViewController.refreshUser), name: NSNotification.Name(rawValue: "refreshLoginUser"), object: nil) | ||
| 27 | - NotificationCenter.default.addObserver(self, selector: #selector(LoginViewController.keyboardWIllChange), name: NSNotification.Name.UIKeyboardWillChangeFrame, object: nil) | ||
| 28 | -// let leftbtn = UIBarButtonItem(title: "返回", style: .plain, target: self, action: #selector(LoginViewController.back)) | ||
| 29 | -// self.navigationItem.title = "登录" | ||
| 30 | -// self.navigationItem.leftBarButtonItem = leftbtn | ||
| 31 | - changeViewTop.constant=(getScreenHeight()-64-220)/3 | ||
| 32 | - } | ||
| 33 | - //点击页面回收键盘 | ||
| 34 | - @IBAction func touchAction(_ sender: AnyObject) { | ||
| 35 | - self.view.endEditing(true)//回收键盘 | ||
| 36 | - } | ||
| 37 | - override var preferredStatusBarStyle: UIStatusBarStyle{ | ||
| 38 | - return UIStatusBarStyle.lightContent | ||
| 39 | - } | ||
| 40 | - //输入密码点击return回收键盘 | ||
| 41 | - func textFieldShouldReturn(_ textField: UITextField) -> Bool { | ||
| 42 | - textField.resignFirstResponder() | ||
| 43 | - return true | ||
| 44 | - } | ||
| 45 | - //注册完了后自动填充账号 | ||
| 46 | - func refreshUser(noti:Notification){ | ||
| 47 | - phoneNumberTextField.text = "\(noti.object!)" | ||
| 48 | - } | ||
| 49 | - //点击登录按钮 | ||
| 50 | - @IBAction func loginBtnClickAction(_ sender: Any) { | ||
| 51 | - self.view.endEditing(true) | ||
| 52 | - if phoneNumberTextField.text!.isMobilePhoneNumber() { | ||
| 53 | - SVProgressHUD.show(withStatus: "登录...") | ||
| 54 | - SVProgressHUD.setDefaultMaskType(.black) | ||
| 55 | - let parameters:Dictionary<String,AnyObject>=["grant_type":"password" as AnyObject,"username":phoneNumberTextField.text! as AnyObject,"password":passwordTextField.text! as AnyObject] | ||
| 56 | - AppDelegate.instance().httpServer.login(parameters: parameters) { (str, error) in | ||
| 57 | - let json=JSON.fromString(jsonString: str) | ||
| 58 | - if let ret=json{ | ||
| 59 | - let er=ret["error"].string | ||
| 60 | - if let errorStr=er{ | ||
| 61 | - SVProgressHUD.dismiss() | ||
| 62 | - let Strings=errorStr.components(separatedBy:":") | ||
| 63 | - if Strings.count >= 2 { | ||
| 64 | - switch Strings[1] { | ||
| 65 | - //用户关联多个身份,请使用学事号登录:100 | ||
| 66 | - case "101"://用户认证身份不存在:101 | ||
| 67 | - AppDelegate.instance().window?.makeToast("用户认证身份不存在,请进行账号激活。") | ||
| 68 | - break | ||
| 69 | - //用户帐号或密码错误:102 | ||
| 70 | - case "103":// 用户不存在:103 | ||
| 71 | - AppDelegate.instance().window?.makeToast("该号码不存在,请联系客服400-826-2468") | ||
| 72 | - break | ||
| 73 | - default: | ||
| 74 | - AppDelegate.instance().window?.makeToast("\(errorStr)") | ||
| 75 | - break | ||
| 76 | - } | ||
| 77 | - }else{ | ||
| 78 | - AppDelegate.instance().window?.makeToast("\(errorStr)") | ||
| 79 | - } | ||
| 80 | - }else if ret["access_token"].stringValue != ""{ | ||
| 81 | - AppDelegate.instance().accountManager.setTokenInfo(tokenInfo: ret) | ||
| 82 | - AppDelegate.instance().accountManager.saveToken(tokenInfo: ret) | ||
| 83 | - AppDelegate.instance().accountManager.refreshUserInfo(completionHandler: { (finish) in | ||
| 84 | - if finish{ | ||
| 85 | - self.loadUserInfo() | ||
| 86 | - }else{ | ||
| 87 | - AppDelegate.instance().window?.makeToast("身份获取失败") | ||
| 88 | - SVProgressHUD.dismiss() | ||
| 89 | - } | ||
| 90 | - }) | ||
| 91 | - }else{ | ||
| 92 | - SVProgressHUD.dismiss() | ||
| 93 | - AppDelegate.instance().window?.makeToast("登录失败,请稍后重试") | ||
| 94 | - } | ||
| 95 | - }else{ | ||
| 96 | - SVProgressHUD.dismiss() | ||
| 97 | - AppDelegate.instance().window?.makeToast("登录失败") | ||
| 98 | - } | ||
| 99 | - } | ||
| 100 | - }else{ | ||
| 101 | - self.view.makeToast("请输入正确手机号") | ||
| 102 | - } | ||
| 103 | - } | ||
| 104 | - func loadUserInfo(){ | ||
| 105 | - XSTLiveManager.shareXSTLiveManager().login(userId: self.phoneNumberTextField.text!, completion: { (success) in | ||
| 106 | - if !success{ | ||
| 107 | - AppDelegate.instance().window?.makeToast("聊天服务登录失败,请连接网络重试") | ||
| 108 | - SVProgressHUD.dismiss() | ||
| 109 | - }else{ | ||
| 110 | - SVProgressHUD.dismiss() | ||
| 111 | - self.back() | ||
| 112 | - } | ||
| 113 | - }) | ||
| 114 | - } | ||
| 115 | - func back(){ | ||
| 116 | - self.dismiss(animated: true, completion: nil) | ||
| 117 | - LeadViewController.instance.removeAll() | ||
| 118 | - LeadViewController.instance.showMain() | ||
| 119 | - } | ||
| 120 | - | ||
| 121 | - override func didReceiveMemoryWarning() { | ||
| 122 | - super.didReceiveMemoryWarning() | ||
| 123 | - // Dispose of any resources that can be recreated. | ||
| 124 | - } | ||
| 125 | - //点击注册按钮 | ||
| 126 | - @IBAction func registerBtnClickAction(_ sender: AnyObject) { | ||
| 127 | - let vc = UIStoryboard(name: "User", bundle: nil).instantiateViewController(withIdentifier: "RegisterViewControllerVC") as! RegisterViewController | ||
| 128 | - vc.title = "注册" | ||
| 129 | - self.navigationController?.pushViewController(vc, animated: true) | ||
| 130 | - } | ||
| 131 | - //键盘监听 | ||
| 132 | - func keyboardWIllChange(noti: NSNotification){ | ||
| 133 | - let userInfo:NSDictionary=noti.userInfo! as NSDictionary | ||
| 134 | - let endFrame=(userInfo[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue | ||
| 135 | - if endFrame?.origin.y==getScreenHeight() { | ||
| 136 | - changeViewTop.constant=(getScreenHeight()-64-220)/3 | ||
| 137 | - }else{ | ||
| 138 | - let y = (getScreenHeight()-64-220)/3+CGFloat(64+220) | ||
| 139 | - if (endFrame?.origin.y)! < y { | ||
| 140 | - changeViewTop.constant=getScreenHeight()-64-(endFrame?.size.height)!-220 | ||
| 141 | - } | ||
| 142 | - } | ||
| 143 | - } | ||
| 144 | - | ||
| 145 | -} |
YouerLiveVideo/YouerLiveVideo/controller/UserCenter/MyAttentionViewController.swift
| @@ -1,67 +0,0 @@ | @@ -1,67 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// MyAttentionViewController.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 葛建军 on 17/1/18. | ||
| 6 | -// Copyright © 2017年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class MyAttentionViewController: UIViewController,UITableViewDelegate,UITableViewDataSource { | ||
| 12 | - var allSchool:[OrganizeListSchool]=[] | ||
| 13 | - @IBOutlet var tableView: UITableView! | ||
| 14 | - override func viewDidLoad() { | ||
| 15 | - super.viewDidLoad() | ||
| 16 | - tableView.register(UINib(nibName: "AttentionTableViewCell", bundle: nil), forCellReuseIdentifier: "AttentionTableViewCell") | ||
| 17 | - getActSchoolList() | ||
| 18 | - } | ||
| 19 | - func getActSchoolList(){ | ||
| 20 | - SVProgressHUD.show(withStatus: "加载中...") | ||
| 21 | - SVProgressHUD.setDefaultMaskType(.black) | ||
| 22 | - AppDelegate.instance().httpServer.postLiveOrganizeList(type:"Act") { (str, error) in | ||
| 23 | - if error==nil { | ||
| 24 | - SVProgressHUD.dismiss() | ||
| 25 | - if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 26 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 27 | - self.allSchool=OrganizeListSchool.getAllSchool(j: json) | ||
| 28 | - self.tableView.reloadData() | ||
| 29 | - }, failHandler: { (error) in | ||
| 30 | - NSLog("获取关注学校失败:\(error.localizedDescription)") | ||
| 31 | - }) | ||
| 32 | - }else{ | ||
| 33 | - NSLog("获取关注学校失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
| 34 | - } | ||
| 35 | - }else{ | ||
| 36 | - NSLog("获取关注学校失败:\(error!.description)") | ||
| 37 | - } | ||
| 38 | - } | ||
| 39 | - } | ||
| 40 | - // MARK: - UITableViewDelegate,UITableViewDataSource | ||
| 41 | - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | ||
| 42 | - return allSchool.count | ||
| 43 | - } | ||
| 44 | - func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { | ||
| 45 | - return 80 | ||
| 46 | - } | ||
| 47 | - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | ||
| 48 | - let cell=tableView.dequeueReusableCell(withIdentifier: "AttentionTableViewCell") as! AttentionTableViewCell | ||
| 49 | - cell.setupWith(item: allSchool[indexPath.row],isMy: true) | ||
| 50 | - cell.superVC=self | ||
| 51 | - return cell | ||
| 52 | - } | ||
| 53 | - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | ||
| 54 | - let item=allSchool[indexPath.row] | ||
| 55 | - let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LiveTypeListViewController") as! LiveTypeListViewController | ||
| 56 | - vc.isType=false | ||
| 57 | - vc.F_OrganizeId=item.f_Id | ||
| 58 | - vc.title=item.f_FullName | ||
| 59 | - self.navigationController!.pushViewController(vc, animated: true) | ||
| 60 | - } | ||
| 61 | - override func didReceiveMemoryWarning() { | ||
| 62 | - super.didReceiveMemoryWarning() | ||
| 63 | - } | ||
| 64 | - | ||
| 65 | - | ||
| 66 | -} | ||
| 67 | - |
YouerLiveVideo/YouerLiveVideo/controller/UserCenter/PersonalSettingViewController.swift
| @@ -1,238 +0,0 @@ | @@ -1,238 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// PersonalSettingViewController.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 左丞 on 16/11/12. | ||
| 6 | -// Copyright © 2016年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class PersonalSettingViewController: UIViewController ,UITableViewDelegate,UITableViewDataSource,UINavigationControllerDelegate,UIImagePickerControllerDelegate{ | ||
| 12 | - @IBOutlet weak var userSettingTableView: UITableView! | ||
| 13 | - @IBOutlet var rightBarBtn: UIBarButtonItem! | ||
| 14 | - @IBOutlet var loginoutBtn: UIButton! | ||
| 15 | - var titleArr:[String] = ["头像","昵称","手机号(账号)"]//["头像","账号","昵称","性别"] | ||
| 16 | - var user:Contact! | ||
| 17 | - var isUserActivity:Bool=false | ||
| 18 | - override func viewDidLoad() { | ||
| 19 | - super.viewDidLoad() | ||
| 20 | - user = Contact() | ||
| 21 | - } | ||
| 22 | - | ||
| 23 | - override func didReceiveMemoryWarning() { | ||
| 24 | - super.didReceiveMemoryWarning() | ||
| 25 | - } | ||
| 26 | - | ||
| 27 | - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | ||
| 28 | - switch indexPath.row { | ||
| 29 | - case 0: | ||
| 30 | - let sheet = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet) | ||
| 31 | - sheet.addAction(UIAlertAction(title: "取消", style: .cancel, handler: nil)) | ||
| 32 | - sheet.addAction(UIAlertAction(title: "拍照", style: .default, handler: { (action) in | ||
| 33 | - if cameraOrPhotPermissions(1, view: self.view){ | ||
| 34 | - let vc = UIImagePickerController() | ||
| 35 | - vc.delegate = self | ||
| 36 | - vc.sourceType = .camera | ||
| 37 | - self.present(vc, animated: true, completion: nil) | ||
| 38 | - }else{ | ||
| 39 | - | ||
| 40 | - } | ||
| 41 | - self.userSettingTableView.reloadData() | ||
| 42 | - })) | ||
| 43 | - sheet.addAction(UIAlertAction(title: "从相册选择", style: .default, handler: { (action) in | ||
| 44 | - if cameraOrPhotPermissions(1, view: self.view){ | ||
| 45 | - let vc = UIImagePickerController() | ||
| 46 | - vc.delegate = self | ||
| 47 | - vc.sourceType = .photoLibrary | ||
| 48 | - self.present(vc, animated: true, completion: nil) | ||
| 49 | - }else{ | ||
| 50 | - | ||
| 51 | - } | ||
| 52 | - self.userSettingTableView.reloadData() | ||
| 53 | - })) | ||
| 54 | - self.present(sheet, animated: true, completion: nil) | ||
| 55 | - break | ||
| 56 | - case 1: | ||
| 57 | - let alert = UIAlertController(title: "修改昵称", message: "", preferredStyle: .alert) | ||
| 58 | - alert.addAction(UIAlertAction(title: "确定", style: .default, handler: { (action) in | ||
| 59 | - if alert.textFields![0].text == ""{ | ||
| 60 | - return | ||
| 61 | - } | ||
| 62 | - if (alert.textFields![0].text?.characters.count)!>15{ | ||
| 63 | - self.user.nickName = (alert.textFields![0].text! as NSString).substring(to: 15) | ||
| 64 | - }else{ | ||
| 65 | - self.user.nickName = alert.textFields![0].text | ||
| 66 | - } | ||
| 67 | - self.userSettingTableView.reloadData() | ||
| 68 | - })) | ||
| 69 | - alert.addAction(UIAlertAction(title: "取消", style: .default, handler: nil)) | ||
| 70 | - alert.addTextField { (text) in | ||
| 71 | - text.placeholder = "请输入昵称,且不能超过15个字符" | ||
| 72 | - } | ||
| 73 | - self.present(alert, animated: true, completion: nil) | ||
| 74 | - break | ||
| 75 | - case 3: | ||
| 76 | - let sheet = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet) | ||
| 77 | - sheet.addAction(UIAlertAction(title: "取消", style: .cancel, handler: nil)) | ||
| 78 | - sheet.addAction(UIAlertAction(title: "男", style: .default, handler: { (action) in | ||
| 79 | - self.user.userSex = "男" | ||
| 80 | - self.userSettingTableView.reloadData() | ||
| 81 | - })) | ||
| 82 | - sheet.addAction(UIAlertAction(title: "女", style: .default, handler: { (action) in | ||
| 83 | - self.user.userSex = "女" | ||
| 84 | - self.userSettingTableView.reloadData() | ||
| 85 | - })) | ||
| 86 | - self.present(sheet, animated: true, completion: nil) | ||
| 87 | - break | ||
| 88 | - default: | ||
| 89 | - break | ||
| 90 | - } | ||
| 91 | - } | ||
| 92 | - | ||
| 93 | - | ||
| 94 | - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | ||
| 95 | - return titleArr.count | ||
| 96 | - } | ||
| 97 | - | ||
| 98 | - func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { | ||
| 99 | - return 44 | ||
| 100 | - } | ||
| 101 | - | ||
| 102 | - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | ||
| 103 | - let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! PersonalSettingCell | ||
| 104 | - cell.nameTitleLabel.text = titleArr[indexPath.row] | ||
| 105 | - cell.nameLabelRightSpace.constant = 8 | ||
| 106 | - cell.imagePhoto.isHidden = true | ||
| 107 | - cell.namelabel.isHidden = false | ||
| 108 | - cell.rightArrow.isHidden = false | ||
| 109 | - cell.isUserInteractionEnabled = true | ||
| 110 | - if isUserActivity { | ||
| 111 | - cell.isUserInteractionEnabled=true | ||
| 112 | - }else{ | ||
| 113 | - cell.isUserInteractionEnabled=false | ||
| 114 | - } | ||
| 115 | - switch indexPath.row { | ||
| 116 | - case 0: | ||
| 117 | - cell.imagePhoto.isHidden = false | ||
| 118 | - cell.namelabel.isHidden = true | ||
| 119 | - cell.imagePhoto.sd_setImage(with: URL(string: user.imageURL), placeholderImage: UIImage(named: "defphoto")) | ||
| 120 | - break | ||
| 121 | - case 1: | ||
| 122 | - cell.namelabel.text = user.nickName//AppDelegate.instance().accountManager.name() | ||
| 123 | - break | ||
| 124 | - case 2: | ||
| 125 | - cell.nameLabelRightSpace.constant = -10 | ||
| 126 | - cell.rightArrow.isHidden = true | ||
| 127 | - cell.isUserInteractionEnabled = false | ||
| 128 | - cell.namelabel.text = user.userId//AppDelegate.instance().accountManager.phone() | ||
| 129 | - break | ||
| 130 | - case 3: | ||
| 131 | - cell.namelabel.text = user.userSex | ||
| 132 | - break | ||
| 133 | - | ||
| 134 | - default: | ||
| 135 | - break | ||
| 136 | - } | ||
| 137 | - return cell | ||
| 138 | - } | ||
| 139 | - | ||
| 140 | - func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { | ||
| 141 | - picker.dismiss(animated: true, completion: { () -> Void in | ||
| 142 | - var oimage = info[UIImagePickerControllerOriginalImage] as? UIImage | ||
| 143 | - oimage = oimage!.imageScaledToScale() | ||
| 144 | - let filePath=FilesManager.imageFilePath(String(format:"%f.jpg",Date().timeIntervalSince1970)) | ||
| 145 | - try? UIImageJPEGRepresentation(oimage!,0.5)!.write(to: URL(fileURLWithPath: filePath), options: [.atomic]) | ||
| 146 | - self.updateImage(file: filePath) | ||
| 147 | - }) | ||
| 148 | - } | ||
| 149 | - func updateImage(file:String){ | ||
| 150 | - SVProgressHUD.show(withStatus: "图片上传中...") | ||
| 151 | - SVProgressHUD.setDefaultMaskType(.black) | ||
| 152 | - AppDelegate.instance().httpServer.uploadFile(file: NSURL(fileURLWithPath: file)) { (str, error) in | ||
| 153 | - SVProgressHUD.dismiss() | ||
| 154 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 155 | - let str=json.contentData().arrayValue[0].stringValue | ||
| 156 | - self.user.imageURL=str | ||
| 157 | - }, failHandler: { (error) in | ||
| 158 | - self.user.imageURL="" | ||
| 159 | - self.view.makeToast("图片上传失败:\(error.localizedDescription)") | ||
| 160 | - }) | ||
| 161 | - self.userSettingTableView.reloadData() | ||
| 162 | - } | ||
| 163 | - } | ||
| 164 | - // MARK: - 退出登录按钮点击事件 | ||
| 165 | - @IBAction func ExsitBtnClickAction(_ sender: Any) { | ||
| 166 | - AppDelegate.instance().accountManager.logOut() | ||
| 167 | - } | ||
| 168 | - // MARK: - 完成按钮点击事件 | ||
| 169 | - @IBAction func finishAction(_ sender: UIBarButtonItem) { | ||
| 170 | - if isUserActivity { | ||
| 171 | - //需要新的接口来修改个人信息 | ||
| 172 | - SVProgressHUD.show(withStatus: "修改个人信息...") | ||
| 173 | - SVProgressHUD.setDefaultMaskType(.black) | ||
| 174 | - let parameters:Dictionary<String,AnyObject>=["f_RealName":self.user.nickName as AnyObject,"f_HeadIcon":self.user.imageURL as AnyObject] | ||
| 175 | - AppDelegate.instance().httpServer.updataUserInfo(parameters: parameters, completionHandler: { (str, error) in | ||
| 176 | - SVProgressHUD.dismiss() | ||
| 177 | - if error==nil { | ||
| 178 | - if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 179 | - //把账号信息存储下来,暂时这样修改。若以后个人信息中有其他元素,需加新的接口来更新个人信息。 | ||
| 180 | - // var dic=Setting.getUserInfo()?.dictionaryValue["data"]?.dictionaryObject | ||
| 181 | - // _=dic?.updateValue(self.user.nickName, forKey: "f_RealName") | ||
| 182 | - // _=dic?.updateValue(self.user.imageURL, forKey: "f_HeadIcon") | ||
| 183 | - // let userInfo:Dictionary<String,AnyObject>=["status":1 as AnyObject,"data":dic as AnyObject] | ||
| 184 | - // AppDelegate.instance().accountManager.rawUserInfo=JSON(userInfo) | ||
| 185 | - // _=Setting.saveUserInfo(JSON(userInfo).rawString()) | ||
| 186 | - XSTLiveManager.shareXSTLiveManager().setUpPersonInfo(name: self.user.nickName, icon: self.user.imageURL) | ||
| 187 | - AppDelegate.instance().window?.makeToast("修改个人信息成功") | ||
| 188 | - self.rightBarBtn.title="修改" | ||
| 189 | - self.isUserActivity=false | ||
| 190 | - self.loginoutBtn.isHidden=false | ||
| 191 | - self.userSettingTableView.reloadData() | ||
| 192 | - AppDelegate.instance().accountManager.refreshUserInfo(completionHandler: { (finish) in | ||
| 193 | - if !finish{ | ||
| 194 | - AppDelegate.instance().window?.makeToast("身份获取失败") | ||
| 195 | - } | ||
| 196 | - }) | ||
| 197 | - }else{ | ||
| 198 | - self.view.makeToast("修改个人信息失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
| 199 | - } | ||
| 200 | - }else{ | ||
| 201 | - self.view.makeToast("修改个人信息失败:\(error!.description)") | ||
| 202 | - } | ||
| 203 | - }) | ||
| 204 | - }else{ | ||
| 205 | - self.rightBarBtn.title="保存" | ||
| 206 | - self.isUserActivity=true | ||
| 207 | - self.loginoutBtn.isHidden=true | ||
| 208 | - self.userSettingTableView.reloadData() | ||
| 209 | - } | ||
| 210 | - } | ||
| 211 | - | ||
| 212 | -} | ||
| 213 | - | ||
| 214 | -class PersonalSettingCell: UITableViewCell { | ||
| 215 | - | ||
| 216 | - | ||
| 217 | - @IBOutlet weak var nameLabelRightSpace: NSLayoutConstraint! | ||
| 218 | - | ||
| 219 | - @IBOutlet weak var rightArrow: UIImageView! | ||
| 220 | - @IBOutlet weak var namelabel: UILabel! | ||
| 221 | - @IBOutlet weak var imagePhoto: UIImageView! | ||
| 222 | - @IBOutlet weak var nameTitleLabel: UILabel! | ||
| 223 | - | ||
| 224 | - | ||
| 225 | -} | ||
| 226 | - | ||
| 227 | -class Contact { | ||
| 228 | - var nickName:String! | ||
| 229 | - var userId:String! | ||
| 230 | - var userSex:String! | ||
| 231 | - var imageURL:String! | ||
| 232 | - init() { | ||
| 233 | - nickName = AppDelegate.instance().accountManager.name() | ||
| 234 | - userId = AppDelegate.instance().accountManager.phone() | ||
| 235 | - userSex = "男" | ||
| 236 | - imageURL = AppDelegate.instance().accountManager.photo() | ||
| 237 | - } | ||
| 238 | -} |
YouerLiveVideo/YouerLiveVideo/controller/UserCenter/RegisterViewController.swift
| @@ -1,173 +0,0 @@ | @@ -1,173 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// RegisterViewController.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 左丞 on 16/11/9. | ||
| 6 | -// Copyright © 2016年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class RegisterViewController: UIViewController,UIAlertViewDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate,UITextFieldDelegate{ | ||
| 12 | - | ||
| 13 | - | ||
| 14 | - @IBOutlet weak var sendVerificationCode: UIButton! | ||
| 15 | - @IBOutlet var nikeNameTextFiled: UITextField! //昵称 | ||
| 16 | - @IBOutlet var passwordTextField: UITextField! //输入密码 | ||
| 17 | - @IBOutlet var confirmPasswordTextField: UITextField!//确认密码 | ||
| 18 | - @IBOutlet weak var phoneNumber: UITextField! | ||
| 19 | - @IBOutlet weak var inputVerificationCode: UITextField!//验证码 | ||
| 20 | - @IBOutlet weak var registerBtn: UIButton! | ||
| 21 | - @IBOutlet weak var nickNameLabel: UILabel! | ||
| 22 | - @IBOutlet weak var sendPhotoImage: UIImageView! | ||
| 23 | - var iconImage: UIImage? | ||
| 24 | - var name: String="" | ||
| 25 | - override func viewDidLoad() { | ||
| 26 | - super.viewDidLoad() | ||
| 27 | - // Do any additional setup after loading the view. | ||
| 28 | - } | ||
| 29 | - | ||
| 30 | - @IBAction func touchAction(_ sender: AnyObject) { | ||
| 31 | - self.view.endEditing(true)//回收键盘 | ||
| 32 | - } | ||
| 33 | - override func didReceiveMemoryWarning() { | ||
| 34 | - super.didReceiveMemoryWarning() | ||
| 35 | - // Dispose of any resources that can be recreated. | ||
| 36 | - } | ||
| 37 | - func textFieldShouldReturn(_ textField: UITextField) -> Bool { | ||
| 38 | - textField.resignFirstResponder() | ||
| 39 | - return true | ||
| 40 | - } | ||
| 41 | - | ||
| 42 | - @IBAction func sendVerificationCodeClickAction(_ sender: AnyObject) {//发验证码 | ||
| 43 | - self.view.endEditing(true) | ||
| 44 | - if nikeNameTextFiled.text!.characters.count<11{ | ||
| 45 | - if passwordTextField.text!.characters.count>=6 && passwordTextField.text!.characters.count<=8 && confirmPasswordTextField.text!.characters.count>=6 && confirmPasswordTextField.text!.characters.count<=8{ | ||
| 46 | - if passwordTextField.text!==confirmPasswordTextField.text!{ | ||
| 47 | - if (phoneNumber.text?.isMobilePhoneNumber())! { | ||
| 48 | - SVProgressHUD.show(withStatus: "获取验证码...") | ||
| 49 | - SVProgressHUD.setDefaultMaskType(.black) | ||
| 50 | - AppDelegate.instance().httpServer.getChangePhoneCaptcha(mobile: phoneNumber.text!, completionHandler: { (str, error) in | ||
| 51 | - SVProgressHUD.dismiss() | ||
| 52 | - if error==nil { | ||
| 53 | - if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 54 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 55 | - self.view.makeToast("验证码发送成功") | ||
| 56 | - self.nikeNameTextFiled.isUserInteractionEnabled=false | ||
| 57 | - self.phoneNumber.isUserInteractionEnabled=false | ||
| 58 | - self.passwordTextField.isUserInteractionEnabled=false | ||
| 59 | - self.confirmPasswordTextField.isUserInteractionEnabled=false | ||
| 60 | - }, failHandler: { (error) in | ||
| 61 | - self.view.makeToast("验证码发送失败:\(error.localizedDescription)") | ||
| 62 | - }) | ||
| 63 | - }else{ | ||
| 64 | - self.view.makeToast("验证码发送失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
| 65 | - } | ||
| 66 | - }else{ | ||
| 67 | - self.view.makeToast("验证码发送失败:\(error!.description)") | ||
| 68 | - } | ||
| 69 | - }) | ||
| 70 | - }else{ | ||
| 71 | - self.view.makeToast("请输入正确手机号") | ||
| 72 | - } | ||
| 73 | - }else{ | ||
| 74 | - self.view.makeToast("两次输入密码不一致") | ||
| 75 | - } | ||
| 76 | - }else{ | ||
| 77 | - self.view.makeToast("密码必须为6-8位字符或者数字") | ||
| 78 | - } | ||
| 79 | - }else{ | ||
| 80 | - self.view.makeToast("昵称必须小于11位") | ||
| 81 | - } | ||
| 82 | - } | ||
| 83 | - | ||
| 84 | - @IBAction func registerBtnAction(_ sender: AnyObject) {//注册 | ||
| 85 | - if inputVerificationCode.text!.characters.count == 4{ | ||
| 86 | - SVProgressHUD.show(withStatus: "注册...") | ||
| 87 | - SVProgressHUD.setDefaultMaskType(.black) | ||
| 88 | - let parameters:Dictionary<String,AnyObject>=["f_Account":phoneNumber.text! as AnyObject,"f_UserPassword":passwordTextField.text! as AnyObject,"f_RealName": (nikeNameTextFiled.text!=="" ? phoneNumber.text! : nikeNameTextFiled.text!) as AnyObject,"f_MobilePhone":phoneNumber.text! as AnyObject,"f_VerCode":inputVerificationCode.text! as AnyObject] | ||
| 89 | - AppDelegate.instance().httpServer.getCreateUser(parameters: parameters) { (str, error) in | ||
| 90 | - SVProgressHUD.dismiss() | ||
| 91 | - self.nikeNameTextFiled.isUserInteractionEnabled=true | ||
| 92 | - self.phoneNumber.isUserInteractionEnabled=true | ||
| 93 | - self.passwordTextField.isUserInteractionEnabled=true | ||
| 94 | - self.confirmPasswordTextField.isUserInteractionEnabled=true | ||
| 95 | - if error==nil { | ||
| 96 | - if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 97 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 98 | - self.navigationController!.popToRootViewController(animated: true) | ||
| 99 | - AppDelegate.instance().window?.makeToast("注册成功") | ||
| 100 | - NotificationCenter.default.post(name: NSNotification.Name(rawValue: "refreshLoginUser"), object: self.phoneNumber.text!) | ||
| 101 | - //是否登录 | ||
| 102 | - }, failHandler: { (error) in | ||
| 103 | - self.view.makeToast("注册失败:\(error.localizedDescription)") | ||
| 104 | - }) | ||
| 105 | - }else{ | ||
| 106 | - self.view.makeToast("注册失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
| 107 | - } | ||
| 108 | - }else{ | ||
| 109 | - self.view.makeToast("注册失败:\(error!.description)") | ||
| 110 | - } | ||
| 111 | - } | ||
| 112 | - }else{ | ||
| 113 | - self.view.makeToast("验证码必须是四位数字") | ||
| 114 | - } | ||
| 115 | - } | ||
| 116 | - | ||
| 117 | - | ||
| 118 | - @IBAction func loginBtnClickAction(_ sender: AnyObject) { | ||
| 119 | - self.navigationController!.popViewController(animated: false) | ||
| 120 | - } | ||
| 121 | - | ||
| 122 | - @IBAction func nickNameSetTapAction(_ sender: AnyObject) { | ||
| 123 | - let alert = UIAlertController(title: "设置昵称", message: "", preferredStyle: .alert) | ||
| 124 | - alert.addAction(UIAlertAction(title: "取消", style: .destructive, handler: nil)) | ||
| 125 | - alert.addAction(UIAlertAction(title: "确定", style: .default, handler: { (action) in | ||
| 126 | - if alert.textFields![0].text == ""{ | ||
| 127 | - return | ||
| 128 | - } | ||
| 129 | - self.name = alert.textFields![0].text! | ||
| 130 | - self.nickNameLabel.text = alert.textFields![0].text | ||
| 131 | - })) | ||
| 132 | - | ||
| 133 | - alert.addTextField { (text) in | ||
| 134 | - text.placeholder = "请输入昵称" | ||
| 135 | - } | ||
| 136 | - self.present(alert, animated: true, completion: nil) | ||
| 137 | - } | ||
| 138 | - | ||
| 139 | - @IBAction func sendPhotoImageTapAction(_ sender: AnyObject) { | ||
| 140 | - if cameraOrPhotPermissions(0, view: self.view){ | ||
| 141 | - let vc = UIImagePickerController() | ||
| 142 | - vc.delegate = self | ||
| 143 | - vc.sourceType = .photoLibrary | ||
| 144 | - self.present(vc, animated: true, completion: nil) | ||
| 145 | - }else{ | ||
| 146 | - | ||
| 147 | - } | ||
| 148 | - } | ||
| 149 | - | ||
| 150 | - func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { | ||
| 151 | - picker.dismiss(animated: true, completion: { () -> Void in | ||
| 152 | - var oimage = info[UIImagePickerControllerOriginalImage] as? UIImage | ||
| 153 | - oimage = oimage!.imageScaledToScale() | ||
| 154 | - let filePath=FilesManager.imageFilePath(String(format:"%f.jpg",Date().timeIntervalSince1970)) | ||
| 155 | - try? UIImageJPEGRepresentation(oimage!,0.5)!.write(to: URL(fileURLWithPath: filePath), options: [.atomic]) | ||
| 156 | - self.sendPhotoImage.layer.masksToBounds = true | ||
| 157 | - self.sendPhotoImage.layer.cornerRadius = 25 | ||
| 158 | - self.sendPhotoImage.image = oimage | ||
| 159 | - self.iconImage = oimage | ||
| 160 | - }) | ||
| 161 | - } | ||
| 162 | - | ||
| 163 | - /* | ||
| 164 | - // MARK: - Navigation | ||
| 165 | - | ||
| 166 | - // In a storyboard-based application, you will often want to do a little preparation before navigation | ||
| 167 | - override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { | ||
| 168 | - // Get the new view controller using segue.destinationViewController. | ||
| 169 | - // Pass the selected object to the new view controller. | ||
| 170 | - } | ||
| 171 | - */ | ||
| 172 | - | ||
| 173 | -} |
YouerLiveVideo/YouerLiveVideo/controller/UserCenter/User.storyboard
| @@ -1,1490 +0,0 @@ | @@ -1,1490 +0,0 @@ | ||
| 1 | -<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
| 2 | -<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="15G1217" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> | ||
| 3 | - <device id="retina4_7" orientation="portrait"> | ||
| 4 | - <adaptation id="fullscreen"/> | ||
| 5 | - </device> | ||
| 6 | - <dependencies> | ||
| 7 | - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/> | ||
| 8 | - <capability name="Aspect ratio constraints" minToolsVersion="5.1"/> | ||
| 9 | - <capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/> | ||
| 10 | - <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | ||
| 11 | - </dependencies> | ||
| 12 | - <scenes> | ||
| 13 | - <!--Login View Controller--> | ||
| 14 | - <scene sceneID="orQ-wB-ipa"> | ||
| 15 | - <objects> | ||
| 16 | - <viewController storyboardIdentifier="LoginViewControllerVC" id="fvc-9c-Gca" customClass="LoginViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 17 | - <layoutGuides> | ||
| 18 | - <viewControllerLayoutGuide type="top" id="M3F-7t-f1g"/> | ||
| 19 | - <viewControllerLayoutGuide type="bottom" id="agc-xf-u2B"/> | ||
| 20 | - </layoutGuides> | ||
| 21 | - <view key="view" contentMode="scaleToFill" id="rVC-Df-GKu"> | ||
| 22 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 23 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 24 | - <subviews> | ||
| 25 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="loginBackGround" translatesAutoresizingMaskIntoConstraints="NO" id="Bob-Ef-450"> | ||
| 26 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 27 | - </imageView> | ||
| 28 | - <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tqb-X5-ujR" customClass="UIControl"> | ||
| 29 | - <rect key="frame" x="0.0" y="186" width="375" height="220"/> | ||
| 30 | - <subviews> | ||
| 31 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eXd-TY-qlW"> | ||
| 32 | - <rect key="frame" x="62.5" y="0.0" width="250" height="112"/> | ||
| 33 | - <subviews> | ||
| 34 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EAC-sg-BLE"> | ||
| 35 | - <rect key="frame" x="0.0" y="0.0" width="250" height="56"/> | ||
| 36 | - <subviews> | ||
| 37 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NJW-yg-XQM"> | ||
| 38 | - <rect key="frame" x="0.0" y="55" width="250" height="1"/> | ||
| 39 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 40 | - <constraints> | ||
| 41 | - <constraint firstAttribute="height" constant="1" id="GtD-JL-A0z"/> | ||
| 42 | - </constraints> | ||
| 43 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 44 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 45 | - <nil key="highlightedColor"/> | ||
| 46 | - </label> | ||
| 47 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="userId.png" translatesAutoresizingMaskIntoConstraints="NO" id="1xZ-bM-AMz"> | ||
| 48 | - <rect key="frame" x="8" y="12.5" width="20" height="31"/> | ||
| 49 | - <constraints> | ||
| 50 | - <constraint firstAttribute="width" constant="20" id="3hd-Sx-hPC"/> | ||
| 51 | - <constraint firstAttribute="width" secondItem="1xZ-bM-AMz" secondAttribute="height" multiplier="9:14" id="DCg-L0-4Lx"/> | ||
| 52 | - </constraints> | ||
| 53 | - </imageView> | ||
| 54 | - <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入11位数的手机号码 " minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="IzH-dB-I9H"> | ||
| 55 | - <rect key="frame" x="36" y="18.5" width="214" height="19"/> | ||
| 56 | - <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 57 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 58 | - <textInputTraits key="textInputTraits" keyboardType="numberPad"/> | ||
| 59 | - <connections> | ||
| 60 | - <outlet property="delegate" destination="fvc-9c-Gca" id="l7n-F4-FsF"/> | ||
| 61 | - </connections> | ||
| 62 | - </textField> | ||
| 63 | - </subviews> | ||
| 64 | - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> | ||
| 65 | - <constraints> | ||
| 66 | - <constraint firstAttribute="trailing" secondItem="IzH-dB-I9H" secondAttribute="trailing" id="DIX-3U-BQG"/> | ||
| 67 | - <constraint firstAttribute="height" constant="56" id="Ff7-2n-071"/> | ||
| 68 | - <constraint firstItem="IzH-dB-I9H" firstAttribute="leading" secondItem="1xZ-bM-AMz" secondAttribute="trailing" constant="8" id="Mi3-ud-m0O"/> | ||
| 69 | - <constraint firstItem="IzH-dB-I9H" firstAttribute="centerY" secondItem="EAC-sg-BLE" secondAttribute="centerY" id="Ud1-tF-ivz"/> | ||
| 70 | - <constraint firstItem="1xZ-bM-AMz" firstAttribute="leading" secondItem="EAC-sg-BLE" secondAttribute="leading" constant="8" id="Z77-MJ-BF0"/> | ||
| 71 | - <constraint firstAttribute="bottom" secondItem="NJW-yg-XQM" secondAttribute="bottom" id="i3N-yW-fre"/> | ||
| 72 | - <constraint firstAttribute="trailing" secondItem="NJW-yg-XQM" secondAttribute="trailing" id="ued-ca-1l3"/> | ||
| 73 | - <constraint firstItem="1xZ-bM-AMz" firstAttribute="centerY" secondItem="EAC-sg-BLE" secondAttribute="centerY" id="xd6-hf-JPu"/> | ||
| 74 | - <constraint firstItem="NJW-yg-XQM" firstAttribute="leading" secondItem="EAC-sg-BLE" secondAttribute="leading" id="xlc-R5-T0J"/> | ||
| 75 | - </constraints> | ||
| 76 | - </view> | ||
| 77 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xba-Rv-jIe"> | ||
| 78 | - <rect key="frame" x="0.0" y="56" width="250" height="56"/> | ||
| 79 | - <subviews> | ||
| 80 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BcZ-u5-RFA"> | ||
| 81 | - <rect key="frame" x="0.0" y="55" width="250" height="1"/> | ||
| 82 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 83 | - <constraints> | ||
| 84 | - <constraint firstAttribute="height" constant="1" id="aAz-El-TeO"/> | ||
| 85 | - </constraints> | ||
| 86 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 87 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 88 | - <nil key="highlightedColor"/> | ||
| 89 | - </label> | ||
| 90 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="userPassword.png" translatesAutoresizingMaskIntoConstraints="NO" id="oON-zY-4HS"> | ||
| 91 | - <rect key="frame" x="8" y="15" width="20" height="26"/> | ||
| 92 | - <constraints> | ||
| 93 | - <constraint firstAttribute="width" secondItem="oON-zY-4HS" secondAttribute="height" multiplier="31:41" id="hSc-3U-3kl"/> | ||
| 94 | - <constraint firstAttribute="width" constant="20" id="vb3-Wd-N14"/> | ||
| 95 | - </constraints> | ||
| 96 | - </imageView> | ||
| 97 | - <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入6位以上的密码" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="nVn-EA-yWM"> | ||
| 98 | - <rect key="frame" x="36" y="18.5" width="214" height="19"/> | ||
| 99 | - <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 100 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 101 | - <textInputTraits key="textInputTraits" secureTextEntry="YES"/> | ||
| 102 | - <connections> | ||
| 103 | - <outlet property="delegate" destination="fvc-9c-Gca" id="tMS-9N-o09"/> | ||
| 104 | - </connections> | ||
| 105 | - </textField> | ||
| 106 | - </subviews> | ||
| 107 | - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> | ||
| 108 | - <constraints> | ||
| 109 | - <constraint firstItem="oON-zY-4HS" firstAttribute="leading" secondItem="xba-Rv-jIe" secondAttribute="leading" constant="8" id="6sV-zB-qIs"/> | ||
| 110 | - <constraint firstItem="nVn-EA-yWM" firstAttribute="centerY" secondItem="xba-Rv-jIe" secondAttribute="centerY" id="HaD-wa-ZFb"/> | ||
| 111 | - <constraint firstAttribute="trailing" secondItem="BcZ-u5-RFA" secondAttribute="trailing" id="KDU-ei-Izn"/> | ||
| 112 | - <constraint firstItem="nVn-EA-yWM" firstAttribute="leading" secondItem="oON-zY-4HS" secondAttribute="trailing" constant="8" id="LHP-bs-Kee"/> | ||
| 113 | - <constraint firstAttribute="bottom" secondItem="BcZ-u5-RFA" secondAttribute="bottom" id="N41-uo-obj"/> | ||
| 114 | - <constraint firstItem="oON-zY-4HS" firstAttribute="centerY" secondItem="xba-Rv-jIe" secondAttribute="centerY" id="Sf8-w6-WiM"/> | ||
| 115 | - <constraint firstAttribute="trailing" secondItem="nVn-EA-yWM" secondAttribute="trailing" id="UTj-My-xsB"/> | ||
| 116 | - <constraint firstItem="BcZ-u5-RFA" firstAttribute="leading" secondItem="xba-Rv-jIe" secondAttribute="leading" id="gei-H3-PPW"/> | ||
| 117 | - </constraints> | ||
| 118 | - </view> | ||
| 119 | - </subviews> | ||
| 120 | - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> | ||
| 121 | - <constraints> | ||
| 122 | - <constraint firstAttribute="trailing" secondItem="xba-Rv-jIe" secondAttribute="trailing" id="0A8-Lv-KWd"/> | ||
| 123 | - <constraint firstAttribute="height" constant="112" id="0mn-L0-Qpr"/> | ||
| 124 | - <constraint firstItem="EAC-sg-BLE" firstAttribute="top" secondItem="eXd-TY-qlW" secondAttribute="top" id="Bsa-ry-Tmn"/> | ||
| 125 | - <constraint firstItem="xba-Rv-jIe" firstAttribute="top" secondItem="EAC-sg-BLE" secondAttribute="bottom" id="OKE-Ch-lJc"/> | ||
| 126 | - <constraint firstAttribute="bottom" secondItem="xba-Rv-jIe" secondAttribute="bottom" id="aCK-P5-ecJ"/> | ||
| 127 | - <constraint firstItem="xba-Rv-jIe" firstAttribute="leading" secondItem="eXd-TY-qlW" secondAttribute="leading" id="aap-4K-zSS"/> | ||
| 128 | - <constraint firstItem="EAC-sg-BLE" firstAttribute="leading" secondItem="eXd-TY-qlW" secondAttribute="leading" id="e0b-LG-hBZ"/> | ||
| 129 | - <constraint firstAttribute="trailing" secondItem="EAC-sg-BLE" secondAttribute="trailing" id="uOA-y7-ZUY"/> | ||
| 130 | - </constraints> | ||
| 131 | - </view> | ||
| 132 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Qs2-9k-jbh"> | ||
| 133 | - <rect key="frame" x="62.5" y="144" width="250" height="30"/> | ||
| 134 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 135 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 136 | - <state key="normal" title="登录"> | ||
| 137 | - <color key="titleColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 138 | - </state> | ||
| 139 | - <userDefinedRuntimeAttributes> | ||
| 140 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 141 | - <integer key="value" value="15"/> | ||
| 142 | - </userDefinedRuntimeAttribute> | ||
| 143 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 144 | - </userDefinedRuntimeAttributes> | ||
| 145 | - <connections> | ||
| 146 | - <action selector="loginBtnClickAction:" destination="fvc-9c-Gca" eventType="touchUpInside" id="INl-Rf-lsr"/> | ||
| 147 | - </connections> | ||
| 148 | - </button> | ||
| 149 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pzO-1N-Vrz"> | ||
| 150 | - <rect key="frame" x="62.5" y="182" width="250" height="30"/> | ||
| 151 | - <subviews> | ||
| 152 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="忘记密码" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="v6n-Br-sBy"> | ||
| 153 | - <rect key="frame" x="0.0" y="0.0" width="53.5" height="30"/> | ||
| 154 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 155 | - <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 156 | - <nil key="highlightedColor"/> | ||
| 157 | - </label> | ||
| 158 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="注册" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7fx-1i-VwW"> | ||
| 159 | - <rect key="frame" x="223" y="0.0" width="27" height="30"/> | ||
| 160 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 161 | - <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 162 | - <nil key="highlightedColor"/> | ||
| 163 | - </label> | ||
| 164 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ps0-yz-uMV"> | ||
| 165 | - <rect key="frame" x="0.0" y="0.0" width="250" height="30"/> | ||
| 166 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 167 | - <state key="normal"> | ||
| 168 | - <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 169 | - </state> | ||
| 170 | - <connections> | ||
| 171 | - <action selector="registerBtnClickAction:" destination="fvc-9c-Gca" eventType="touchUpInside" id="joQ-gk-ZzE"/> | ||
| 172 | - </connections> | ||
| 173 | - </button> | ||
| 174 | - </subviews> | ||
| 175 | - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> | ||
| 176 | - <constraints> | ||
| 177 | - <constraint firstItem="ps0-yz-uMV" firstAttribute="top" secondItem="pzO-1N-Vrz" secondAttribute="top" id="7G1-mO-jQj"/> | ||
| 178 | - <constraint firstAttribute="trailing" secondItem="7fx-1i-VwW" secondAttribute="trailing" id="8ot-xx-BFo"/> | ||
| 179 | - <constraint firstAttribute="bottom" secondItem="7fx-1i-VwW" secondAttribute="bottom" id="Byb-9b-kOd"/> | ||
| 180 | - <constraint firstAttribute="height" constant="30" id="TT4-WL-hYa"/> | ||
| 181 | - <constraint firstItem="7fx-1i-VwW" firstAttribute="top" secondItem="pzO-1N-Vrz" secondAttribute="top" id="VzP-hc-s7a"/> | ||
| 182 | - <constraint firstAttribute="bottom" secondItem="ps0-yz-uMV" secondAttribute="bottom" id="d8H-p3-iy8"/> | ||
| 183 | - <constraint firstAttribute="trailing" secondItem="ps0-yz-uMV" secondAttribute="trailing" id="eo1-LL-5jy"/> | ||
| 184 | - <constraint firstAttribute="bottom" secondItem="v6n-Br-sBy" secondAttribute="bottom" id="gbJ-jU-WFB"/> | ||
| 185 | - <constraint firstItem="v6n-Br-sBy" firstAttribute="top" secondItem="pzO-1N-Vrz" secondAttribute="top" id="hj5-hs-ep4"/> | ||
| 186 | - <constraint firstItem="ps0-yz-uMV" firstAttribute="leading" secondItem="pzO-1N-Vrz" secondAttribute="leading" id="uJt-wq-oTh"/> | ||
| 187 | - <constraint firstItem="v6n-Br-sBy" firstAttribute="leading" secondItem="pzO-1N-Vrz" secondAttribute="leading" id="xdM-JA-UcQ"/> | ||
| 188 | - </constraints> | ||
| 189 | - </view> | ||
| 190 | - </subviews> | ||
| 191 | - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> | ||
| 192 | - <constraints> | ||
| 193 | - <constraint firstItem="eXd-TY-qlW" firstAttribute="width" secondItem="tqb-X5-ujR" secondAttribute="width" multiplier="2:3" id="28b-2f-9yl"/> | ||
| 194 | - <constraint firstAttribute="bottom" secondItem="pzO-1N-Vrz" secondAttribute="bottom" constant="8" id="AcS-52-YRY"/> | ||
| 195 | - <constraint firstAttribute="height" constant="220" id="JHj-W0-zAJ"/> | ||
| 196 | - <constraint firstItem="pzO-1N-Vrz" firstAttribute="width" secondItem="Qs2-9k-jbh" secondAttribute="width" id="RHT-EX-Fz6"/> | ||
| 197 | - <constraint firstItem="eXd-TY-qlW" firstAttribute="centerX" secondItem="tqb-X5-ujR" secondAttribute="centerX" id="Yap-fj-Sza"/> | ||
| 198 | - <constraint firstItem="pzO-1N-Vrz" firstAttribute="top" secondItem="Qs2-9k-jbh" secondAttribute="bottom" constant="8" id="YqV-mN-jUi"/> | ||
| 199 | - <constraint firstItem="Qs2-9k-jbh" firstAttribute="centerX" secondItem="tqb-X5-ujR" secondAttribute="centerX" id="icb-A7-CtC"/> | ||
| 200 | - <constraint firstItem="Qs2-9k-jbh" firstAttribute="width" secondItem="eXd-TY-qlW" secondAttribute="width" id="ipD-di-CWB"/> | ||
| 201 | - <constraint firstItem="pzO-1N-Vrz" firstAttribute="centerX" secondItem="tqb-X5-ujR" secondAttribute="centerX" id="o6l-Fj-Cb6"/> | ||
| 202 | - <constraint firstItem="eXd-TY-qlW" firstAttribute="top" secondItem="tqb-X5-ujR" secondAttribute="top" id="uPt-SF-Tbq"/> | ||
| 203 | - </constraints> | ||
| 204 | - </view> | ||
| 205 | - </subviews> | ||
| 206 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 207 | - <gestureRecognizers/> | ||
| 208 | - <constraints> | ||
| 209 | - <constraint firstItem="agc-xf-u2B" firstAttribute="top" secondItem="Bob-Ef-450" secondAttribute="bottom" id="1po-1a-xaB"/> | ||
| 210 | - <constraint firstItem="Bob-Ef-450" firstAttribute="leading" secondItem="rVC-Df-GKu" secondAttribute="leading" id="7Sq-vg-TJG"/> | ||
| 211 | - <constraint firstAttribute="trailing" secondItem="tqb-X5-ujR" secondAttribute="trailing" id="F9s-LV-2UW"/> | ||
| 212 | - <constraint firstItem="tqb-X5-ujR" firstAttribute="top" secondItem="M3F-7t-f1g" secondAttribute="bottom" constant="166" id="Oea-d4-0BB"/> | ||
| 213 | - <constraint firstItem="Bob-Ef-450" firstAttribute="top" secondItem="rVC-Df-GKu" secondAttribute="top" id="TCI-Vu-vUz"/> | ||
| 214 | - <constraint firstAttribute="trailing" secondItem="Bob-Ef-450" secondAttribute="trailing" id="y4W-E4-8L6"/> | ||
| 215 | - <constraint firstItem="tqb-X5-ujR" firstAttribute="leading" secondItem="rVC-Df-GKu" secondAttribute="leading" id="zlD-w4-YPr"/> | ||
| 216 | - </constraints> | ||
| 217 | - <connections> | ||
| 218 | - <outletCollection property="gestureRecognizers" destination="X5v-TO-Lu5" appends="YES" id="QuA-4X-qlp"/> | ||
| 219 | - </connections> | ||
| 220 | - </view> | ||
| 221 | - <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> | ||
| 222 | - <size key="freeformSize" width="375" height="667"/> | ||
| 223 | - <connections> | ||
| 224 | - <outlet property="changeViewTop" destination="Oea-d4-0BB" id="FSX-wE-ENn"/> | ||
| 225 | - <outlet property="passwordTextField" destination="nVn-EA-yWM" id="k8J-rx-Oub"/> | ||
| 226 | - <outlet property="phoneNumberTextField" destination="IzH-dB-I9H" id="7Kd-jZ-pC2"/> | ||
| 227 | - </connections> | ||
| 228 | - </viewController> | ||
| 229 | - <placeholder placeholderIdentifier="IBFirstResponder" id="4gl-mL-off" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 230 | - <tapGestureRecognizer id="X5v-TO-Lu5"> | ||
| 231 | - <connections> | ||
| 232 | - <action selector="touchAction:" destination="fvc-9c-Gca" id="oP2-EM-bgW"/> | ||
| 233 | - </connections> | ||
| 234 | - </tapGestureRecognizer> | ||
| 235 | - </objects> | ||
| 236 | - <point key="canvasLocation" x="-1468" y="1534.1829085457273"/> | ||
| 237 | - </scene> | ||
| 238 | - <!--个人设置--> | ||
| 239 | - <scene sceneID="7Fy-nr-XeV"> | ||
| 240 | - <objects> | ||
| 241 | - <viewController storyboardIdentifier="PersonalSettingViewControllerVC" id="zag-ex-Ns7" customClass="PersonalSettingViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 242 | - <layoutGuides> | ||
| 243 | - <viewControllerLayoutGuide type="top" id="UCq-di-1FE"/> | ||
| 244 | - <viewControllerLayoutGuide type="bottom" id="6c4-3r-MCg"/> | ||
| 245 | - </layoutGuides> | ||
| 246 | - <view key="view" contentMode="scaleToFill" id="ohI-ec-VmG"> | ||
| 247 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 248 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 249 | - <subviews> | ||
| 250 | - <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="zVa-Jq-aTu"> | ||
| 251 | - <rect key="frame" x="0.0" y="64" width="375" height="535"/> | ||
| 252 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 253 | - <view key="tableFooterView" contentMode="scaleToFill" id="12C-tj-ZV7"> | ||
| 254 | - <rect key="frame" x="0.0" y="72" width="375" height="1"/> | ||
| 255 | - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
| 256 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 257 | - </view> | ||
| 258 | - <prototypes> | ||
| 259 | - <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="cell" id="P7c-Ko-kqd" customClass="PersonalSettingCell" customModule="YouerLiveVideo" customModuleProvider="target"> | ||
| 260 | - <rect key="frame" x="0.0" y="28" width="375" height="44"/> | ||
| 261 | - <autoresizingMask key="autoresizingMask"/> | ||
| 262 | - <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="P7c-Ko-kqd" id="Raa-86-9ng"> | ||
| 263 | - <rect key="frame" x="0.0" y="0.0" width="375" height="44"/> | ||
| 264 | - <autoresizingMask key="autoresizingMask"/> | ||
| 265 | - <subviews> | ||
| 266 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="手机号(账号)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="juK-fe-Y7f"> | ||
| 267 | - <rect key="frame" x="15" y="12" width="105" height="20.5"/> | ||
| 268 | - <constraints> | ||
| 269 | - <constraint firstAttribute="width" constant="105" id="Lby-yz-Twy"/> | ||
| 270 | - </constraints> | ||
| 271 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 272 | - <nil key="textColor"/> | ||
| 273 | - <nil key="highlightedColor"/> | ||
| 274 | - </label> | ||
| 275 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="收拢.png" translatesAutoresizingMaskIntoConstraints="NO" id="k9H-ER-871"> | ||
| 276 | - <rect key="frame" x="350" y="13.5" width="10" height="17"/> | ||
| 277 | - <constraints> | ||
| 278 | - <constraint firstAttribute="width" secondItem="k9H-ER-871" secondAttribute="height" multiplier="3:5" id="34k-Gi-2Ee"/> | ||
| 279 | - <constraint firstAttribute="width" constant="10" id="zRD-Rc-v5U"/> | ||
| 280 | - </constraints> | ||
| 281 | - </imageView> | ||
| 282 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pMa-ZG-7NM"> | ||
| 283 | - <rect key="frame" x="121" y="12" width="221" height="20.5"/> | ||
| 284 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 285 | - <color key="textColor" red="0.65098039220000004" green="0.65098039220000004" blue="0.6588235294" alpha="1" colorSpace="calibratedRGB"/> | ||
| 286 | - <nil key="highlightedColor"/> | ||
| 287 | - </label> | ||
| 288 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="oH0-ty-ODc"> | ||
| 289 | - <rect key="frame" x="312" y="7" width="30" height="30"/> | ||
| 290 | - <constraints> | ||
| 291 | - <constraint firstAttribute="width" constant="30" id="QjD-M0-idc"/> | ||
| 292 | - </constraints> | ||
| 293 | - <userDefinedRuntimeAttributes> | ||
| 294 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 295 | - <integer key="value" value="15"/> | ||
| 296 | - </userDefinedRuntimeAttribute> | ||
| 297 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 298 | - </userDefinedRuntimeAttributes> | ||
| 299 | - </imageView> | ||
| 300 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YOS-pR-e5K"> | ||
| 301 | - <rect key="frame" x="0.0" y="43" width="375" height="1"/> | ||
| 302 | - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 303 | - <constraints> | ||
| 304 | - <constraint firstAttribute="height" constant="1" id="XMZ-BJ-Nya"/> | ||
| 305 | - </constraints> | ||
| 306 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 307 | - <nil key="textColor"/> | ||
| 308 | - <nil key="highlightedColor"/> | ||
| 309 | - </label> | ||
| 310 | - </subviews> | ||
| 311 | - <constraints> | ||
| 312 | - <constraint firstItem="oH0-ty-ODc" firstAttribute="centerY" secondItem="Raa-86-9ng" secondAttribute="centerY" id="0Ml-yS-EZ4"/> | ||
| 313 | - <constraint firstItem="pMa-ZG-7NM" firstAttribute="centerY" secondItem="Raa-86-9ng" secondAttribute="centerY" id="9i5-Ih-kN3"/> | ||
| 314 | - <constraint firstItem="oH0-ty-ODc" firstAttribute="width" secondItem="oH0-ty-ODc" secondAttribute="height" multiplier="1:1" id="L8W-NL-DGV"/> | ||
| 315 | - <constraint firstItem="juK-fe-Y7f" firstAttribute="leading" secondItem="Raa-86-9ng" secondAttribute="leading" constant="15" id="PDU-zE-jvH"/> | ||
| 316 | - <constraint firstItem="k9H-ER-871" firstAttribute="leading" secondItem="oH0-ty-ODc" secondAttribute="trailing" constant="8" id="PPI-rR-Ewq"/> | ||
| 317 | - <constraint firstItem="YOS-pR-e5K" firstAttribute="leading" secondItem="Raa-86-9ng" secondAttribute="leading" id="bQa-xi-SKl"/> | ||
| 318 | - <constraint firstItem="k9H-ER-871" firstAttribute="leading" secondItem="pMa-ZG-7NM" secondAttribute="trailing" constant="8" id="cZi-Wn-11t"/> | ||
| 319 | - <constraint firstAttribute="trailing" secondItem="YOS-pR-e5K" secondAttribute="trailing" id="ecZ-Tm-SQO"/> | ||
| 320 | - <constraint firstItem="juK-fe-Y7f" firstAttribute="centerY" secondItem="Raa-86-9ng" secondAttribute="centerY" id="hBl-MZ-jo2"/> | ||
| 321 | - <constraint firstAttribute="bottom" secondItem="YOS-pR-e5K" secondAttribute="bottom" id="k7i-5l-x8C"/> | ||
| 322 | - <constraint firstItem="pMa-ZG-7NM" firstAttribute="leading" secondItem="juK-fe-Y7f" secondAttribute="trailing" constant="1" id="oSX-xs-mQG"/> | ||
| 323 | - <constraint firstItem="k9H-ER-871" firstAttribute="centerY" secondItem="Raa-86-9ng" secondAttribute="centerY" id="x0P-SE-6dn"/> | ||
| 324 | - <constraint firstAttribute="trailing" secondItem="k9H-ER-871" secondAttribute="trailing" constant="15" id="yL7-gI-6Bh"/> | ||
| 325 | - </constraints> | ||
| 326 | - </tableViewCellContentView> | ||
| 327 | - <connections> | ||
| 328 | - <outlet property="imagePhoto" destination="oH0-ty-ODc" id="iQv-S2-ItJ"/> | ||
| 329 | - <outlet property="nameLabelRightSpace" destination="cZi-Wn-11t" id="Wls-8Y-XeT"/> | ||
| 330 | - <outlet property="nameTitleLabel" destination="juK-fe-Y7f" id="eMi-cJ-35W"/> | ||
| 331 | - <outlet property="namelabel" destination="pMa-ZG-7NM" id="3FP-fk-MfF"/> | ||
| 332 | - <outlet property="rightArrow" destination="k9H-ER-871" id="pH9-he-yub"/> | ||
| 333 | - </connections> | ||
| 334 | - </tableViewCell> | ||
| 335 | - </prototypes> | ||
| 336 | - <connections> | ||
| 337 | - <outlet property="dataSource" destination="zag-ex-Ns7" id="h0H-BT-k7B"/> | ||
| 338 | - <outlet property="delegate" destination="zag-ex-Ns7" id="7qk-li-aJ4"/> | ||
| 339 | - </connections> | ||
| 340 | - </tableView> | ||
| 341 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Zoh-gF-GRC"> | ||
| 342 | - <rect key="frame" x="0.0" y="599" width="375" height="68"/> | ||
| 343 | - <subviews> | ||
| 344 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="O66-bx-WBX"> | ||
| 345 | - <rect key="frame" x="137.5" y="14" width="100" height="40"/> | ||
| 346 | - <color key="backgroundColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 347 | - <constraints> | ||
| 348 | - <constraint firstAttribute="height" constant="40" id="bXw-Ag-yrj"/> | ||
| 349 | - <constraint firstAttribute="width" constant="100" id="gZN-aT-Qe6"/> | ||
| 350 | - </constraints> | ||
| 351 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 352 | - <state key="normal" title="退出登录"> | ||
| 353 | - <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> | ||
| 354 | - </state> | ||
| 355 | - <userDefinedRuntimeAttributes> | ||
| 356 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 357 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 358 | - <integer key="value" value="5"/> | ||
| 359 | - </userDefinedRuntimeAttribute> | ||
| 360 | - </userDefinedRuntimeAttributes> | ||
| 361 | - <connections> | ||
| 362 | - <action selector="ExsitBtnClickAction:" destination="zag-ex-Ns7" eventType="touchUpInside" id="cvZ-aV-t5N"/> | ||
| 363 | - </connections> | ||
| 364 | - </button> | ||
| 365 | - </subviews> | ||
| 366 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 367 | - <constraints> | ||
| 368 | - <constraint firstItem="O66-bx-WBX" firstAttribute="centerX" secondItem="Zoh-gF-GRC" secondAttribute="centerX" id="Vgd-7C-PCW"/> | ||
| 369 | - <constraint firstAttribute="height" constant="68" id="c9N-lN-Lbb"/> | ||
| 370 | - <constraint firstItem="O66-bx-WBX" firstAttribute="centerY" secondItem="Zoh-gF-GRC" secondAttribute="centerY" id="gPv-om-cWX"/> | ||
| 371 | - </constraints> | ||
| 372 | - </view> | ||
| 373 | - </subviews> | ||
| 374 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 375 | - <constraints> | ||
| 376 | - <constraint firstAttribute="trailing" secondItem="Zoh-gF-GRC" secondAttribute="trailing" id="28G-9t-FM1"/> | ||
| 377 | - <constraint firstItem="Zoh-gF-GRC" firstAttribute="top" secondItem="zVa-Jq-aTu" secondAttribute="bottom" id="5df-U2-nj5"/> | ||
| 378 | - <constraint firstItem="zVa-Jq-aTu" firstAttribute="top" secondItem="UCq-di-1FE" secondAttribute="bottom" id="QDW-Hg-bFk"/> | ||
| 379 | - <constraint firstAttribute="trailing" secondItem="zVa-Jq-aTu" secondAttribute="trailing" id="gmi-IS-fwG"/> | ||
| 380 | - <constraint firstItem="6c4-3r-MCg" firstAttribute="top" secondItem="Zoh-gF-GRC" secondAttribute="bottom" id="oJI-li-9v7"/> | ||
| 381 | - <constraint firstItem="Zoh-gF-GRC" firstAttribute="leading" secondItem="ohI-ec-VmG" secondAttribute="leading" id="w19-By-97X"/> | ||
| 382 | - <constraint firstItem="zVa-Jq-aTu" firstAttribute="leading" secondItem="ohI-ec-VmG" secondAttribute="leading" id="yos-vH-UlZ"/> | ||
| 383 | - </constraints> | ||
| 384 | - </view> | ||
| 385 | - <navigationItem key="navigationItem" title="个人设置" id="oam-jc-du0"> | ||
| 386 | - <barButtonItem key="rightBarButtonItem" title="修改" id="HPL-MW-tPy"> | ||
| 387 | - <connections> | ||
| 388 | - <action selector="finishAction:" destination="zag-ex-Ns7" id="vYu-XV-Oz1"/> | ||
| 389 | - </connections> | ||
| 390 | - </barButtonItem> | ||
| 391 | - </navigationItem> | ||
| 392 | - <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/> | ||
| 393 | - <connections> | ||
| 394 | - <outlet property="loginoutBtn" destination="O66-bx-WBX" id="yBh-45-PmW"/> | ||
| 395 | - <outlet property="rightBarBtn" destination="HPL-MW-tPy" id="iWY-Ng-b1p"/> | ||
| 396 | - <outlet property="userSettingTableView" destination="zVa-Jq-aTu" id="62H-Yg-00D"/> | ||
| 397 | - </connections> | ||
| 398 | - </viewController> | ||
| 399 | - <placeholder placeholderIdentifier="IBFirstResponder" id="Kw5-Rz-kOp" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 400 | - </objects> | ||
| 401 | - <point key="canvasLocation" x="-774" y="1534"/> | ||
| 402 | - </scene> | ||
| 403 | - <!--Register View Controller--> | ||
| 404 | - <scene sceneID="81Y-IJ-Kye"> | ||
| 405 | - <objects> | ||
| 406 | - <viewController storyboardIdentifier="RegisterViewControllerVC" id="tCx-JF-YJm" customClass="RegisterViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 407 | - <layoutGuides> | ||
| 408 | - <viewControllerLayoutGuide type="top" id="o4V-sv-MMh"/> | ||
| 409 | - <viewControllerLayoutGuide type="bottom" id="T9H-hV-piI"/> | ||
| 410 | - </layoutGuides> | ||
| 411 | - <view key="view" contentMode="scaleToFill" id="i7O-Dj-x5S" customClass="UIControl"> | ||
| 412 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 413 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 414 | - <subviews> | ||
| 415 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="403-Gp-RaZ" customClass="UIControl"> | ||
| 416 | - <rect key="frame" x="0.0" y="20" width="375" height="168"/> | ||
| 417 | - <subviews> | ||
| 418 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8h8-sS-iJ1"> | ||
| 419 | - <rect key="frame" x="138" y="15" width="99" height="99"/> | ||
| 420 | - <subviews> | ||
| 421 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="上传头像" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MjO-1h-doT"> | ||
| 422 | - <rect key="frame" x="15" y="73" width="69.5" height="20.5"/> | ||
| 423 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 424 | - <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 425 | - <nil key="highlightedColor"/> | ||
| 426 | - </label> | ||
| 427 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="上传头像.png" translatesAutoresizingMaskIntoConstraints="NO" id="1fC-6m-eDG"> | ||
| 428 | - <rect key="frame" x="24.5" y="15" width="50" height="50"/> | ||
| 429 | - <constraints> | ||
| 430 | - <constraint firstAttribute="width" secondItem="1fC-6m-eDG" secondAttribute="height" multiplier="1:1" id="nya-81-raI"/> | ||
| 431 | - <constraint firstAttribute="height" constant="50" id="uJA-jF-kBe"/> | ||
| 432 | - </constraints> | ||
| 433 | - </imageView> | ||
| 434 | - </subviews> | ||
| 435 | - <color key="backgroundColor" red="0.1058823529" green="0.82745098039999998" blue="0.74509803919999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 436 | - <gestureRecognizers/> | ||
| 437 | - <constraints> | ||
| 438 | - <constraint firstAttribute="width" secondItem="8h8-sS-iJ1" secondAttribute="height" multiplier="1:1" id="1dO-fX-vcH"/> | ||
| 439 | - <constraint firstItem="1fC-6m-eDG" firstAttribute="top" secondItem="8h8-sS-iJ1" secondAttribute="top" constant="15" id="AZr-hi-5Ga"/> | ||
| 440 | - <constraint firstAttribute="height" constant="99" id="EKP-qi-zdc"/> | ||
| 441 | - <constraint firstAttribute="bottom" secondItem="1fC-6m-eDG" secondAttribute="bottom" constant="8" id="HCk-K2-bD9"/> | ||
| 442 | - <constraint firstItem="MjO-1h-doT" firstAttribute="top" secondItem="1fC-6m-eDG" secondAttribute="bottom" constant="8" id="gDm-wv-uVd"/> | ||
| 443 | - <constraint firstItem="MjO-1h-doT" firstAttribute="centerX" secondItem="8h8-sS-iJ1" secondAttribute="centerX" id="lEb-LK-Ayk"/> | ||
| 444 | - <constraint firstItem="1fC-6m-eDG" firstAttribute="centerX" secondItem="8h8-sS-iJ1" secondAttribute="centerX" id="nF9-Di-ODB"/> | ||
| 445 | - <constraint firstAttribute="bottom" secondItem="MjO-1h-doT" secondAttribute="bottom" constant="16" id="sgC-7Y-LpN"/> | ||
| 446 | - </constraints> | ||
| 447 | - <variation key="default"> | ||
| 448 | - <mask key="constraints"> | ||
| 449 | - <exclude reference="HCk-K2-bD9"/> | ||
| 450 | - <exclude reference="sgC-7Y-LpN"/> | ||
| 451 | - </mask> | ||
| 452 | - </variation> | ||
| 453 | - <connections> | ||
| 454 | - <outletCollection property="gestureRecognizers" destination="aUf-CI-Y7V" appends="YES" id="6fC-6y-84F"/> | ||
| 455 | - </connections> | ||
| 456 | - </view> | ||
| 457 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="HCl-PT-sCJ"> | ||
| 458 | - <rect key="frame" x="130.5" y="118" width="114.5" height="30"/> | ||
| 459 | - <subviews> | ||
| 460 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="编辑.png" translatesAutoresizingMaskIntoConstraints="NO" id="YJG-jG-Ix8"> | ||
| 461 | - <rect key="frame" x="85.5" y="4.5" width="21" height="21"/> | ||
| 462 | - <constraints> | ||
| 463 | - <constraint firstAttribute="width" secondItem="YJG-jG-Ix8" secondAttribute="height" multiplier="1:1" id="nDw-SN-tx9"/> | ||
| 464 | - <constraint firstAttribute="height" constant="21" id="qhY-Et-icJ"/> | ||
| 465 | - </constraints> | ||
| 466 | - </imageView> | ||
| 467 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="设置昵称" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gj6-hl-Apj"> | ||
| 468 | - <rect key="frame" x="8" y="5" width="69.5" height="20.5"/> | ||
| 469 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 470 | - <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 471 | - <nil key="highlightedColor"/> | ||
| 472 | - </label> | ||
| 473 | - </subviews> | ||
| 474 | - <color key="backgroundColor" red="0.1058823529" green="0.82745098039999998" blue="0.74509803919999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 475 | - <gestureRecognizers/> | ||
| 476 | - <constraints> | ||
| 477 | - <constraint firstItem="YJG-jG-Ix8" firstAttribute="centerY" secondItem="HCl-PT-sCJ" secondAttribute="centerY" id="3WR-sv-c0Q"/> | ||
| 478 | - <constraint firstItem="gj6-hl-Apj" firstAttribute="centerY" secondItem="HCl-PT-sCJ" secondAttribute="centerY" id="Dwp-Af-mLC"/> | ||
| 479 | - <constraint firstItem="YJG-jG-Ix8" firstAttribute="leading" secondItem="gj6-hl-Apj" secondAttribute="trailing" constant="8" id="Yb9-mh-0fe"/> | ||
| 480 | - <constraint firstItem="gj6-hl-Apj" firstAttribute="leading" secondItem="HCl-PT-sCJ" secondAttribute="leading" constant="8" id="kI8-65-C8Y"/> | ||
| 481 | - <constraint firstAttribute="height" constant="30" id="laK-t9-f5W"/> | ||
| 482 | - <constraint firstAttribute="trailing" secondItem="YJG-jG-Ix8" secondAttribute="trailing" constant="8" id="peS-OS-VwR"/> | ||
| 483 | - </constraints> | ||
| 484 | - <connections> | ||
| 485 | - <outletCollection property="gestureRecognizers" destination="hfJ-NM-sst" appends="YES" id="AW1-A1-TlG"/> | ||
| 486 | - </connections> | ||
| 487 | - </view> | ||
| 488 | - </subviews> | ||
| 489 | - <color key="backgroundColor" red="0.1058823529" green="0.82745098039999998" blue="0.74509803919999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 490 | - <constraints> | ||
| 491 | - <constraint firstItem="8h8-sS-iJ1" firstAttribute="top" secondItem="403-Gp-RaZ" secondAttribute="top" constant="15" id="2WG-wR-ZQY"/> | ||
| 492 | - <constraint firstItem="HCl-PT-sCJ" firstAttribute="centerX" secondItem="403-Gp-RaZ" secondAttribute="centerX" id="Ctu-87-5Xl"/> | ||
| 493 | - <constraint firstItem="HCl-PT-sCJ" firstAttribute="top" secondItem="8h8-sS-iJ1" secondAttribute="bottom" constant="4" id="GK6-Qh-dBO"/> | ||
| 494 | - <constraint firstItem="HCl-PT-sCJ" firstAttribute="top" secondItem="8h8-sS-iJ1" secondAttribute="bottom" constant="8" id="QPI-Mk-b8n"/> | ||
| 495 | - <constraint firstAttribute="height" constant="168" id="yi6-JV-ObE"/> | ||
| 496 | - <constraint firstItem="8h8-sS-iJ1" firstAttribute="centerX" secondItem="403-Gp-RaZ" secondAttribute="centerX" id="yrY-zt-nHi"/> | ||
| 497 | - </constraints> | ||
| 498 | - <variation key="default"> | ||
| 499 | - <mask key="constraints"> | ||
| 500 | - <exclude reference="QPI-Mk-b8n"/> | ||
| 501 | - </mask> | ||
| 502 | - </variation> | ||
| 503 | - </view> | ||
| 504 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xNc-I3-UL6"> | ||
| 505 | - <rect key="frame" x="0.0" y="20" width="375" height="168"/> | ||
| 506 | - <subviews> | ||
| 507 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1Cp-hz-9O4"> | ||
| 508 | - <rect key="frame" x="0.0" y="0.0" width="375" height="56"/> | ||
| 509 | - <subviews> | ||
| 510 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="o5G-fF-wVL"> | ||
| 511 | - <rect key="frame" x="0.0" y="55" width="375" height="1"/> | ||
| 512 | - <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 513 | - <constraints> | ||
| 514 | - <constraint firstAttribute="height" constant="1" id="lXH-lx-MSn"/> | ||
| 515 | - </constraints> | ||
| 516 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 517 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 518 | - <nil key="highlightedColor"/> | ||
| 519 | - </label> | ||
| 520 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="昵称" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="O8o-oN-LAH"> | ||
| 521 | - <rect key="frame" x="8" y="19" width="73" height="18"/> | ||
| 522 | - <constraints> | ||
| 523 | - <constraint firstAttribute="width" constant="73" id="bAz-Uv-bTd"/> | ||
| 524 | - </constraints> | ||
| 525 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 526 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 527 | - <nil key="highlightedColor"/> | ||
| 528 | - </label> | ||
| 529 | - <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入昵称 " minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="q7i-9n-2oP"> | ||
| 530 | - <rect key="frame" x="89" y="18.5" width="278" height="19"/> | ||
| 531 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 532 | - <textInputTraits key="textInputTraits" returnKeyType="done"/> | ||
| 533 | - </textField> | ||
| 534 | - </subviews> | ||
| 535 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 536 | - <constraints> | ||
| 537 | - <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="56" id="Ctl-Pt-CPh"/> | ||
| 538 | - <constraint firstItem="o5G-fF-wVL" firstAttribute="leading" secondItem="1Cp-hz-9O4" secondAttribute="leading" id="RLm-KI-JX6"/> | ||
| 539 | - <constraint firstAttribute="height" constant="56" id="UfT-BQ-siu"/> | ||
| 540 | - <constraint firstItem="O8o-oN-LAH" firstAttribute="leading" secondItem="1Cp-hz-9O4" secondAttribute="leading" constant="8" id="XGD-rw-eCb"/> | ||
| 541 | - <constraint firstAttribute="trailing" secondItem="q7i-9n-2oP" secondAttribute="trailing" constant="8" id="YdO-o5-5VF"/> | ||
| 542 | - <constraint firstAttribute="bottom" secondItem="o5G-fF-wVL" secondAttribute="bottom" id="f6j-pG-Rae"/> | ||
| 543 | - <constraint firstItem="q7i-9n-2oP" firstAttribute="centerY" secondItem="1Cp-hz-9O4" secondAttribute="centerY" id="fKp-1x-vbL"/> | ||
| 544 | - <constraint firstItem="q7i-9n-2oP" firstAttribute="leading" secondItem="O8o-oN-LAH" secondAttribute="trailing" constant="8" id="gEm-U9-rh0"/> | ||
| 545 | - <constraint firstItem="O8o-oN-LAH" firstAttribute="centerY" secondItem="1Cp-hz-9O4" secondAttribute="centerY" id="t0o-1a-As6"/> | ||
| 546 | - <constraint firstAttribute="trailing" secondItem="o5G-fF-wVL" secondAttribute="trailing" id="wvf-Cp-571"/> | ||
| 547 | - </constraints> | ||
| 548 | - </view> | ||
| 549 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="keu-Ke-SrA"> | ||
| 550 | - <rect key="frame" x="0.0" y="56" width="375" height="56"/> | ||
| 551 | - <subviews> | ||
| 552 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Hwy-QV-ob8"> | ||
| 553 | - <rect key="frame" x="0.0" y="55" width="375" height="1"/> | ||
| 554 | - <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 555 | - <constraints> | ||
| 556 | - <constraint firstAttribute="height" constant="1" id="1bP-ob-qdI"/> | ||
| 557 | - </constraints> | ||
| 558 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 559 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 560 | - <nil key="highlightedColor"/> | ||
| 561 | - </label> | ||
| 562 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="密码" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xBV-ds-Ub9"> | ||
| 563 | - <rect key="frame" x="8" y="19" width="73" height="18"/> | ||
| 564 | - <constraints> | ||
| 565 | - <constraint firstAttribute="width" constant="73" id="SAa-QZ-uJF"/> | ||
| 566 | - </constraints> | ||
| 567 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 568 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 569 | - <nil key="highlightedColor"/> | ||
| 570 | - </label> | ||
| 571 | - <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入密码" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="i3R-4H-gzp"> | ||
| 572 | - <rect key="frame" x="89" y="18.5" width="278" height="19"/> | ||
| 573 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 574 | - <textInputTraits key="textInputTraits" keyboardType="alphabet" returnKeyType="done"/> | ||
| 575 | - <connections> | ||
| 576 | - <outlet property="delegate" destination="tCx-JF-YJm" id="Awg-pn-DAx"/> | ||
| 577 | - </connections> | ||
| 578 | - </textField> | ||
| 579 | - </subviews> | ||
| 580 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 581 | - <constraints> | ||
| 582 | - <constraint firstAttribute="bottom" secondItem="Hwy-QV-ob8" secondAttribute="bottom" id="Cf7-PL-DRi"/> | ||
| 583 | - <constraint firstItem="xBV-ds-Ub9" firstAttribute="leading" secondItem="keu-Ke-SrA" secondAttribute="leading" constant="8" id="F8L-Q3-KCF"/> | ||
| 584 | - <constraint firstAttribute="trailing" secondItem="i3R-4H-gzp" secondAttribute="trailing" constant="8" id="XnD-Fb-exn"/> | ||
| 585 | - <constraint firstAttribute="trailing" secondItem="Hwy-QV-ob8" secondAttribute="trailing" id="cUW-Va-u0h"/> | ||
| 586 | - <constraint firstItem="i3R-4H-gzp" firstAttribute="leading" secondItem="xBV-ds-Ub9" secondAttribute="trailing" constant="8" id="cZ8-V2-oKV"/> | ||
| 587 | - <constraint firstAttribute="height" constant="56" id="it2-lJ-vPD"/> | ||
| 588 | - <constraint firstItem="i3R-4H-gzp" firstAttribute="centerY" secondItem="keu-Ke-SrA" secondAttribute="centerY" id="j86-kg-M0P"/> | ||
| 589 | - <constraint firstItem="xBV-ds-Ub9" firstAttribute="centerY" secondItem="keu-Ke-SrA" secondAttribute="centerY" id="lQ9-Xe-gvX"/> | ||
| 590 | - <constraint firstItem="Hwy-QV-ob8" firstAttribute="leading" secondItem="keu-Ke-SrA" secondAttribute="leading" id="ws3-Zb-SqH"/> | ||
| 591 | - </constraints> | ||
| 592 | - </view> | ||
| 593 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cnM-5P-fhN"> | ||
| 594 | - <rect key="frame" x="0.0" y="112" width="375" height="56"/> | ||
| 595 | - <subviews> | ||
| 596 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7YJ-fu-e63"> | ||
| 597 | - <rect key="frame" x="0.0" y="55" width="375" height="1"/> | ||
| 598 | - <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 599 | - <constraints> | ||
| 600 | - <constraint firstAttribute="height" constant="1" id="Ypb-br-LFg"/> | ||
| 601 | - </constraints> | ||
| 602 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 603 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 604 | - <nil key="highlightedColor"/> | ||
| 605 | - </label> | ||
| 606 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="确认密码" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xtu-Lb-h46"> | ||
| 607 | - <rect key="frame" x="8" y="19" width="73" height="18"/> | ||
| 608 | - <constraints> | ||
| 609 | - <constraint firstAttribute="width" constant="73" id="A5Z-hk-VeN"/> | ||
| 610 | - </constraints> | ||
| 611 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 612 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 613 | - <nil key="highlightedColor"/> | ||
| 614 | - </label> | ||
| 615 | - <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请确认密码" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="4Ko-iM-kKY"> | ||
| 616 | - <rect key="frame" x="89" y="18.5" width="278" height="19"/> | ||
| 617 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 618 | - <textInputTraits key="textInputTraits" keyboardType="alphabet" returnKeyType="done"/> | ||
| 619 | - <connections> | ||
| 620 | - <outlet property="delegate" destination="tCx-JF-YJm" id="kVV-m8-92v"/> | ||
| 621 | - </connections> | ||
| 622 | - </textField> | ||
| 623 | - </subviews> | ||
| 624 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 625 | - <constraints> | ||
| 626 | - <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="56" id="48F-9G-Fge"/> | ||
| 627 | - <constraint firstAttribute="trailing" secondItem="4Ko-iM-kKY" secondAttribute="trailing" constant="8" id="4fh-zG-9vl"/> | ||
| 628 | - <constraint firstAttribute="bottom" secondItem="7YJ-fu-e63" secondAttribute="bottom" id="9wD-aU-bMP"/> | ||
| 629 | - <constraint firstAttribute="trailing" secondItem="7YJ-fu-e63" secondAttribute="trailing" id="EjA-4T-fxE"/> | ||
| 630 | - <constraint firstItem="xtu-Lb-h46" firstAttribute="centerY" secondItem="cnM-5P-fhN" secondAttribute="centerY" id="HSA-Ou-onT"/> | ||
| 631 | - <constraint firstItem="4Ko-iM-kKY" firstAttribute="leading" secondItem="xtu-Lb-h46" secondAttribute="trailing" constant="8" id="aYk-72-GQD"/> | ||
| 632 | - <constraint firstItem="xtu-Lb-h46" firstAttribute="leading" secondItem="cnM-5P-fhN" secondAttribute="leading" constant="8" id="kbK-3X-65q"/> | ||
| 633 | - <constraint firstItem="7YJ-fu-e63" firstAttribute="leading" secondItem="cnM-5P-fhN" secondAttribute="leading" id="rhc-YS-Jug"/> | ||
| 634 | - <constraint firstAttribute="height" constant="56" id="ucM-EP-0Bc"/> | ||
| 635 | - <constraint firstItem="4Ko-iM-kKY" firstAttribute="centerY" secondItem="cnM-5P-fhN" secondAttribute="centerY" id="wja-1l-Xos"/> | ||
| 636 | - </constraints> | ||
| 637 | - </view> | ||
| 638 | - </subviews> | ||
| 639 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 640 | - <constraints> | ||
| 641 | - <constraint firstItem="keu-Ke-SrA" firstAttribute="top" secondItem="1Cp-hz-9O4" secondAttribute="bottom" id="Pee-iB-XUj"/> | ||
| 642 | - <constraint firstItem="cnM-5P-fhN" firstAttribute="leading" secondItem="xNc-I3-UL6" secondAttribute="leading" id="R9s-jK-AYa"/> | ||
| 643 | - <constraint firstAttribute="trailing" secondItem="1Cp-hz-9O4" secondAttribute="trailing" id="Rib-CM-97d"/> | ||
| 644 | - <constraint firstAttribute="height" constant="168" id="SWN-6C-I6R"/> | ||
| 645 | - <constraint firstAttribute="trailing" secondItem="cnM-5P-fhN" secondAttribute="trailing" id="U6d-yM-lM8"/> | ||
| 646 | - <constraint firstItem="1Cp-hz-9O4" firstAttribute="top" secondItem="xNc-I3-UL6" secondAttribute="top" id="elW-dc-FcY"/> | ||
| 647 | - <constraint firstItem="keu-Ke-SrA" firstAttribute="leading" secondItem="xNc-I3-UL6" secondAttribute="leading" id="gcJ-t2-OJH"/> | ||
| 648 | - <constraint firstItem="cnM-5P-fhN" firstAttribute="top" secondItem="keu-Ke-SrA" secondAttribute="bottom" id="hnn-cd-Hsj"/> | ||
| 649 | - <constraint firstAttribute="bottom" secondItem="cnM-5P-fhN" secondAttribute="bottom" id="k46-eB-0tn"/> | ||
| 650 | - <constraint firstAttribute="trailing" secondItem="keu-Ke-SrA" secondAttribute="trailing" id="lAV-sR-cpV"/> | ||
| 651 | - <constraint firstItem="1Cp-hz-9O4" firstAttribute="leading" secondItem="xNc-I3-UL6" secondAttribute="leading" id="o9e-5H-Do7"/> | ||
| 652 | - </constraints> | ||
| 653 | - </view> | ||
| 654 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rSF-LZ-Bnl"> | ||
| 655 | - <rect key="frame" x="0.0" y="188" width="375" height="112"/> | ||
| 656 | - <subviews> | ||
| 657 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vkP-pb-ydp"> | ||
| 658 | - <rect key="frame" x="0.0" y="0.0" width="375" height="56"/> | ||
| 659 | - <subviews> | ||
| 660 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MEf-rE-fBh"> | ||
| 661 | - <rect key="frame" x="0.0" y="55" width="375" height="1"/> | ||
| 662 | - <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 663 | - <constraints> | ||
| 664 | - <constraint firstAttribute="height" constant="1" id="cle-RJ-6tm"/> | ||
| 665 | - </constraints> | ||
| 666 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 667 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 668 | - <nil key="highlightedColor"/> | ||
| 669 | - </label> | ||
| 670 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="+86" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ae8-Wz-CYH"> | ||
| 671 | - <rect key="frame" x="8" y="19" width="73" height="18"/> | ||
| 672 | - <constraints> | ||
| 673 | - <constraint firstAttribute="width" constant="73" id="gFs-fM-1Vg"/> | ||
| 674 | - </constraints> | ||
| 675 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 676 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 677 | - <nil key="highlightedColor"/> | ||
| 678 | - </label> | ||
| 679 | - <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入手机号码 " minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="nVJ-81-bXY"> | ||
| 680 | - <rect key="frame" x="89" y="18.5" width="123.5" height="19"/> | ||
| 681 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 682 | - <textInputTraits key="textInputTraits" keyboardType="numberPad" returnKeyType="done"/> | ||
| 683 | - <connections> | ||
| 684 | - <outlet property="delegate" destination="tCx-JF-YJm" id="xWv-of-0Wb"/> | ||
| 685 | - </connections> | ||
| 686 | - </textField> | ||
| 687 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hwv-0n-dsf"> | ||
| 688 | - <rect key="frame" x="274" y="13" width="93" height="30"/> | ||
| 689 | - <color key="backgroundColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 690 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 691 | - <state key="normal" title=" 发送验证码 "> | ||
| 692 | - <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 693 | - </state> | ||
| 694 | - <userDefinedRuntimeAttributes> | ||
| 695 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 696 | - <integer key="value" value="15"/> | ||
| 697 | - </userDefinedRuntimeAttribute> | ||
| 698 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 699 | - </userDefinedRuntimeAttributes> | ||
| 700 | - <connections> | ||
| 701 | - <action selector="sendVerificationCodeClickAction:" destination="tCx-JF-YJm" eventType="touchUpInside" id="Agj-2K-dbp"/> | ||
| 702 | - </connections> | ||
| 703 | - </button> | ||
| 704 | - </subviews> | ||
| 705 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 706 | - <constraints> | ||
| 707 | - <constraint firstItem="MEf-rE-fBh" firstAttribute="leading" secondItem="vkP-pb-ydp" secondAttribute="leading" id="2A5-sj-MgA"/> | ||
| 708 | - <constraint firstItem="ae8-Wz-CYH" firstAttribute="centerY" secondItem="vkP-pb-ydp" secondAttribute="centerY" id="Dfi-Pp-DOa"/> | ||
| 709 | - <constraint firstItem="nVJ-81-bXY" firstAttribute="centerY" secondItem="vkP-pb-ydp" secondAttribute="centerY" id="Q9B-BF-wWO"/> | ||
| 710 | - <constraint firstAttribute="height" constant="56" id="d5e-TR-xj8"/> | ||
| 711 | - <constraint firstItem="ae8-Wz-CYH" firstAttribute="leading" secondItem="vkP-pb-ydp" secondAttribute="leading" constant="8" id="fAZ-jT-eye"/> | ||
| 712 | - <constraint firstAttribute="trailing" secondItem="hwv-0n-dsf" secondAttribute="trailing" constant="8" id="jCe-9b-HiL"/> | ||
| 713 | - <constraint firstItem="hwv-0n-dsf" firstAttribute="centerY" secondItem="vkP-pb-ydp" secondAttribute="centerY" id="mgL-oA-0oG"/> | ||
| 714 | - <constraint firstAttribute="trailing" secondItem="MEf-rE-fBh" secondAttribute="trailing" id="nEG-6h-NXY"/> | ||
| 715 | - <constraint firstAttribute="bottom" secondItem="MEf-rE-fBh" secondAttribute="bottom" id="y9Q-1X-3wy"/> | ||
| 716 | - <constraint firstItem="nVJ-81-bXY" firstAttribute="leading" secondItem="ae8-Wz-CYH" secondAttribute="trailing" constant="8" id="zxS-jB-eC8"/> | ||
| 717 | - </constraints> | ||
| 718 | - </view> | ||
| 719 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IlU-p3-aLY"> | ||
| 720 | - <rect key="frame" x="0.0" y="56" width="375" height="56"/> | ||
| 721 | - <subviews> | ||
| 722 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SOB-G4-Kln"> | ||
| 723 | - <rect key="frame" x="0.0" y="55" width="375" height="1"/> | ||
| 724 | - <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 725 | - <constraints> | ||
| 726 | - <constraint firstAttribute="height" constant="1" id="3yq-4f-vDW"/> | ||
| 727 | - </constraints> | ||
| 728 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 729 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 730 | - <nil key="highlightedColor"/> | ||
| 731 | - </label> | ||
| 732 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="验证码" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KmI-sz-jsA"> | ||
| 733 | - <rect key="frame" x="8" y="19" width="73" height="18"/> | ||
| 734 | - <constraints> | ||
| 735 | - <constraint firstAttribute="width" constant="73" id="ngh-2s-quJ"/> | ||
| 736 | - </constraints> | ||
| 737 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 738 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 739 | - <nil key="highlightedColor"/> | ||
| 740 | - </label> | ||
| 741 | - <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入验证码" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="GHW-G9-uIT"> | ||
| 742 | - <rect key="frame" x="89" y="18.5" width="278" height="19"/> | ||
| 743 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 744 | - <textInputTraits key="textInputTraits" keyboardType="numberPad" returnKeyType="done"/> | ||
| 745 | - <connections> | ||
| 746 | - <outlet property="delegate" destination="tCx-JF-YJm" id="deX-i0-lZv"/> | ||
| 747 | - </connections> | ||
| 748 | - </textField> | ||
| 749 | - </subviews> | ||
| 750 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 751 | - <constraints> | ||
| 752 | - <constraint firstItem="SOB-G4-Kln" firstAttribute="leading" secondItem="IlU-p3-aLY" secondAttribute="leading" id="Bpm-Op-035"/> | ||
| 753 | - <constraint firstAttribute="bottom" secondItem="SOB-G4-Kln" secondAttribute="bottom" id="KjW-FI-dyR"/> | ||
| 754 | - <constraint firstItem="GHW-G9-uIT" firstAttribute="leading" secondItem="KmI-sz-jsA" secondAttribute="trailing" constant="8" id="NWt-4e-GXU"/> | ||
| 755 | - <constraint firstAttribute="height" constant="56" id="QZA-UG-aso"/> | ||
| 756 | - <constraint firstItem="GHW-G9-uIT" firstAttribute="centerY" secondItem="IlU-p3-aLY" secondAttribute="centerY" id="SGD-Xp-h5t"/> | ||
| 757 | - <constraint firstAttribute="trailing" secondItem="SOB-G4-Kln" secondAttribute="trailing" id="ZSY-bN-JsM"/> | ||
| 758 | - <constraint firstItem="KmI-sz-jsA" firstAttribute="centerY" secondItem="IlU-p3-aLY" secondAttribute="centerY" id="dtC-at-TCi"/> | ||
| 759 | - <constraint firstItem="KmI-sz-jsA" firstAttribute="leading" secondItem="IlU-p3-aLY" secondAttribute="leading" constant="8" id="e2w-KQ-6sS"/> | ||
| 760 | - <constraint firstAttribute="trailing" secondItem="GHW-G9-uIT" secondAttribute="trailing" constant="8" id="y7F-Ik-Roe"/> | ||
| 761 | - </constraints> | ||
| 762 | - </view> | ||
| 763 | - </subviews> | ||
| 764 | - <color key="backgroundColor" red="1" green="0.42445692709999999" blue="0.35047448450000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 765 | - <constraints> | ||
| 766 | - <constraint firstAttribute="trailing" secondItem="IlU-p3-aLY" secondAttribute="trailing" id="4ga-Jf-7Ee"/> | ||
| 767 | - <constraint firstAttribute="height" constant="112" id="7NK-ZN-nyz"/> | ||
| 768 | - <constraint firstItem="vkP-pb-ydp" firstAttribute="leading" secondItem="rSF-LZ-Bnl" secondAttribute="leading" id="84d-gX-XI3"/> | ||
| 769 | - <constraint firstItem="IlU-p3-aLY" firstAttribute="top" secondItem="vkP-pb-ydp" secondAttribute="bottom" id="AEt-bb-mHP"/> | ||
| 770 | - <constraint firstItem="IlU-p3-aLY" firstAttribute="leading" secondItem="rSF-LZ-Bnl" secondAttribute="leading" id="OBc-tM-vGz"/> | ||
| 771 | - <constraint firstItem="vkP-pb-ydp" firstAttribute="top" secondItem="rSF-LZ-Bnl" secondAttribute="top" id="Ppf-3Y-BG7"/> | ||
| 772 | - <constraint firstAttribute="trailing" secondItem="vkP-pb-ydp" secondAttribute="trailing" id="Ygd-yH-f2B"/> | ||
| 773 | - <constraint firstAttribute="bottom" secondItem="IlU-p3-aLY" secondAttribute="bottom" id="cjh-Sk-yPh"/> | ||
| 774 | - </constraints> | ||
| 775 | - </view> | ||
| 776 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="R1Y-16-Th7"> | ||
| 777 | - <rect key="frame" x="62.5" y="400" width="250" height="40"/> | ||
| 778 | - <color key="backgroundColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 779 | - <constraints> | ||
| 780 | - <constraint firstAttribute="height" constant="40" id="Kvn-w3-Juc"/> | ||
| 781 | - </constraints> | ||
| 782 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 783 | - <state key="normal" title="注册"> | ||
| 784 | - <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 785 | - </state> | ||
| 786 | - <userDefinedRuntimeAttributes> | ||
| 787 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 788 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 789 | - <integer key="value" value="20"/> | ||
| 790 | - </userDefinedRuntimeAttribute> | ||
| 791 | - </userDefinedRuntimeAttributes> | ||
| 792 | - <connections> | ||
| 793 | - <action selector="registerBtnAction:" destination="tCx-JF-YJm" eventType="touchUpInside" id="pSt-yE-eTL"/> | ||
| 794 | - </connections> | ||
| 795 | - </button> | ||
| 796 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DJH-vy-tj1"> | ||
| 797 | - <rect key="frame" x="325" y="315" width="35" height="30"/> | ||
| 798 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 799 | - <state key="normal" title="登 录"> | ||
| 800 | - <color key="titleColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 801 | - </state> | ||
| 802 | - <connections> | ||
| 803 | - <action selector="loginBtnClickAction:" destination="tCx-JF-YJm" eventType="touchUpInside" id="KlD-u3-W3P"/> | ||
| 804 | - </connections> | ||
| 805 | - </button> | ||
| 806 | - </subviews> | ||
| 807 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 808 | - <gestureRecognizers/> | ||
| 809 | - <constraints> | ||
| 810 | - <constraint firstItem="R1Y-16-Th7" firstAttribute="top" secondItem="rSF-LZ-Bnl" secondAttribute="bottom" constant="100" id="2qf-Db-EkQ"/> | ||
| 811 | - <constraint firstItem="403-Gp-RaZ" firstAttribute="top" secondItem="o4V-sv-MMh" secondAttribute="bottom" id="3fC-Wg-KMc"/> | ||
| 812 | - <constraint firstItem="xNc-I3-UL6" firstAttribute="top" secondItem="o4V-sv-MMh" secondAttribute="bottom" id="4fl-gQ-WZe"/> | ||
| 813 | - <constraint firstAttribute="trailing" secondItem="rSF-LZ-Bnl" secondAttribute="trailing" id="9jK-fu-KKs"/> | ||
| 814 | - <constraint firstItem="rSF-LZ-Bnl" firstAttribute="leading" secondItem="i7O-Dj-x5S" secondAttribute="leading" id="OoN-NJ-ZEk"/> | ||
| 815 | - <constraint firstAttribute="trailing" secondItem="DJH-vy-tj1" secondAttribute="trailing" constant="15" id="ZYR-Wd-fZz"/> | ||
| 816 | - <constraint firstAttribute="trailing" secondItem="xNc-I3-UL6" secondAttribute="trailing" id="eo3-7l-3Ju"/> | ||
| 817 | - <constraint firstAttribute="trailing" secondItem="403-Gp-RaZ" secondAttribute="trailing" id="fOh-GD-xiW"/> | ||
| 818 | - <constraint firstItem="R1Y-16-Th7" firstAttribute="centerX" secondItem="i7O-Dj-x5S" secondAttribute="centerX" id="kcC-PE-Lwx"/> | ||
| 819 | - <constraint firstItem="DJH-vy-tj1" firstAttribute="top" secondItem="rSF-LZ-Bnl" secondAttribute="bottom" constant="15" id="lBh-92-VTX"/> | ||
| 820 | - <constraint firstItem="R1Y-16-Th7" firstAttribute="width" secondItem="i7O-Dj-x5S" secondAttribute="width" multiplier="2:3" id="pCE-Ek-rOS"/> | ||
| 821 | - <constraint firstItem="403-Gp-RaZ" firstAttribute="leading" secondItem="i7O-Dj-x5S" secondAttribute="leading" id="stz-Fg-4Iv"/> | ||
| 822 | - <constraint firstItem="rSF-LZ-Bnl" firstAttribute="top" secondItem="xNc-I3-UL6" secondAttribute="bottom" id="wPx-ce-6he"/> | ||
| 823 | - <constraint firstItem="xNc-I3-UL6" firstAttribute="leading" secondItem="i7O-Dj-x5S" secondAttribute="leading" id="x7N-Bs-2t1"/> | ||
| 824 | - </constraints> | ||
| 825 | - <connections> | ||
| 826 | - <outletCollection property="gestureRecognizers" destination="ZEf-mm-u9e" appends="YES" id="Gmm-Kb-eQb"/> | ||
| 827 | - </connections> | ||
| 828 | - </view> | ||
| 829 | - <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> | ||
| 830 | - <size key="freeformSize" width="375" height="667"/> | ||
| 831 | - <connections> | ||
| 832 | - <outlet property="confirmPasswordTextField" destination="4Ko-iM-kKY" id="Mwh-Ik-lD3"/> | ||
| 833 | - <outlet property="inputVerificationCode" destination="GHW-G9-uIT" id="W2X-QF-3qb"/> | ||
| 834 | - <outlet property="nickNameLabel" destination="gj6-hl-Apj" id="chL-uV-xBk"/> | ||
| 835 | - <outlet property="nikeNameTextFiled" destination="q7i-9n-2oP" id="DME-KX-Y6Y"/> | ||
| 836 | - <outlet property="passwordTextField" destination="i3R-4H-gzp" id="qTl-bd-eRR"/> | ||
| 837 | - <outlet property="phoneNumber" destination="nVJ-81-bXY" id="24J-2q-PGO"/> | ||
| 838 | - <outlet property="registerBtn" destination="R1Y-16-Th7" id="ccz-JJ-Zfd"/> | ||
| 839 | - <outlet property="sendPhotoImage" destination="1fC-6m-eDG" id="xoB-Hr-23D"/> | ||
| 840 | - <outlet property="sendVerificationCode" destination="hwv-0n-dsf" id="5zD-Jx-K5j"/> | ||
| 841 | - </connections> | ||
| 842 | - </viewController> | ||
| 843 | - <placeholder placeholderIdentifier="IBFirstResponder" id="Fzg-cR-i34" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 844 | - <tapGestureRecognizer id="hfJ-NM-sst"> | ||
| 845 | - <connections> | ||
| 846 | - <action selector="nickNameSetTapAction:" destination="tCx-JF-YJm" id="OeS-RA-5JC"/> | ||
| 847 | - </connections> | ||
| 848 | - </tapGestureRecognizer> | ||
| 849 | - <tapGestureRecognizer id="aUf-CI-Y7V"> | ||
| 850 | - <connections> | ||
| 851 | - <action selector="sendPhotoImageTapAction:" destination="tCx-JF-YJm" id="eAT-uh-KLY"/> | ||
| 852 | - </connections> | ||
| 853 | - </tapGestureRecognizer> | ||
| 854 | - <tapGestureRecognizer id="ZEf-mm-u9e"> | ||
| 855 | - <connections> | ||
| 856 | - <action selector="touchAction:" destination="tCx-JF-YJm" id="1ww-Nt-fgk"/> | ||
| 857 | - </connections> | ||
| 858 | - </tapGestureRecognizer> | ||
| 859 | - </objects> | ||
| 860 | - <point key="canvasLocation" x="-2161" y="1534"/> | ||
| 861 | - </scene> | ||
| 862 | - <!--直播列表--> | ||
| 863 | - <scene sceneID="XKW-WN-QdT"> | ||
| 864 | - <objects> | ||
| 865 | - <viewController storyboardIdentifier="LiveRoomsViewController" id="TRk-zG-DtG" customClass="LiveRoomsViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 866 | - <layoutGuides> | ||
| 867 | - <viewControllerLayoutGuide type="top" id="F8t-oe-SiB"/> | ||
| 868 | - <viewControllerLayoutGuide type="bottom" id="uxW-te-E5M"/> | ||
| 869 | - </layoutGuides> | ||
| 870 | - <view key="view" contentMode="scaleToFill" id="872-q1-Iaa"> | ||
| 871 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 872 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 873 | - <subviews> | ||
| 874 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zXz-qM-Acq"> | ||
| 875 | - <rect key="frame" x="0.0" y="64" width="375" height="170"/> | ||
| 876 | - <subviews> | ||
| 877 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hv8-Qa-aBF"> | ||
| 878 | - <rect key="frame" x="187" y="0.0" width="1" height="170"/> | ||
| 879 | - <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 880 | - <constraints> | ||
| 881 | - <constraint firstAttribute="width" constant="1" id="dza-AE-Lso"/> | ||
| 882 | - </constraints> | ||
| 883 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 884 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 885 | - <nil key="highlightedColor"/> | ||
| 886 | - </label> | ||
| 887 | - <imageView contentMode="redraw" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="defphoto.png" translatesAutoresizingMaskIntoConstraints="NO" id="0Gk-gW-ew3"> | ||
| 888 | - <rect key="frame" x="147.5" y="8" width="80" height="80"/> | ||
| 889 | - <gestureRecognizers/> | ||
| 890 | - <constraints> | ||
| 891 | - <constraint firstAttribute="width" constant="80" id="lWg-Fx-hsx"/> | ||
| 892 | - <constraint firstAttribute="height" constant="80" id="wOV-ke-Q1B"/> | ||
| 893 | - </constraints> | ||
| 894 | - <userDefinedRuntimeAttributes> | ||
| 895 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 896 | - <integer key="value" value="40"/> | ||
| 897 | - </userDefinedRuntimeAttribute> | ||
| 898 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 899 | - </userDefinedRuntimeAttributes> | ||
| 900 | - </imageView> | ||
| 901 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="学事通" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3TP-D6-7hD"> | ||
| 902 | - <rect key="frame" x="0.0" y="100" width="375" height="21"/> | ||
| 903 | - <constraints> | ||
| 904 | - <constraint firstAttribute="height" constant="21" id="30Q-8E-jJ7"/> | ||
| 905 | - </constraints> | ||
| 906 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 907 | - <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 908 | - <nil key="highlightedColor"/> | ||
| 909 | - </label> | ||
| 910 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CtS-7Q-u1u"> | ||
| 911 | - <rect key="frame" x="0.0" y="96" width="375" height="25"/> | ||
| 912 | - <constraints> | ||
| 913 | - <constraint firstAttribute="height" constant="25" id="wYi-pE-S5H"/> | ||
| 914 | - </constraints> | ||
| 915 | - <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="15"/> | ||
| 916 | - <inset key="titleEdgeInsets" minX="-120" minY="0.0" maxX="0.0" maxY="0.0"/> | ||
| 917 | - <inset key="imageEdgeInsets" minX="95" minY="0.0" maxX="0.0" maxY="0.0"/> | ||
| 918 | - <state key="normal"> | ||
| 919 | - <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 920 | - </state> | ||
| 921 | - </button> | ||
| 922 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="账号:18625774807" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZEw-g1-Yma"> | ||
| 923 | - <rect key="frame" x="0.0" y="129" width="375" height="21"/> | ||
| 924 | - <constraints> | ||
| 925 | - <constraint firstAttribute="height" constant="21" id="pzG-gH-nk5"/> | ||
| 926 | - </constraints> | ||
| 927 | - <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 928 | - <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 929 | - <nil key="highlightedColor"/> | ||
| 930 | - </label> | ||
| 931 | - <imageView hidden="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="编辑.png" translatesAutoresizingMaskIntoConstraints="NO" id="Prt-1z-bT6"> | ||
| 932 | - <rect key="frame" x="214" y="100" width="20" height="20"/> | ||
| 933 | - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
| 934 | - </imageView> | ||
| 935 | - </subviews> | ||
| 936 | - <color key="backgroundColor" red="0.1058823529" green="0.82745098039999998" blue="0.74509803919999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 937 | - <constraints> | ||
| 938 | - <constraint firstItem="CtS-7Q-u1u" firstAttribute="top" secondItem="0Gk-gW-ew3" secondAttribute="bottom" constant="8" id="4J5-K4-e0H"/> | ||
| 939 | - <constraint firstItem="0Gk-gW-ew3" firstAttribute="centerX" secondItem="zXz-qM-Acq" secondAttribute="centerX" id="52h-CK-9Q4"/> | ||
| 940 | - <constraint firstItem="hv8-Qa-aBF" firstAttribute="top" secondItem="zXz-qM-Acq" secondAttribute="top" id="AGC-wU-6In"/> | ||
| 941 | - <constraint firstAttribute="height" constant="170" id="BQo-Kp-CAZ"/> | ||
| 942 | - <constraint firstItem="ZEw-g1-Yma" firstAttribute="leading" secondItem="zXz-qM-Acq" secondAttribute="leading" id="Ckg-Dh-49u"/> | ||
| 943 | - <constraint firstItem="CtS-7Q-u1u" firstAttribute="leading" secondItem="zXz-qM-Acq" secondAttribute="leading" id="G2O-76-hLf"/> | ||
| 944 | - <constraint firstItem="hv8-Qa-aBF" firstAttribute="centerY" secondItem="zXz-qM-Acq" secondAttribute="centerY" id="KHQ-Nn-pOq"/> | ||
| 945 | - <constraint firstAttribute="bottom" secondItem="hv8-Qa-aBF" secondAttribute="bottom" id="RFM-s7-4TJ"/> | ||
| 946 | - <constraint firstAttribute="trailing" secondItem="CtS-7Q-u1u" secondAttribute="trailing" id="RHy-V2-7Zr"/> | ||
| 947 | - <constraint firstItem="ZEw-g1-Yma" firstAttribute="top" secondItem="CtS-7Q-u1u" secondAttribute="bottom" constant="8" id="RIr-e5-c0g"/> | ||
| 948 | - <constraint firstItem="3TP-D6-7hD" firstAttribute="leading" secondItem="zXz-qM-Acq" secondAttribute="leading" id="aR3-jf-TMa"/> | ||
| 949 | - <constraint firstAttribute="trailing" secondItem="ZEw-g1-Yma" secondAttribute="trailing" id="bJ0-BI-Qv3"/> | ||
| 950 | - <constraint firstItem="3TP-D6-7hD" firstAttribute="top" secondItem="0Gk-gW-ew3" secondAttribute="bottom" constant="12" id="fTq-1T-IoT"/> | ||
| 951 | - <constraint firstAttribute="trailing" secondItem="3TP-D6-7hD" secondAttribute="trailing" id="mzr-Lx-WwS"/> | ||
| 952 | - <constraint firstItem="CtS-7Q-u1u" firstAttribute="centerX" secondItem="zXz-qM-Acq" secondAttribute="centerX" id="qqe-eT-yC5"/> | ||
| 953 | - <constraint firstItem="hv8-Qa-aBF" firstAttribute="centerX" secondItem="zXz-qM-Acq" secondAttribute="centerX" id="vZf-z2-TYe"/> | ||
| 954 | - <constraint firstItem="0Gk-gW-ew3" firstAttribute="top" secondItem="zXz-qM-Acq" secondAttribute="top" constant="8" id="zMS-XP-xLS"/> | ||
| 955 | - <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="170" id="zf1-5x-wDm"/> | ||
| 956 | - </constraints> | ||
| 957 | - </view> | ||
| 958 | - <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" bounces="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="MSW-uR-PzG"> | ||
| 959 | - <rect key="frame" x="0.0" y="234" width="375" height="50"/> | ||
| 960 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 961 | - <constraints> | ||
| 962 | - <constraint firstAttribute="height" constant="50" id="6Lg-sB-5MW"/> | ||
| 963 | - </constraints> | ||
| 964 | - <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="RUP-s6-4QP"> | ||
| 965 | - <size key="itemSize" width="50" height="50"/> | ||
| 966 | - <size key="headerReferenceSize" width="0.0" height="0.0"/> | ||
| 967 | - <size key="footerReferenceSize" width="0.0" height="0.0"/> | ||
| 968 | - <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> | ||
| 969 | - </collectionViewFlowLayout> | ||
| 970 | - <cells> | ||
| 971 | - <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="selectCell" id="ByM-Yz-laB" customClass="selectTypeCell" customModule="YouerLiveVideo" customModuleProvider="target"> | ||
| 972 | - <rect key="frame" x="0.0" y="0.0" width="50" height="50"/> | ||
| 973 | - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
| 974 | - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> | ||
| 975 | - <rect key="frame" x="0.0" y="0.0" width="50" height="50"/> | ||
| 976 | - <autoresizingMask key="autoresizingMask"/> | ||
| 977 | - <subviews> | ||
| 978 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="全部" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cIR-al-lVF"> | ||
| 979 | - <rect key="frame" x="0.0" y="0.0" width="50" height="50"/> | ||
| 980 | - <fontDescription key="fontDescription" type="system" pointSize="12"/> | ||
| 981 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 982 | - <nil key="highlightedColor"/> | ||
| 983 | - </label> | ||
| 984 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Uda-An-pcw"> | ||
| 985 | - <rect key="frame" x="49" y="0.0" width="1" height="50"/> | ||
| 986 | - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 987 | - <constraints> | ||
| 988 | - <constraint firstAttribute="width" constant="1" id="nDj-Xd-cpM"/> | ||
| 989 | - </constraints> | ||
| 990 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 991 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 992 | - <nil key="highlightedColor"/> | ||
| 993 | - </label> | ||
| 994 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0hQ-IS-VH8"> | ||
| 995 | - <rect key="frame" x="0.0" y="49" width="50" height="1"/> | ||
| 996 | - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 997 | - <constraints> | ||
| 998 | - <constraint firstAttribute="height" constant="1" id="YZN-9q-eax"/> | ||
| 999 | - </constraints> | ||
| 1000 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1001 | - <nil key="textColor"/> | ||
| 1002 | - <nil key="highlightedColor"/> | ||
| 1003 | - </label> | ||
| 1004 | - </subviews> | ||
| 1005 | - </view> | ||
| 1006 | - <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1007 | - <constraints> | ||
| 1008 | - <constraint firstItem="Uda-An-pcw" firstAttribute="top" secondItem="ByM-Yz-laB" secondAttribute="top" id="2PS-Ij-cah"/> | ||
| 1009 | - <constraint firstAttribute="bottom" secondItem="cIR-al-lVF" secondAttribute="bottom" id="3Ze-wI-7u6"/> | ||
| 1010 | - <constraint firstItem="cIR-al-lVF" firstAttribute="leading" secondItem="ByM-Yz-laB" secondAttribute="leading" id="4Pw-3q-ycf"/> | ||
| 1011 | - <constraint firstAttribute="trailing" secondItem="Uda-An-pcw" secondAttribute="trailing" id="56p-FD-l9M"/> | ||
| 1012 | - <constraint firstAttribute="bottom" secondItem="0hQ-IS-VH8" secondAttribute="bottom" id="9lr-L2-yEQ"/> | ||
| 1013 | - <constraint firstItem="0hQ-IS-VH8" firstAttribute="leading" secondItem="ByM-Yz-laB" secondAttribute="leading" id="Bj0-Ra-FS3"/> | ||
| 1014 | - <constraint firstAttribute="trailing" secondItem="0hQ-IS-VH8" secondAttribute="trailing" id="E6o-Ec-dYB"/> | ||
| 1015 | - <constraint firstItem="cIR-al-lVF" firstAttribute="top" secondItem="ByM-Yz-laB" secondAttribute="top" id="WJW-7b-hNu"/> | ||
| 1016 | - <constraint firstAttribute="trailing" secondItem="cIR-al-lVF" secondAttribute="trailing" id="ijN-E7-xI0"/> | ||
| 1017 | - <constraint firstAttribute="bottom" secondItem="Uda-An-pcw" secondAttribute="bottom" id="zLp-XV-NSL"/> | ||
| 1018 | - </constraints> | ||
| 1019 | - <connections> | ||
| 1020 | - <outlet property="lineLabel" destination="Uda-An-pcw" id="i0M-0I-yGC"/> | ||
| 1021 | - <outlet property="titleLabel" destination="cIR-al-lVF" id="srt-YU-2L0"/> | ||
| 1022 | - </connections> | ||
| 1023 | - </collectionViewCell> | ||
| 1024 | - </cells> | ||
| 1025 | - <connections> | ||
| 1026 | - <outlet property="dataSource" destination="TRk-zG-DtG" id="zGC-ba-Oek"/> | ||
| 1027 | - <outlet property="delegate" destination="TRk-zG-DtG" id="F9X-CU-Z6M"/> | ||
| 1028 | - </connections> | ||
| 1029 | - </collectionView> | ||
| 1030 | - <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" bounces="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="nMl-1w-hhg"> | ||
| 1031 | - <rect key="frame" x="0.0" y="284" width="375" height="383"/> | ||
| 1032 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1033 | - <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="1" minimumInteritemSpacing="1" id="6WK-c9-xsa"> | ||
| 1034 | - <size key="itemSize" width="171" height="276"/> | ||
| 1035 | - <size key="headerReferenceSize" width="0.0" height="0.0"/> | ||
| 1036 | - <size key="footerReferenceSize" width="0.0" height="0.0"/> | ||
| 1037 | - <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> | ||
| 1038 | - </collectionViewFlowLayout> | ||
| 1039 | - <cells> | ||
| 1040 | - <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="roomListCell" id="znO-HR-pdB" customClass="roomLiveDetailCell" customModule="YouerLiveVideo" customModuleProvider="target"> | ||
| 1041 | - <rect key="frame" x="0.0" y="0.0" width="171" height="276"/> | ||
| 1042 | - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
| 1043 | - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> | ||
| 1044 | - <rect key="frame" x="0.0" y="0.0" width="171" height="276"/> | ||
| 1045 | - <autoresizingMask key="autoresizingMask"/> | ||
| 1046 | - <subviews> | ||
| 1047 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1eI-eh-N3I"> | ||
| 1048 | - <rect key="frame" x="0.0" y="0.0" width="171" height="246"/> | ||
| 1049 | - <subviews> | ||
| 1050 | - <imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="psb.jpg" translatesAutoresizingMaskIntoConstraints="NO" id="XcQ-PZ-5vi"> | ||
| 1051 | - <rect key="frame" x="0.0" y="0.0" width="171" height="246"/> | ||
| 1052 | - </imageView> | ||
| 1053 | - <label opaque="NO" userInteractionEnabled="NO" alpha="0.80000001192092896" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="顺治直播" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5bV-Q9-QBq"> | ||
| 1054 | - <rect key="frame" x="0.0" y="226" width="171" height="20"/> | ||
| 1055 | - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1056 | - <constraints> | ||
| 1057 | - <constraint firstAttribute="height" constant="20" id="v5R-gm-4ZU"/> | ||
| 1058 | - </constraints> | ||
| 1059 | - <fontDescription key="fontDescription" type="system" pointSize="14"/> | ||
| 1060 | - <nil key="highlightedColor"/> | ||
| 1061 | - </label> | ||
| 1062 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="未通过" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MwN-q1-p8I"> | ||
| 1063 | - <rect key="frame" x="8" y="8" width="45" height="20"/> | ||
| 1064 | - <color key="backgroundColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1065 | - <constraints> | ||
| 1066 | - <constraint firstAttribute="height" constant="20" id="ZNb-9o-7dy"/> | ||
| 1067 | - <constraint firstAttribute="width" constant="45" id="zE3-2c-Lnq"/> | ||
| 1068 | - </constraints> | ||
| 1069 | - <fontDescription key="fontDescription" type="system" pointSize="12"/> | ||
| 1070 | - <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1071 | - <nil key="highlightedColor"/> | ||
| 1072 | - <userDefinedRuntimeAttributes> | ||
| 1073 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 1074 | - <integer key="value" value="10"/> | ||
| 1075 | - </userDefinedRuntimeAttribute> | ||
| 1076 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 1077 | - </userDefinedRuntimeAttributes> | ||
| 1078 | - </label> | ||
| 1079 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="直播历史1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3kG-Uk-Ebo"> | ||
| 1080 | - <rect key="frame" x="108" y="8" width="55" height="20"/> | ||
| 1081 | - <color key="backgroundColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1082 | - <constraints> | ||
| 1083 | - <constraint firstAttribute="height" constant="20" id="7gR-Ze-JOx"/> | ||
| 1084 | - </constraints> | ||
| 1085 | - <fontDescription key="fontDescription" type="system" pointSize="12"/> | ||
| 1086 | - <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1087 | - <nil key="highlightedColor"/> | ||
| 1088 | - <userDefinedRuntimeAttributes> | ||
| 1089 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 1090 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 1091 | - <integer key="value" value="10"/> | ||
| 1092 | - </userDefinedRuntimeAttribute> | ||
| 1093 | - </userDefinedRuntimeAttributes> | ||
| 1094 | - </label> | ||
| 1095 | - </subviews> | ||
| 1096 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1097 | - <constraints> | ||
| 1098 | - <constraint firstAttribute="trailing" secondItem="5bV-Q9-QBq" secondAttribute="trailing" id="B2F-4V-Wzi"/> | ||
| 1099 | - <constraint firstAttribute="trailing" secondItem="3kG-Uk-Ebo" secondAttribute="trailing" constant="8" id="EMb-1i-r9c"/> | ||
| 1100 | - <constraint firstAttribute="trailing" secondItem="XcQ-PZ-5vi" secondAttribute="trailing" id="Iro-Ie-Mzf"/> | ||
| 1101 | - <constraint firstItem="MwN-q1-p8I" firstAttribute="top" secondItem="1eI-eh-N3I" secondAttribute="top" constant="8" id="Njs-r0-U3F"/> | ||
| 1102 | - <constraint firstItem="MwN-q1-p8I" firstAttribute="leading" secondItem="1eI-eh-N3I" secondAttribute="leading" constant="8" id="XbX-F5-TSb"/> | ||
| 1103 | - <constraint firstAttribute="bottom" secondItem="XcQ-PZ-5vi" secondAttribute="bottom" id="bEn-qE-mTE"/> | ||
| 1104 | - <constraint firstItem="XcQ-PZ-5vi" firstAttribute="leading" secondItem="1eI-eh-N3I" secondAttribute="leading" id="kSr-BD-Q7c"/> | ||
| 1105 | - <constraint firstAttribute="bottom" secondItem="5bV-Q9-QBq" secondAttribute="bottom" id="pTo-Um-VFC"/> | ||
| 1106 | - <constraint firstItem="5bV-Q9-QBq" firstAttribute="leading" secondItem="1eI-eh-N3I" secondAttribute="leading" id="qP1-Fu-lHn"/> | ||
| 1107 | - <constraint firstItem="XcQ-PZ-5vi" firstAttribute="top" secondItem="1eI-eh-N3I" secondAttribute="top" id="v3T-sO-sWi"/> | ||
| 1108 | - <constraint firstItem="3kG-Uk-Ebo" firstAttribute="top" secondItem="1eI-eh-N3I" secondAttribute="top" constant="8" id="xhC-S7-ph6"/> | ||
| 1109 | - </constraints> | ||
| 1110 | - </view> | ||
| 1111 | - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zf5-sW-pq6"> | ||
| 1112 | - <rect key="frame" x="0.0" y="246" width="171" height="30"/> | ||
| 1113 | - <subviews> | ||
| 1114 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="100000" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DN7-Bl-0sn"> | ||
| 1115 | - <rect key="frame" x="31" y="4.5" width="30.5" height="21"/> | ||
| 1116 | - <constraints> | ||
| 1117 | - <constraint firstAttribute="height" constant="21" id="dPs-Vr-J5F"/> | ||
| 1118 | - </constraints> | ||
| 1119 | - <fontDescription key="fontDescription" type="system" pointSize="8"/> | ||
| 1120 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1121 | - <nil key="highlightedColor"/> | ||
| 1122 | - </label> | ||
| 1123 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2016-11-10 10:58:50" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FLt-yg-yap"> | ||
| 1124 | - <rect key="frame" x="80.5" y="10" width="82.5" height="10"/> | ||
| 1125 | - <fontDescription key="fontDescription" type="system" pointSize="8"/> | ||
| 1126 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1127 | - <nil key="highlightedColor"/> | ||
| 1128 | - </label> | ||
| 1129 | - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="观看.png" translatesAutoresizingMaskIntoConstraints="NO" id="zAE-Rj-l2k"> | ||
| 1130 | - <rect key="frame" x="8" y="7.5" width="20" height="15"/> | ||
| 1131 | - <constraints> | ||
| 1132 | - <constraint firstAttribute="width" constant="20" id="OeC-BX-gj2"/> | ||
| 1133 | - <constraint firstAttribute="height" constant="15" id="sNv-Mf-wqS"/> | ||
| 1134 | - </constraints> | ||
| 1135 | - </imageView> | ||
| 1136 | - </subviews> | ||
| 1137 | - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 1138 | - <constraints> | ||
| 1139 | - <constraint firstItem="zAE-Rj-l2k" firstAttribute="leading" secondItem="zf5-sW-pq6" secondAttribute="leading" constant="8" id="4I4-Ad-LFC"/> | ||
| 1140 | - <constraint firstItem="zAE-Rj-l2k" firstAttribute="centerY" secondItem="zf5-sW-pq6" secondAttribute="centerY" id="4oe-14-f8F"/> | ||
| 1141 | - <constraint firstItem="FLt-yg-yap" firstAttribute="centerY" secondItem="zf5-sW-pq6" secondAttribute="centerY" id="8b4-g2-wg6"/> | ||
| 1142 | - <constraint firstAttribute="trailing" secondItem="FLt-yg-yap" secondAttribute="trailing" constant="8" id="9lh-yF-apc"/> | ||
| 1143 | - <constraint firstAttribute="height" constant="30" id="MbG-VU-7bB"/> | ||
| 1144 | - <constraint firstItem="DN7-Bl-0sn" firstAttribute="centerY" secondItem="zf5-sW-pq6" secondAttribute="centerY" id="nMy-KR-EGQ"/> | ||
| 1145 | - <constraint firstItem="DN7-Bl-0sn" firstAttribute="leading" secondItem="zAE-Rj-l2k" secondAttribute="trailing" constant="3" id="wZD-yd-641"/> | ||
| 1146 | - </constraints> | ||
| 1147 | - </view> | ||
| 1148 | - </subviews> | ||
| 1149 | - </view> | ||
| 1150 | - <gestureRecognizers/> | ||
| 1151 | - <constraints> | ||
| 1152 | - <constraint firstItem="zf5-sW-pq6" firstAttribute="leading" secondItem="znO-HR-pdB" secondAttribute="leading" id="61a-fa-c9J"/> | ||
| 1153 | - <constraint firstItem="zf5-sW-pq6" firstAttribute="top" secondItem="1eI-eh-N3I" secondAttribute="bottom" id="EIo-Vb-H9W"/> | ||
| 1154 | - <constraint firstItem="1eI-eh-N3I" firstAttribute="top" secondItem="znO-HR-pdB" secondAttribute="top" id="Ywu-15-5fc"/> | ||
| 1155 | - <constraint firstAttribute="trailing" secondItem="1eI-eh-N3I" secondAttribute="trailing" id="iHg-3V-D1l"/> | ||
| 1156 | - <constraint firstAttribute="bottom" secondItem="zf5-sW-pq6" secondAttribute="bottom" id="nwS-Ps-NEb"/> | ||
| 1157 | - <constraint firstAttribute="trailing" secondItem="zf5-sW-pq6" secondAttribute="trailing" id="peQ-5W-lFV"/> | ||
| 1158 | - <constraint firstItem="1eI-eh-N3I" firstAttribute="leading" secondItem="znO-HR-pdB" secondAttribute="leading" id="s2Q-SV-Wa1"/> | ||
| 1159 | - </constraints> | ||
| 1160 | - <connections> | ||
| 1161 | - <outlet property="backgroundImage" destination="XcQ-PZ-5vi" id="PZn-O3-2wr"/> | ||
| 1162 | - <outlet property="nameLabel" destination="5bV-Q9-QBq" id="6cI-L0-KNI"/> | ||
| 1163 | - <outlet property="pageLabel" destination="3kG-Uk-Ebo" id="TAP-lv-Ehz"/> | ||
| 1164 | - <outlet property="passLabel" destination="MwN-q1-p8I" id="5QH-TX-YNW"/> | ||
| 1165 | - <outlet property="personNumberLabel" destination="DN7-Bl-0sn" id="C46-Ic-kp4"/> | ||
| 1166 | - <outlet property="timeLabel" destination="FLt-yg-yap" id="73q-DQ-xDb"/> | ||
| 1167 | - </connections> | ||
| 1168 | - </collectionViewCell> | ||
| 1169 | - </cells> | ||
| 1170 | - <connections> | ||
| 1171 | - <outlet property="dataSource" destination="TRk-zG-DtG" id="lqH-kS-ppP"/> | ||
| 1172 | - <outlet property="delegate" destination="TRk-zG-DtG" id="biA-Bk-fA8"/> | ||
| 1173 | - </connections> | ||
| 1174 | - </collectionView> | ||
| 1175 | - </subviews> | ||
| 1176 | - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1177 | - <gestureRecognizers/> | ||
| 1178 | - <constraints> | ||
| 1179 | - <constraint firstItem="zXz-qM-Acq" firstAttribute="leading" secondItem="872-q1-Iaa" secondAttribute="leading" id="A06-pz-cNK"/> | ||
| 1180 | - <constraint firstItem="nMl-1w-hhg" firstAttribute="top" secondItem="MSW-uR-PzG" secondAttribute="bottom" id="E7P-YI-DOl"/> | ||
| 1181 | - <constraint firstItem="zXz-qM-Acq" firstAttribute="top" secondItem="F8t-oe-SiB" secondAttribute="bottom" id="HCW-rj-PId"/> | ||
| 1182 | - <constraint firstAttribute="trailing" secondItem="zXz-qM-Acq" secondAttribute="trailing" id="e2e-cq-Hap"/> | ||
| 1183 | - <constraint firstItem="MSW-uR-PzG" firstAttribute="top" secondItem="zXz-qM-Acq" secondAttribute="bottom" id="fj7-Hc-YG2"/> | ||
| 1184 | - <constraint firstItem="uxW-te-E5M" firstAttribute="top" secondItem="nMl-1w-hhg" secondAttribute="bottom" id="fq8-QB-60Q"/> | ||
| 1185 | - <constraint firstItem="MSW-uR-PzG" firstAttribute="leading" secondItem="872-q1-Iaa" secondAttribute="leading" id="hMN-Xe-tdh"/> | ||
| 1186 | - <constraint firstItem="nMl-1w-hhg" firstAttribute="leading" secondItem="872-q1-Iaa" secondAttribute="leading" id="jhB-ax-iCp"/> | ||
| 1187 | - <constraint firstAttribute="trailing" secondItem="MSW-uR-PzG" secondAttribute="trailing" id="udE-bT-3AA"/> | ||
| 1188 | - <constraint firstAttribute="trailing" secondItem="nMl-1w-hhg" secondAttribute="trailing" id="yQc-58-PeL"/> | ||
| 1189 | - </constraints> | ||
| 1190 | - <connections> | ||
| 1191 | - <outletCollection property="gestureRecognizers" destination="XgT-x8-vAD" appends="YES" id="EXq-HP-LGR"/> | ||
| 1192 | - </connections> | ||
| 1193 | - </view> | ||
| 1194 | - <navigationItem key="navigationItem" title="直播列表" id="khA-xa-evf"/> | ||
| 1195 | - <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/> | ||
| 1196 | - <connections> | ||
| 1197 | - <outlet property="iconImage" destination="0Gk-gW-ew3" id="29g-By-ogu"/> | ||
| 1198 | - <outlet property="nameLabel" destination="3TP-D6-7hD" id="tmI-yP-QI4"/> | ||
| 1199 | - <outlet property="numberLabel" destination="ZEw-g1-Yma" id="pgU-Yw-Mrd"/> | ||
| 1200 | - <outlet property="roomListCollectionView" destination="nMl-1w-hhg" id="otY-oI-2JI"/> | ||
| 1201 | - <outlet property="titleCollectionView" destination="MSW-uR-PzG" id="M9L-C5-VB1"/> | ||
| 1202 | - <outlet property="titleViewHeight" destination="6Lg-sB-5MW" id="6m2-b2-Ys4"/> | ||
| 1203 | - </connections> | ||
| 1204 | - </viewController> | ||
| 1205 | - <placeholder placeholderIdentifier="IBFirstResponder" id="2zw-zY-MHj" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 1206 | - <pongPressGestureRecognizer allowableMovement="10" minimumPressDuration="0.5" id="XgT-x8-vAD"> | ||
| 1207 | - <connections> | ||
| 1208 | - <action selector="showAlertMenu:" destination="TRk-zG-DtG" id="p9e-Pt-bNd"/> | ||
| 1209 | - </connections> | ||
| 1210 | - </pongPressGestureRecognizer> | ||
| 1211 | - </objects> | ||
| 1212 | - <point key="canvasLocation" x="554" y="1534"/> | ||
| 1213 | - </scene> | ||
| 1214 | - <!--直播列表--> | ||
| 1215 | - <scene sceneID="wpU-Ou-gWp"> | ||
| 1216 | - <objects> | ||
| 1217 | - <viewController storyboardIdentifier="LiveListViewController" id="lqb-XV-ZVz" customClass="LiveListViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 1218 | - <layoutGuides> | ||
| 1219 | - <viewControllerLayoutGuide type="top" id="brV-vZ-9W3"/> | ||
| 1220 | - <viewControllerLayoutGuide type="bottom" id="cR5-Gc-hQY"/> | ||
| 1221 | - </layoutGuides> | ||
| 1222 | - <view key="view" contentMode="scaleToFill" id="Nko-iq-QeO"> | ||
| 1223 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 1224 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 1225 | - <subviews> | ||
| 1226 | - <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="isf-zi-cli"> | ||
| 1227 | - <rect key="frame" x="0.0" y="64" width="375" height="170"/> | ||
| 1228 | - <subviews> | ||
| 1229 | - <imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="default" translatesAutoresizingMaskIntoConstraints="NO" id="ngj-9g-5hs"> | ||
| 1230 | - <rect key="frame" x="0.0" y="0.0" width="375" height="170"/> | ||
| 1231 | - </imageView> | ||
| 1232 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HQy-b9-ePQ"> | ||
| 1233 | - <rect key="frame" x="187" y="0.0" width="1" height="170"/> | ||
| 1234 | - <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1235 | - <constraints> | ||
| 1236 | - <constraint firstAttribute="width" constant="1" id="hp0-BE-R8t"/> | ||
| 1237 | - </constraints> | ||
| 1238 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1239 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1240 | - <nil key="highlightedColor"/> | ||
| 1241 | - </label> | ||
| 1242 | - <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nhf-PK-1ec"> | ||
| 1243 | - <rect key="frame" x="0.0" y="130" width="375" height="21"/> | ||
| 1244 | - <subviews> | ||
| 1245 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="昵称:学事通" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gd5-Oe-oPN"> | ||
| 1246 | - <rect key="frame" x="0.0" y="0.0" width="179" height="21"/> | ||
| 1247 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1248 | - <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1249 | - <nil key="highlightedColor"/> | ||
| 1250 | - </label> | ||
| 1251 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="账号:18625774807" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8tX-Ga-zhU"> | ||
| 1252 | - <rect key="frame" x="196" y="0.0" width="179" height="21"/> | ||
| 1253 | - <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1254 | - <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1255 | - <nil key="highlightedColor"/> | ||
| 1256 | - </label> | ||
| 1257 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qyb-mf-TZD"> | ||
| 1258 | - <rect key="frame" x="187" y="0.0" width="1" height="21"/> | ||
| 1259 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1260 | - <constraints> | ||
| 1261 | - <constraint firstAttribute="width" constant="1" id="L9M-ks-l68"/> | ||
| 1262 | - <constraint firstAttribute="height" constant="21" id="e2e-8L-6ck"/> | ||
| 1263 | - </constraints> | ||
| 1264 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1265 | - <nil key="textColor"/> | ||
| 1266 | - <nil key="highlightedColor"/> | ||
| 1267 | - </label> | ||
| 1268 | - </subviews> | ||
| 1269 | - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> | ||
| 1270 | - <constraints> | ||
| 1271 | - <constraint firstItem="8tX-Ga-zhU" firstAttribute="leading" secondItem="qyb-mf-TZD" secondAttribute="trailing" constant="8" id="4zg-kG-yk5"/> | ||
| 1272 | - <constraint firstAttribute="height" constant="21" id="7ar-AL-Ral"/> | ||
| 1273 | - <constraint firstItem="gd5-Oe-oPN" firstAttribute="top" secondItem="nhf-PK-1ec" secondAttribute="top" id="957-1D-eE0"/> | ||
| 1274 | - <constraint firstAttribute="trailing" secondItem="8tX-Ga-zhU" secondAttribute="trailing" id="BJQ-l9-S7J"/> | ||
| 1275 | - <constraint firstItem="gd5-Oe-oPN" firstAttribute="leading" secondItem="nhf-PK-1ec" secondAttribute="leading" id="WNI-1e-htv"/> | ||
| 1276 | - <constraint firstItem="qyb-mf-TZD" firstAttribute="leading" secondItem="gd5-Oe-oPN" secondAttribute="trailing" constant="8" id="bUf-Ti-6Ic"/> | ||
| 1277 | - <constraint firstItem="qyb-mf-TZD" firstAttribute="centerY" secondItem="nhf-PK-1ec" secondAttribute="centerY" id="huQ-6k-n2Z"/> | ||
| 1278 | - <constraint firstItem="8tX-Ga-zhU" firstAttribute="top" secondItem="nhf-PK-1ec" secondAttribute="top" id="iRE-hF-Zb2"/> | ||
| 1279 | - <constraint firstAttribute="bottom" secondItem="8tX-Ga-zhU" secondAttribute="bottom" id="nGu-jK-iMz"/> | ||
| 1280 | - <constraint firstItem="qyb-mf-TZD" firstAttribute="centerX" secondItem="nhf-PK-1ec" secondAttribute="centerX" id="nzA-SV-wGC"/> | ||
| 1281 | - <constraint firstAttribute="bottom" secondItem="gd5-Oe-oPN" secondAttribute="bottom" id="thv-04-jSX"/> | ||
| 1282 | - </constraints> | ||
| 1283 | - </view> | ||
| 1284 | - <imageView contentMode="redraw" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="defphoto.png" translatesAutoresizingMaskIntoConstraints="NO" id="9sO-7j-ngT"> | ||
| 1285 | - <rect key="frame" x="147.5" y="30" width="80" height="80"/> | ||
| 1286 | - <gestureRecognizers/> | ||
| 1287 | - <constraints> | ||
| 1288 | - <constraint firstAttribute="width" constant="80" id="aaT-WV-MjZ"/> | ||
| 1289 | - <constraint firstAttribute="height" constant="80" id="bHl-VP-qSd"/> | ||
| 1290 | - </constraints> | ||
| 1291 | - <userDefinedRuntimeAttributes> | ||
| 1292 | - <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 1293 | - <integer key="value" value="40"/> | ||
| 1294 | - </userDefinedRuntimeAttribute> | ||
| 1295 | - <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 1296 | - </userDefinedRuntimeAttributes> | ||
| 1297 | - </imageView> | ||
| 1298 | - </subviews> | ||
| 1299 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1300 | - <constraints> | ||
| 1301 | - <constraint firstItem="9sO-7j-ngT" firstAttribute="top" secondItem="isf-zi-cli" secondAttribute="top" constant="30" id="BJf-HM-jZp"/> | ||
| 1302 | - <constraint firstAttribute="trailing" secondItem="nhf-PK-1ec" secondAttribute="trailing" id="Hhd-aT-EKJ"/> | ||
| 1303 | - <constraint firstAttribute="trailing" secondItem="ngj-9g-5hs" secondAttribute="trailing" id="Lqf-5R-Vof"/> | ||
| 1304 | - <constraint firstAttribute="bottom" secondItem="HQy-b9-ePQ" secondAttribute="bottom" id="OOY-Xj-O3f"/> | ||
| 1305 | - <constraint firstItem="ngj-9g-5hs" firstAttribute="leading" secondItem="isf-zi-cli" secondAttribute="leading" id="QOW-6w-e4w"/> | ||
| 1306 | - <constraint firstItem="nhf-PK-1ec" firstAttribute="leading" secondItem="isf-zi-cli" secondAttribute="leading" id="S5N-UG-TPg"/> | ||
| 1307 | - <constraint firstItem="nhf-PK-1ec" firstAttribute="top" secondItem="9sO-7j-ngT" secondAttribute="bottom" constant="20" id="Sd1-f8-8MO"/> | ||
| 1308 | - <constraint firstAttribute="bottom" secondItem="ngj-9g-5hs" secondAttribute="bottom" id="Z4Q-vc-VSM"/> | ||
| 1309 | - <constraint firstItem="ngj-9g-5hs" firstAttribute="top" secondItem="isf-zi-cli" secondAttribute="top" id="doS-z4-SAG"/> | ||
| 1310 | - <constraint firstItem="9sO-7j-ngT" firstAttribute="centerX" secondItem="isf-zi-cli" secondAttribute="centerX" id="eO5-ic-tZN"/> | ||
| 1311 | - <constraint firstAttribute="height" constant="170" id="oir-ns-qxW"/> | ||
| 1312 | - <constraint firstItem="HQy-b9-ePQ" firstAttribute="centerY" secondItem="isf-zi-cli" secondAttribute="centerY" id="pbA-aE-HU6"/> | ||
| 1313 | - <constraint firstItem="HQy-b9-ePQ" firstAttribute="centerX" secondItem="isf-zi-cli" secondAttribute="centerX" id="sAd-ka-Cv5"/> | ||
| 1314 | - <constraint firstItem="HQy-b9-ePQ" firstAttribute="top" secondItem="isf-zi-cli" secondAttribute="top" id="t0Y-B2-cX2"/> | ||
| 1315 | - </constraints> | ||
| 1316 | - </view> | ||
| 1317 | - <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" bounces="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="nIY-nN-A62"> | ||
| 1318 | - <rect key="frame" x="0.0" y="234" width="375" height="50"/> | ||
| 1319 | - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 1320 | - <constraints> | ||
| 1321 | - <constraint firstAttribute="height" constant="50" id="cYW-6s-rjR"/> | ||
| 1322 | - </constraints> | ||
| 1323 | - <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="nKo-gM-IVo"> | ||
| 1324 | - <size key="itemSize" width="50" height="50"/> | ||
| 1325 | - <size key="headerReferenceSize" width="0.0" height="0.0"/> | ||
| 1326 | - <size key="footerReferenceSize" width="0.0" height="0.0"/> | ||
| 1327 | - <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> | ||
| 1328 | - </collectionViewFlowLayout> | ||
| 1329 | - <cells> | ||
| 1330 | - <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="selectCell" id="zB6-cu-Maa" customClass="selectTypeCell" customModule="YouerLiveVideo" customModuleProvider="target"> | ||
| 1331 | - <rect key="frame" x="0.0" y="0.0" width="50" height="50"/> | ||
| 1332 | - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
| 1333 | - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> | ||
| 1334 | - <rect key="frame" x="0.0" y="0.0" width="50" height="50"/> | ||
| 1335 | - <autoresizingMask key="autoresizingMask"/> | ||
| 1336 | - <subviews> | ||
| 1337 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="全部" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3Pk-up-2ih"> | ||
| 1338 | - <rect key="frame" x="0.0" y="0.0" width="50" height="50"/> | ||
| 1339 | - <fontDescription key="fontDescription" type="system" pointSize="12"/> | ||
| 1340 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1341 | - <nil key="highlightedColor"/> | ||
| 1342 | - </label> | ||
| 1343 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="suc-N0-vzy"> | ||
| 1344 | - <rect key="frame" x="49" y="0.0" width="1" height="50"/> | ||
| 1345 | - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 1346 | - <constraints> | ||
| 1347 | - <constraint firstAttribute="width" constant="1" id="SSB-k1-YBs"/> | ||
| 1348 | - </constraints> | ||
| 1349 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1350 | - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1351 | - <nil key="highlightedColor"/> | ||
| 1352 | - </label> | ||
| 1353 | - <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WXf-Tu-oay"> | ||
| 1354 | - <rect key="frame" x="0.0" y="47" width="50" height="3"/> | ||
| 1355 | - <color key="backgroundColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1356 | - <constraints> | ||
| 1357 | - <constraint firstAttribute="height" constant="3" id="mmI-NI-hys"/> | ||
| 1358 | - </constraints> | ||
| 1359 | - <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1360 | - <nil key="textColor"/> | ||
| 1361 | - <nil key="highlightedColor"/> | ||
| 1362 | - </label> | ||
| 1363 | - </subviews> | ||
| 1364 | - </view> | ||
| 1365 | - <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1366 | - <constraints> | ||
| 1367 | - <constraint firstAttribute="trailing" secondItem="WXf-Tu-oay" secondAttribute="trailing" id="1DM-BI-kJ0"/> | ||
| 1368 | - <constraint firstAttribute="bottom" secondItem="suc-N0-vzy" secondAttribute="bottom" id="1g5-P1-2B4"/> | ||
| 1369 | - <constraint firstItem="3Pk-up-2ih" firstAttribute="top" secondItem="zB6-cu-Maa" secondAttribute="top" id="51r-YX-JTH"/> | ||
| 1370 | - <constraint firstItem="3Pk-up-2ih" firstAttribute="leading" secondItem="zB6-cu-Maa" secondAttribute="leading" id="Fj8-by-KJ7"/> | ||
| 1371 | - <constraint firstAttribute="trailing" secondItem="3Pk-up-2ih" secondAttribute="trailing" id="IVf-hi-Sp1"/> | ||
| 1372 | - <constraint firstAttribute="trailing" secondItem="suc-N0-vzy" secondAttribute="trailing" id="Neu-CK-hfI"/> | ||
| 1373 | - <constraint firstAttribute="bottom" secondItem="3Pk-up-2ih" secondAttribute="bottom" id="Se6-22-LPP"/> | ||
| 1374 | - <constraint firstAttribute="bottom" secondItem="WXf-Tu-oay" secondAttribute="bottom" id="Uu3-5u-5pk"/> | ||
| 1375 | - <constraint firstItem="suc-N0-vzy" firstAttribute="top" secondItem="zB6-cu-Maa" secondAttribute="top" id="hqo-pn-dz0"/> | ||
| 1376 | - <constraint firstItem="WXf-Tu-oay" firstAttribute="leading" secondItem="zB6-cu-Maa" secondAttribute="leading" id="kKZ-BG-uZK"/> | ||
| 1377 | - </constraints> | ||
| 1378 | - <connections> | ||
| 1379 | - <outlet property="currentLabel" destination="WXf-Tu-oay" id="UEG-W5-jCM"/> | ||
| 1380 | - <outlet property="lineLabel" destination="suc-N0-vzy" id="pLb-HV-fJG"/> | ||
| 1381 | - <outlet property="titleLabel" destination="3Pk-up-2ih" id="pmn-6t-PlP"/> | ||
| 1382 | - </connections> | ||
| 1383 | - </collectionViewCell> | ||
| 1384 | - </cells> | ||
| 1385 | - <connections> | ||
| 1386 | - <outlet property="dataSource" destination="lqb-XV-ZVz" id="Qtm-ca-MEF"/> | ||
| 1387 | - <outlet property="delegate" destination="lqb-XV-ZVz" id="JnV-MO-A85"/> | ||
| 1388 | - </connections> | ||
| 1389 | - </collectionView> | ||
| 1390 | - <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="qbV-V4-1Wb"> | ||
| 1391 | - <rect key="frame" x="0.0" y="284" width="375" height="383"/> | ||
| 1392 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1393 | - <prototypes> | ||
| 1394 | - <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="W7l-gM-baV"> | ||
| 1395 | - <rect key="frame" x="0.0" y="28" width="375" height="44"/> | ||
| 1396 | - <autoresizingMask key="autoresizingMask"/> | ||
| 1397 | - <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="W7l-gM-baV" id="fqd-mq-zcm"> | ||
| 1398 | - <rect key="frame" x="0.0" y="0.0" width="375" height="44"/> | ||
| 1399 | - <autoresizingMask key="autoresizingMask"/> | ||
| 1400 | - </tableViewCellContentView> | ||
| 1401 | - </tableViewCell> | ||
| 1402 | - </prototypes> | ||
| 1403 | - <connections> | ||
| 1404 | - <outlet property="dataSource" destination="lqb-XV-ZVz" id="LLR-GW-UNE"/> | ||
| 1405 | - <outlet property="delegate" destination="lqb-XV-ZVz" id="dTl-a0-wgn"/> | ||
| 1406 | - </connections> | ||
| 1407 | - </tableView> | ||
| 1408 | - </subviews> | ||
| 1409 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1410 | - <constraints> | ||
| 1411 | - <constraint firstItem="nIY-nN-A62" firstAttribute="top" secondItem="isf-zi-cli" secondAttribute="bottom" id="3JH-pc-PD9"/> | ||
| 1412 | - <constraint firstAttribute="trailing" secondItem="qbV-V4-1Wb" secondAttribute="trailing" id="92K-HA-c7H"/> | ||
| 1413 | - <constraint firstItem="nIY-nN-A62" firstAttribute="leading" secondItem="Nko-iq-QeO" secondAttribute="leading" id="Krk-n8-uMH"/> | ||
| 1414 | - <constraint firstItem="qbV-V4-1Wb" firstAttribute="leading" secondItem="Nko-iq-QeO" secondAttribute="leading" id="Of1-gx-6kM"/> | ||
| 1415 | - <constraint firstAttribute="trailing" secondItem="isf-zi-cli" secondAttribute="trailing" id="RTV-Ck-k8N"/> | ||
| 1416 | - <constraint firstItem="isf-zi-cli" firstAttribute="top" secondItem="brV-vZ-9W3" secondAttribute="bottom" id="SHc-mb-QNi"/> | ||
| 1417 | - <constraint firstItem="qbV-V4-1Wb" firstAttribute="top" secondItem="nIY-nN-A62" secondAttribute="bottom" id="TNI-YE-eyl"/> | ||
| 1418 | - <constraint firstAttribute="trailing" secondItem="nIY-nN-A62" secondAttribute="trailing" id="dul-2C-eY2"/> | ||
| 1419 | - <constraint firstItem="isf-zi-cli" firstAttribute="leading" secondItem="Nko-iq-QeO" secondAttribute="leading" id="eGy-yl-AP0"/> | ||
| 1420 | - <constraint firstItem="cR5-Gc-hQY" firstAttribute="top" secondItem="qbV-V4-1Wb" secondAttribute="bottom" id="fBx-Ju-eLK"/> | ||
| 1421 | - </constraints> | ||
| 1422 | - </view> | ||
| 1423 | - <navigationItem key="navigationItem" title="直播列表" id="P23-gm-beR"/> | ||
| 1424 | - <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/> | ||
| 1425 | - <connections> | ||
| 1426 | - <outlet property="iconImage" destination="9sO-7j-ngT" id="Egb-2z-ww1"/> | ||
| 1427 | - <outlet property="liveListTableView" destination="qbV-V4-1Wb" id="M98-yR-OV9"/> | ||
| 1428 | - <outlet property="nameLabel" destination="gd5-Oe-oPN" id="2u7-2Y-H1g"/> | ||
| 1429 | - <outlet property="numberLabel" destination="8tX-Ga-zhU" id="iWh-fx-L62"/> | ||
| 1430 | - <outlet property="titleCollectionView" destination="nIY-nN-A62" id="SBy-Yj-tPs"/> | ||
| 1431 | - <outlet property="titleViewHeight" destination="cYW-6s-rjR" id="zYI-HZ-q3e"/> | ||
| 1432 | - </connections> | ||
| 1433 | - </viewController> | ||
| 1434 | - <placeholder placeholderIdentifier="IBFirstResponder" id="3SM-jo-HZr" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 1435 | - </objects> | ||
| 1436 | - <point key="canvasLocation" x="-103.2" y="1533.2833583208396"/> | ||
| 1437 | - </scene> | ||
| 1438 | - <!--我的关注--> | ||
| 1439 | - <scene sceneID="5Pj-um-Bnv"> | ||
| 1440 | - <objects> | ||
| 1441 | - <viewController storyboardIdentifier="MyAttentionViewController" id="zFh-S7-nli" customClass="MyAttentionViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 1442 | - <layoutGuides> | ||
| 1443 | - <viewControllerLayoutGuide type="top" id="JQ5-9k-ZmT"/> | ||
| 1444 | - <viewControllerLayoutGuide type="bottom" id="SsA-vp-TY4"/> | ||
| 1445 | - </layoutGuides> | ||
| 1446 | - <view key="view" contentMode="scaleToFill" id="cty-Eh-WcV"> | ||
| 1447 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 1448 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 1449 | - <subviews> | ||
| 1450 | - <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="80" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="IMO-Ya-Ykb"> | ||
| 1451 | - <rect key="frame" x="0.0" y="64" width="375" height="603"/> | ||
| 1452 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1453 | - <connections> | ||
| 1454 | - <outlet property="dataSource" destination="zFh-S7-nli" id="l8w-94-Khb"/> | ||
| 1455 | - <outlet property="delegate" destination="zFh-S7-nli" id="HDL-JZ-qph"/> | ||
| 1456 | - </connections> | ||
| 1457 | - </tableView> | ||
| 1458 | - </subviews> | ||
| 1459 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1460 | - <constraints> | ||
| 1461 | - <constraint firstItem="SsA-vp-TY4" firstAttribute="top" secondItem="IMO-Ya-Ykb" secondAttribute="bottom" id="6sW-ZQ-P0X"/> | ||
| 1462 | - <constraint firstItem="IMO-Ya-Ykb" firstAttribute="leading" secondItem="cty-Eh-WcV" secondAttribute="leading" id="JeM-iL-Uv2"/> | ||
| 1463 | - <constraint firstItem="IMO-Ya-Ykb" firstAttribute="top" secondItem="JQ5-9k-ZmT" secondAttribute="bottom" id="gA5-Vv-yWp"/> | ||
| 1464 | - <constraint firstAttribute="trailing" secondItem="IMO-Ya-Ykb" secondAttribute="trailing" id="pMZ-Fu-L8q"/> | ||
| 1465 | - </constraints> | ||
| 1466 | - </view> | ||
| 1467 | - <navigationItem key="navigationItem" title="我的关注" id="FDs-i4-32m"/> | ||
| 1468 | - <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/> | ||
| 1469 | - <connections> | ||
| 1470 | - <outlet property="tableView" destination="IMO-Ya-Ykb" id="tBt-n5-whv"/> | ||
| 1471 | - </connections> | ||
| 1472 | - </viewController> | ||
| 1473 | - <placeholder placeholderIdentifier="IBFirstResponder" id="20X-Eg-8F0" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 1474 | - </objects> | ||
| 1475 | - <point key="canvasLocation" x="-103.2" y="2202.5487256371816"/> | ||
| 1476 | - </scene> | ||
| 1477 | - </scenes> | ||
| 1478 | - <resources> | ||
| 1479 | - <image name="default" width="375" height="167"/> | ||
| 1480 | - <image name="defphoto.png" width="256" height="256"/> | ||
| 1481 | - <image name="loginBackGround" width="33" height="33"/> | ||
| 1482 | - <image name="psb.jpg" width="540" height="960"/> | ||
| 1483 | - <image name="userId.png" width="36" height="56"/> | ||
| 1484 | - <image name="userPassword.png" width="31" height="41"/> | ||
| 1485 | - <image name="上传头像.png" width="70" height="70"/> | ||
| 1486 | - <image name="收拢.png" width="15" height="25"/> | ||
| 1487 | - <image name="编辑.png" width="35" height="31"/> | ||
| 1488 | - <image name="观看.png" width="30" height="23"/> | ||
| 1489 | - </resources> | ||
| 1490 | -</document> |
YouerLiveVideo/YouerLiveVideo/controllers/NavigationViewController.swift
| @@ -1,75 +0,0 @@ | @@ -1,75 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// NavigationViewController.swift | ||
| 3 | -// YouerLiveVideo | ||
| 4 | -// | ||
| 5 | -// Created by 左丞 on 2017/5/16. | ||
| 6 | -// Copyright © 2017年 左丞. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -class NavigationViewController: UINavigationController { | ||
| 12 | - | ||
| 13 | - override func viewDidLoad() { | ||
| 14 | - super.viewDidLoad() | ||
| 15 | - UINavigationBar.appearance().tintColor = UIColor(red: 23/255.0, green: 70/255.0, blue: 151/255.0, alpha:1.0) | ||
| 16 | - // 设置naviBar背景图片 | ||
| 17 | - UINavigationBar.appearance().setBackgroundImage(UIImage(named: "navigationbarBackgroundWhite"), for: UIBarMetrics.default) | ||
| 18 | - // 设置title的字体 | ||
| 19 | - UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor(red: 23/255.0, green: 70/255.0, blue: 151/255.0, alpha:1.0)] | ||
| 20 | - // UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName:UIFont.systemFont(ofSize: 20)] | ||
| 21 | - self.interactivePopGestureRecognizer?.delegate = nil | ||
| 22 | - | ||
| 23 | - // Do any additional setup after loading the view. | ||
| 24 | - } | ||
| 25 | - | ||
| 26 | - // MARK: - private method | ||
| 27 | - func setBackBarButtonItem() -> UIBarButtonItem { | ||
| 28 | - let backButton = UIButton.init(type: .custom) | ||
| 29 | - backButton.setImage(UIImage(named: "setting_back"), for: .normal) | ||
| 30 | - backButton.sizeToFit() | ||
| 31 | - backButton.contentEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0) | ||
| 32 | - backButton.addTarget(self, action: #selector(NavigationViewController.backClick), for: .touchUpInside) | ||
| 33 | - return UIBarButtonItem.init(customView: backButton) | ||
| 34 | - } | ||
| 35 | - | ||
| 36 | - // 设置导航栏右边按钮 | ||
| 37 | - func setRightButton() -> UIBarButtonItem { | ||
| 38 | - | ||
| 39 | - let searchItem = UIButton.init(type: .custom) | ||
| 40 | - searchItem.setImage(UIImage(named: "searchbutton_nor"), for: .normal) | ||
| 41 | - searchItem.sizeToFit() | ||
| 42 | - searchItem.frame.size = CGSize(width: 30, height: 30) | ||
| 43 | - searchItem.contentHorizontalAlignment = .right | ||
| 44 | - searchItem.addTarget(self, action: #selector(NavigationViewController.searchClick), for: .touchUpInside) | ||
| 45 | - return UIBarButtonItem.init(customView: searchItem) | ||
| 46 | - } | ||
| 47 | - | ||
| 48 | - // 点击右边的添加或搜索 | ||
| 49 | - func searchClick() { | ||
| 50 | - let searchvc = SearchViewController() | ||
| 51 | - self.pushViewController(searchvc, animated: true) | ||
| 52 | - } | ||
| 53 | - | ||
| 54 | - /// 返回 | ||
| 55 | - func backClick() { | ||
| 56 | - self.popViewController(animated: true) | ||
| 57 | - } | ||
| 58 | - | ||
| 59 | - override func didReceiveMemoryWarning() { | ||
| 60 | - super.didReceiveMemoryWarning() | ||
| 61 | - // Dispose of any resources that can be recreated. | ||
| 62 | - } | ||
| 63 | - | ||
| 64 | - | ||
| 65 | - /* | ||
| 66 | - // MARK: - Navigation | ||
| 67 | - | ||
| 68 | - // In a storyboard-based application, you will often want to do a little preparation before navigation | ||
| 69 | - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { | ||
| 70 | - // Get the new view controller using segue.destinationViewController. | ||
| 71 | - // Pass the selected object to the new view controller. | ||
| 72 | - } | ||
| 73 | - */ | ||
| 74 | - | ||
| 75 | -} |
YouerLiveVideo/YouerLiveVideo/controllers/User/UserCenter/LoginViewController.swift
0 → 100644
| @@ -0,0 +1,145 @@ | @@ -0,0 +1,145 @@ | ||
| 1 | +// | ||
| 2 | +// LoginViewController.swift | ||
| 3 | +// YouerLiveVideo | ||
| 4 | +// | ||
| 5 | +// Created by 左丞 on 16/11/11. | ||
| 6 | +// Copyright © 2016年 左丞. All rights reserved. | ||
| 7 | +// | ||
| 8 | + | ||
| 9 | +import UIKit | ||
| 10 | + | ||
| 11 | +class LoginViewController: UIViewController,UITextFieldDelegate { | ||
| 12 | + @IBOutlet var changeViewTop: NSLayoutConstraint! | ||
| 13 | + @IBOutlet var phoneNumberTextField: UITextField! | ||
| 14 | + @IBOutlet var passwordTextField: UITextField! | ||
| 15 | + override func viewDidLoad() { | ||
| 16 | + super.viewDidLoad() | ||
| 17 | + let numberPlaceholder=NSMutableAttributedString(string: "请输入11位数的手机号码") | ||
| 18 | + numberPlaceholder.addAttribute(NSForegroundColorAttributeName, value: UIColor.white, range: NSMakeRange(0, 12)) | ||
| 19 | + phoneNumberTextField.attributedPlaceholder=numberPlaceholder | ||
| 20 | + phoneNumberTextField.tintColor=Theme.topBarColor() | ||
| 21 | + let passwordPlaceholder=NSMutableAttributedString(string: "请输入6位以上的密码") | ||
| 22 | + passwordPlaceholder.addAttribute(NSForegroundColorAttributeName, value: UIColor.white, range: NSMakeRange(0, 10)) | ||
| 23 | + passwordTextField.attributedPlaceholder=passwordPlaceholder | ||
| 24 | + passwordTextField.tintColor=Theme.topBarColor() | ||
| 25 | + | ||
| 26 | + NotificationCenter.default.addObserver(self, selector: #selector(LoginViewController.refreshUser), name: NSNotification.Name(rawValue: "refreshLoginUser"), object: nil) | ||
| 27 | + NotificationCenter.default.addObserver(self, selector: #selector(LoginViewController.keyboardWIllChange), name: NSNotification.Name.UIKeyboardWillChangeFrame, object: nil) | ||
| 28 | +// let leftbtn = UIBarButtonItem(title: "返回", style: .plain, target: self, action: #selector(LoginViewController.back)) | ||
| 29 | +// self.navigationItem.title = "登录" | ||
| 30 | +// self.navigationItem.leftBarButtonItem = leftbtn | ||
| 31 | + changeViewTop.constant=(getScreenHeight()-64-220)/3 | ||
| 32 | + } | ||
| 33 | + //点击页面回收键盘 | ||
| 34 | + @IBAction func touchAction(_ sender: AnyObject) { | ||
| 35 | + self.view.endEditing(true)//回收键盘 | ||
| 36 | + } | ||
| 37 | + override var preferredStatusBarStyle: UIStatusBarStyle{ | ||
| 38 | + return UIStatusBarStyle.lightContent | ||
| 39 | + } | ||
| 40 | + //输入密码点击return回收键盘 | ||
| 41 | + func textFieldShouldReturn(_ textField: UITextField) -> Bool { | ||
| 42 | + textField.resignFirstResponder() | ||
| 43 | + return true | ||
| 44 | + } | ||
| 45 | + //注册完了后自动填充账号 | ||
| 46 | + func refreshUser(noti:Notification){ | ||
| 47 | + phoneNumberTextField.text = "\(noti.object!)" | ||
| 48 | + } | ||
| 49 | + //点击登录按钮 | ||
| 50 | + @IBAction func loginBtnClickAction(_ sender: Any) { | ||
| 51 | + self.view.endEditing(true) | ||
| 52 | + if phoneNumberTextField.text!.isMobilePhoneNumber() { | ||
| 53 | + SVProgressHUD.show(withStatus: "登录...") | ||
| 54 | + SVProgressHUD.setDefaultMaskType(.black) | ||
| 55 | + let parameters:Dictionary<String,AnyObject>=["grant_type":"password" as AnyObject,"username":phoneNumberTextField.text! as AnyObject,"password":passwordTextField.text! as AnyObject] | ||
| 56 | + AppDelegate.instance().httpServer.login(parameters: parameters) { (str, error) in | ||
| 57 | + let json=JSON.fromString(jsonString: str) | ||
| 58 | + if let ret=json{ | ||
| 59 | + let er=ret["error"].string | ||
| 60 | + if let errorStr=er{ | ||
| 61 | + SVProgressHUD.dismiss() | ||
| 62 | + let Strings=errorStr.components(separatedBy:":") | ||
| 63 | + if Strings.count >= 2 { | ||
| 64 | + switch Strings[1] { | ||
| 65 | + //用户关联多个身份,请使用学事号登录:100 | ||
| 66 | + case "101"://用户认证身份不存在:101 | ||
| 67 | + AppDelegate.instance().window?.makeToast("用户认证身份不存在,请进行账号激活。") | ||
| 68 | + break | ||
| 69 | + //用户帐号或密码错误:102 | ||
| 70 | + case "103":// 用户不存在:103 | ||
| 71 | + AppDelegate.instance().window?.makeToast("该号码不存在,请联系客服400-826-2468") | ||
| 72 | + break | ||
| 73 | + default: | ||
| 74 | + AppDelegate.instance().window?.makeToast("\(errorStr)") | ||
| 75 | + break | ||
| 76 | + } | ||
| 77 | + }else{ | ||
| 78 | + AppDelegate.instance().window?.makeToast("\(errorStr)") | ||
| 79 | + } | ||
| 80 | + }else if ret["access_token"].stringValue != ""{ | ||
| 81 | + AppDelegate.instance().accountManager.setTokenInfo(tokenInfo: ret) | ||
| 82 | + AppDelegate.instance().accountManager.saveToken(tokenInfo: ret) | ||
| 83 | + AppDelegate.instance().accountManager.refreshUserInfo(completionHandler: { (finish) in | ||
| 84 | + if finish{ | ||
| 85 | + self.loadUserInfo() | ||
| 86 | + }else{ | ||
| 87 | + AppDelegate.instance().window?.makeToast("身份获取失败") | ||
| 88 | + SVProgressHUD.dismiss() | ||
| 89 | + } | ||
| 90 | + }) | ||
| 91 | + }else{ | ||
| 92 | + SVProgressHUD.dismiss() | ||
| 93 | + AppDelegate.instance().window?.makeToast("登录失败,请稍后重试") | ||
| 94 | + } | ||
| 95 | + }else{ | ||
| 96 | + SVProgressHUD.dismiss() | ||
| 97 | + AppDelegate.instance().window?.makeToast("登录失败") | ||
| 98 | + } | ||
| 99 | + } | ||
| 100 | + }else{ | ||
| 101 | + self.view.makeToast("请输入正确手机号") | ||
| 102 | + } | ||
| 103 | + } | ||
| 104 | + func loadUserInfo(){ | ||
| 105 | + XSTLiveManager.shareXSTLiveManager().login(userId: self.phoneNumberTextField.text!, completion: { (success) in | ||
| 106 | + if !success{ | ||
| 107 | + AppDelegate.instance().window?.makeToast("聊天服务登录失败,请连接网络重试") | ||
| 108 | + SVProgressHUD.dismiss() | ||
| 109 | + }else{ | ||
| 110 | + SVProgressHUD.dismiss() | ||
| 111 | + self.back() | ||
| 112 | + } | ||
| 113 | + }) | ||
| 114 | + } | ||
| 115 | + func back(){ | ||
| 116 | + self.dismiss(animated: true, completion: nil) | ||
| 117 | + LeadViewController.instance.removeAll() | ||
| 118 | + LeadViewController.instance.showMain() | ||
| 119 | + } | ||
| 120 | + | ||
| 121 | + override func didReceiveMemoryWarning() { | ||
| 122 | + super.didReceiveMemoryWarning() | ||
| 123 | + // Dispose of any resources that can be recreated. | ||
| 124 | + } | ||
| 125 | + //点击注册按钮 | ||
| 126 | + @IBAction func registerBtnClickAction(_ sender: AnyObject) { | ||
| 127 | + let vc = UIStoryboard(name: "User", bundle: nil).instantiateViewController(withIdentifier: "RegisterViewControllerVC") as! RegisterViewController | ||
| 128 | + vc.title = "注册" | ||
| 129 | + self.navigationController?.pushViewController(vc, animated: true) | ||
| 130 | + } | ||
| 131 | + //键盘监听 | ||
| 132 | + func keyboardWIllChange(noti: NSNotification){ | ||
| 133 | + let userInfo:NSDictionary=noti.userInfo! as NSDictionary | ||
| 134 | + let endFrame=(userInfo[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue | ||
| 135 | + if endFrame?.origin.y==getScreenHeight() { | ||
| 136 | + changeViewTop.constant=(getScreenHeight()-64-220)/3 | ||
| 137 | + }else{ | ||
| 138 | + let y = (getScreenHeight()-64-220)/3+CGFloat(64+220) | ||
| 139 | + if (endFrame?.origin.y)! < y { | ||
| 140 | + changeViewTop.constant=getScreenHeight()-64-(endFrame?.size.height)!-220 | ||
| 141 | + } | ||
| 142 | + } | ||
| 143 | + } | ||
| 144 | + | ||
| 145 | +} |
YouerLiveVideo/YouerLiveVideo/controllers/User/UserCenter/PersonalSettingViewController.swift
0 → 100644
| @@ -0,0 +1,238 @@ | @@ -0,0 +1,238 @@ | ||
| 1 | +// | ||
| 2 | +// PersonalSettingViewController.swift | ||
| 3 | +// YouerLiveVideo | ||
| 4 | +// | ||
| 5 | +// Created by 左丞 on 16/11/12. | ||
| 6 | +// Copyright © 2016年 左丞. All rights reserved. | ||
| 7 | +// | ||
| 8 | + | ||
| 9 | +import UIKit | ||
| 10 | + | ||
| 11 | +class PersonalSettingViewController: UIViewController ,UITableViewDelegate,UITableViewDataSource,UINavigationControllerDelegate,UIImagePickerControllerDelegate{ | ||
| 12 | + @IBOutlet weak var userSettingTableView: UITableView! | ||
| 13 | + @IBOutlet var rightBarBtn: UIBarButtonItem! | ||
| 14 | + @IBOutlet var loginoutBtn: UIButton! | ||
| 15 | + var titleArr:[String] = ["头像","昵称","手机号(账号)"]//["头像","账号","昵称","性别"] | ||
| 16 | + var user:Contact! | ||
| 17 | + var isUserActivity:Bool=false | ||
| 18 | + override func viewDidLoad() { | ||
| 19 | + super.viewDidLoad() | ||
| 20 | + user = Contact() | ||
| 21 | + } | ||
| 22 | + | ||
| 23 | + override func didReceiveMemoryWarning() { | ||
| 24 | + super.didReceiveMemoryWarning() | ||
| 25 | + } | ||
| 26 | + | ||
| 27 | + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | ||
| 28 | + switch indexPath.row { | ||
| 29 | + case 0: | ||
| 30 | + let sheet = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet) | ||
| 31 | + sheet.addAction(UIAlertAction(title: "取消", style: .cancel, handler: nil)) | ||
| 32 | + sheet.addAction(UIAlertAction(title: "拍照", style: .default, handler: { (action) in | ||
| 33 | + if cameraOrPhotPermissions(1, view: self.view){ | ||
| 34 | + let vc = UIImagePickerController() | ||
| 35 | + vc.delegate = self | ||
| 36 | + vc.sourceType = .camera | ||
| 37 | + self.present(vc, animated: true, completion: nil) | ||
| 38 | + }else{ | ||
| 39 | + | ||
| 40 | + } | ||
| 41 | + self.userSettingTableView.reloadData() | ||
| 42 | + })) | ||
| 43 | + sheet.addAction(UIAlertAction(title: "从相册选择", style: .default, handler: { (action) in | ||
| 44 | + if cameraOrPhotPermissions(1, view: self.view){ | ||
| 45 | + let vc = UIImagePickerController() | ||
| 46 | + vc.delegate = self | ||
| 47 | + vc.sourceType = .photoLibrary | ||
| 48 | + self.present(vc, animated: true, completion: nil) | ||
| 49 | + }else{ | ||
| 50 | + | ||
| 51 | + } | ||
| 52 | + self.userSettingTableView.reloadData() | ||
| 53 | + })) | ||
| 54 | + self.present(sheet, animated: true, completion: nil) | ||
| 55 | + break | ||
| 56 | + case 1: | ||
| 57 | + let alert = UIAlertController(title: "修改昵称", message: "", preferredStyle: .alert) | ||
| 58 | + alert.addAction(UIAlertAction(title: "确定", style: .default, handler: { (action) in | ||
| 59 | + if alert.textFields![0].text == ""{ | ||
| 60 | + return | ||
| 61 | + } | ||
| 62 | + if (alert.textFields![0].text?.characters.count)!>15{ | ||
| 63 | + self.user.nickName = (alert.textFields![0].text! as NSString).substring(to: 15) | ||
| 64 | + }else{ | ||
| 65 | + self.user.nickName = alert.textFields![0].text | ||
| 66 | + } | ||
| 67 | + self.userSettingTableView.reloadData() | ||
| 68 | + })) | ||
| 69 | + alert.addAction(UIAlertAction(title: "取消", style: .default, handler: nil)) | ||
| 70 | + alert.addTextField { (text) in | ||
| 71 | + text.placeholder = "请输入昵称,且不能超过15个字符" | ||
| 72 | + } | ||
| 73 | + self.present(alert, animated: true, completion: nil) | ||
| 74 | + break | ||
| 75 | + case 3: | ||
| 76 | + let sheet = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet) | ||
| 77 | + sheet.addAction(UIAlertAction(title: "取消", style: .cancel, handler: nil)) | ||
| 78 | + sheet.addAction(UIAlertAction(title: "男", style: .default, handler: { (action) in | ||
| 79 | + self.user.userSex = "男" | ||
| 80 | + self.userSettingTableView.reloadData() | ||
| 81 | + })) | ||
| 82 | + sheet.addAction(UIAlertAction(title: "女", style: .default, handler: { (action) in | ||
| 83 | + self.user.userSex = "女" | ||
| 84 | + self.userSettingTableView.reloadData() | ||
| 85 | + })) | ||
| 86 | + self.present(sheet, animated: true, completion: nil) | ||
| 87 | + break | ||
| 88 | + default: | ||
| 89 | + break | ||
| 90 | + } | ||
| 91 | + } | ||
| 92 | + | ||
| 93 | + | ||
| 94 | + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | ||
| 95 | + return titleArr.count | ||
| 96 | + } | ||
| 97 | + | ||
| 98 | + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { | ||
| 99 | + return 44 | ||
| 100 | + } | ||
| 101 | + | ||
| 102 | + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | ||
| 103 | + let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! PersonalSettingCell | ||
| 104 | + cell.nameTitleLabel.text = titleArr[indexPath.row] | ||
| 105 | + cell.nameLabelRightSpace.constant = 8 | ||
| 106 | + cell.imagePhoto.isHidden = true | ||
| 107 | + cell.namelabel.isHidden = false | ||
| 108 | + cell.rightArrow.isHidden = false | ||
| 109 | + cell.isUserInteractionEnabled = true | ||
| 110 | + if isUserActivity { | ||
| 111 | + cell.isUserInteractionEnabled=true | ||
| 112 | + }else{ | ||
| 113 | + cell.isUserInteractionEnabled=false | ||
| 114 | + } | ||
| 115 | + switch indexPath.row { | ||
| 116 | + case 0: | ||
| 117 | + cell.imagePhoto.isHidden = false | ||
| 118 | + cell.namelabel.isHidden = true | ||
| 119 | + cell.imagePhoto.sd_setImage(with: URL(string: user.imageURL), placeholderImage: UIImage(named: "defphoto")) | ||
| 120 | + break | ||
| 121 | + case 1: | ||
| 122 | + cell.namelabel.text = user.nickName//AppDelegate.instance().accountManager.name() | ||
| 123 | + break | ||
| 124 | + case 2: | ||
| 125 | + cell.nameLabelRightSpace.constant = -10 | ||
| 126 | + cell.rightArrow.isHidden = true | ||
| 127 | + cell.isUserInteractionEnabled = false | ||
| 128 | + cell.namelabel.text = user.userId//AppDelegate.instance().accountManager.phone() | ||
| 129 | + break | ||
| 130 | + case 3: | ||
| 131 | + cell.namelabel.text = user.userSex | ||
| 132 | + break | ||
| 133 | + | ||
| 134 | + default: | ||
| 135 | + break | ||
| 136 | + } | ||
| 137 | + return cell | ||
| 138 | + } | ||
| 139 | + | ||
| 140 | + func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { | ||
| 141 | + picker.dismiss(animated: true, completion: { () -> Void in | ||
| 142 | + var oimage = info[UIImagePickerControllerOriginalImage] as? UIImage | ||
| 143 | + oimage = oimage!.imageScaledToScale() | ||
| 144 | + let filePath=FilesManager.imageFilePath(String(format:"%f.jpg",Date().timeIntervalSince1970)) | ||
| 145 | + try? UIImageJPEGRepresentation(oimage!,0.5)!.write(to: URL(fileURLWithPath: filePath), options: [.atomic]) | ||
| 146 | + self.updateImage(file: filePath) | ||
| 147 | + }) | ||
| 148 | + } | ||
| 149 | + func updateImage(file:String){ | ||
| 150 | + SVProgressHUD.show(withStatus: "图片上传中...") | ||
| 151 | + SVProgressHUD.setDefaultMaskType(.black) | ||
| 152 | + AppDelegate.instance().httpServer.uploadFile(file: NSURL(fileURLWithPath: file)) { (str, error) in | ||
| 153 | + SVProgressHUD.dismiss() | ||
| 154 | + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 155 | + let str=json.contentData().arrayValue[0].stringValue | ||
| 156 | + self.user.imageURL=str | ||
| 157 | + }, failHandler: { (error) in | ||
| 158 | + self.user.imageURL="" | ||
| 159 | + self.view.makeToast("图片上传失败:\(error.localizedDescription)") | ||
| 160 | + }) | ||
| 161 | + self.userSettingTableView.reloadData() | ||
| 162 | + } | ||
| 163 | + } | ||
| 164 | + // MARK: - 退出登录按钮点击事件 | ||
| 165 | + @IBAction func ExsitBtnClickAction(_ sender: Any) { | ||
| 166 | + AppDelegate.instance().accountManager.logOut() | ||
| 167 | + } | ||
| 168 | + // MARK: - 完成按钮点击事件 | ||
| 169 | + @IBAction func finishAction(_ sender: UIBarButtonItem) { | ||
| 170 | + if isUserActivity { | ||
| 171 | + //需要新的接口来修改个人信息 | ||
| 172 | + SVProgressHUD.show(withStatus: "修改个人信息...") | ||
| 173 | + SVProgressHUD.setDefaultMaskType(.black) | ||
| 174 | + let parameters:Dictionary<String,AnyObject>=["f_RealName":self.user.nickName as AnyObject,"f_HeadIcon":self.user.imageURL as AnyObject] | ||
| 175 | + AppDelegate.instance().httpServer.updataUserInfo(parameters: parameters, completionHandler: { (str, error) in | ||
| 176 | + SVProgressHUD.dismiss() | ||
| 177 | + if error==nil { | ||
| 178 | + if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 179 | + //把账号信息存储下来,暂时这样修改。若以后个人信息中有其他元素,需加新的接口来更新个人信息。 | ||
| 180 | + // var dic=Setting.getUserInfo()?.dictionaryValue["data"]?.dictionaryObject | ||
| 181 | + // _=dic?.updateValue(self.user.nickName, forKey: "f_RealName") | ||
| 182 | + // _=dic?.updateValue(self.user.imageURL, forKey: "f_HeadIcon") | ||
| 183 | + // let userInfo:Dictionary<String,AnyObject>=["status":1 as AnyObject,"data":dic as AnyObject] | ||
| 184 | + // AppDelegate.instance().accountManager.rawUserInfo=JSON(userInfo) | ||
| 185 | + // _=Setting.saveUserInfo(JSON(userInfo).rawString()) | ||
| 186 | + XSTLiveManager.shareXSTLiveManager().setUpPersonInfo(name: self.user.nickName, icon: self.user.imageURL) | ||
| 187 | + AppDelegate.instance().window?.makeToast("修改个人信息成功") | ||
| 188 | + self.rightBarBtn.title="修改" | ||
| 189 | + self.isUserActivity=false | ||
| 190 | + self.loginoutBtn.isHidden=false | ||
| 191 | + self.userSettingTableView.reloadData() | ||
| 192 | + AppDelegate.instance().accountManager.refreshUserInfo(completionHandler: { (finish) in | ||
| 193 | + if !finish{ | ||
| 194 | + AppDelegate.instance().window?.makeToast("身份获取失败") | ||
| 195 | + } | ||
| 196 | + }) | ||
| 197 | + }else{ | ||
| 198 | + self.view.makeToast("修改个人信息失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
| 199 | + } | ||
| 200 | + }else{ | ||
| 201 | + self.view.makeToast("修改个人信息失败:\(error!.description)") | ||
| 202 | + } | ||
| 203 | + }) | ||
| 204 | + }else{ | ||
| 205 | + self.rightBarBtn.title="保存" | ||
| 206 | + self.isUserActivity=true | ||
| 207 | + self.loginoutBtn.isHidden=true | ||
| 208 | + self.userSettingTableView.reloadData() | ||
| 209 | + } | ||
| 210 | + } | ||
| 211 | + | ||
| 212 | +} | ||
| 213 | + | ||
| 214 | +class PersonalSettingCell: UITableViewCell { | ||
| 215 | + | ||
| 216 | + | ||
| 217 | + @IBOutlet weak var nameLabelRightSpace: NSLayoutConstraint! | ||
| 218 | + | ||
| 219 | + @IBOutlet weak var rightArrow: UIImageView! | ||
| 220 | + @IBOutlet weak var namelabel: UILabel! | ||
| 221 | + @IBOutlet weak var imagePhoto: UIImageView! | ||
| 222 | + @IBOutlet weak var nameTitleLabel: UILabel! | ||
| 223 | + | ||
| 224 | + | ||
| 225 | +} | ||
| 226 | + | ||
| 227 | +class Contact { | ||
| 228 | + var nickName:String! | ||
| 229 | + var userId:String! | ||
| 230 | + var userSex:String! | ||
| 231 | + var imageURL:String! | ||
| 232 | + init() { | ||
| 233 | + nickName = AppDelegate.instance().accountManager.name() | ||
| 234 | + userId = AppDelegate.instance().accountManager.phone() | ||
| 235 | + userSex = "男" | ||
| 236 | + imageURL = AppDelegate.instance().accountManager.photo() | ||
| 237 | + } | ||
| 238 | +} |
YouerLiveVideo/YouerLiveVideo/controllers/User/UserCenter/RegisterViewController.swift
0 → 100644
| @@ -0,0 +1,173 @@ | @@ -0,0 +1,173 @@ | ||
| 1 | +// | ||
| 2 | +// RegisterViewController.swift | ||
| 3 | +// YouerLiveVideo | ||
| 4 | +// | ||
| 5 | +// Created by 左丞 on 16/11/9. | ||
| 6 | +// Copyright © 2016年 左丞. All rights reserved. | ||
| 7 | +// | ||
| 8 | + | ||
| 9 | +import UIKit | ||
| 10 | + | ||
| 11 | +class RegisterViewController: UIViewController,UIAlertViewDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate,UITextFieldDelegate{ | ||
| 12 | + | ||
| 13 | + | ||
| 14 | + @IBOutlet weak var sendVerificationCode: UIButton! | ||
| 15 | + @IBOutlet var nikeNameTextFiled: UITextField! //昵称 | ||
| 16 | + @IBOutlet var passwordTextField: UITextField! //输入密码 | ||
| 17 | + @IBOutlet var confirmPasswordTextField: UITextField!//确认密码 | ||
| 18 | + @IBOutlet weak var phoneNumber: UITextField! | ||
| 19 | + @IBOutlet weak var inputVerificationCode: UITextField!//验证码 | ||
| 20 | + @IBOutlet weak var registerBtn: UIButton! | ||
| 21 | + @IBOutlet weak var nickNameLabel: UILabel! | ||
| 22 | + @IBOutlet weak var sendPhotoImage: UIImageView! | ||
| 23 | + var iconImage: UIImage? | ||
| 24 | + var name: String="" | ||
| 25 | + override func viewDidLoad() { | ||
| 26 | + super.viewDidLoad() | ||
| 27 | + // Do any additional setup after loading the view. | ||
| 28 | + } | ||
| 29 | + | ||
| 30 | + @IBAction func touchAction(_ sender: AnyObject) { | ||
| 31 | + self.view.endEditing(true)//回收键盘 | ||
| 32 | + } | ||
| 33 | + override func didReceiveMemoryWarning() { | ||
| 34 | + super.didReceiveMemoryWarning() | ||
| 35 | + // Dispose of any resources that can be recreated. | ||
| 36 | + } | ||
| 37 | + func textFieldShouldReturn(_ textField: UITextField) -> Bool { | ||
| 38 | + textField.resignFirstResponder() | ||
| 39 | + return true | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | + @IBAction func sendVerificationCodeClickAction(_ sender: AnyObject) {//发验证码 | ||
| 43 | + self.view.endEditing(true) | ||
| 44 | + if nikeNameTextFiled.text!.characters.count<11{ | ||
| 45 | + if passwordTextField.text!.characters.count>=6 && passwordTextField.text!.characters.count<=8 && confirmPasswordTextField.text!.characters.count>=6 && confirmPasswordTextField.text!.characters.count<=8{ | ||
| 46 | + if passwordTextField.text!==confirmPasswordTextField.text!{ | ||
| 47 | + if (phoneNumber.text?.isMobilePhoneNumber())! { | ||
| 48 | + SVProgressHUD.show(withStatus: "获取验证码...") | ||
| 49 | + SVProgressHUD.setDefaultMaskType(.black) | ||
| 50 | + AppDelegate.instance().httpServer.getChangePhoneCaptcha(mobile: phoneNumber.text!, completionHandler: { (str, error) in | ||
| 51 | + SVProgressHUD.dismiss() | ||
| 52 | + if error==nil { | ||
| 53 | + if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 54 | + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 55 | + self.view.makeToast("验证码发送成功") | ||
| 56 | + self.nikeNameTextFiled.isUserInteractionEnabled=false | ||
| 57 | + self.phoneNumber.isUserInteractionEnabled=false | ||
| 58 | + self.passwordTextField.isUserInteractionEnabled=false | ||
| 59 | + self.confirmPasswordTextField.isUserInteractionEnabled=false | ||
| 60 | + }, failHandler: { (error) in | ||
| 61 | + self.view.makeToast("验证码发送失败:\(error.localizedDescription)") | ||
| 62 | + }) | ||
| 63 | + }else{ | ||
| 64 | + self.view.makeToast("验证码发送失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
| 65 | + } | ||
| 66 | + }else{ | ||
| 67 | + self.view.makeToast("验证码发送失败:\(error!.description)") | ||
| 68 | + } | ||
| 69 | + }) | ||
| 70 | + }else{ | ||
| 71 | + self.view.makeToast("请输入正确手机号") | ||
| 72 | + } | ||
| 73 | + }else{ | ||
| 74 | + self.view.makeToast("两次输入密码不一致") | ||
| 75 | + } | ||
| 76 | + }else{ | ||
| 77 | + self.view.makeToast("密码必须为6-8位字符或者数字") | ||
| 78 | + } | ||
| 79 | + }else{ | ||
| 80 | + self.view.makeToast("昵称必须小于11位") | ||
| 81 | + } | ||
| 82 | + } | ||
| 83 | + | ||
| 84 | + @IBAction func registerBtnAction(_ sender: AnyObject) {//注册 | ||
| 85 | + if inputVerificationCode.text!.characters.count == 4{ | ||
| 86 | + SVProgressHUD.show(withStatus: "注册...") | ||
| 87 | + SVProgressHUD.setDefaultMaskType(.black) | ||
| 88 | + let parameters:Dictionary<String,AnyObject>=["f_Account":phoneNumber.text! as AnyObject,"f_UserPassword":passwordTextField.text! as AnyObject,"f_RealName": (nikeNameTextFiled.text!=="" ? phoneNumber.text! : nikeNameTextFiled.text!) as AnyObject,"f_MobilePhone":phoneNumber.text! as AnyObject,"f_VerCode":inputVerificationCode.text! as AnyObject] | ||
| 89 | + AppDelegate.instance().httpServer.getCreateUser(parameters: parameters) { (str, error) in | ||
| 90 | + SVProgressHUD.dismiss() | ||
| 91 | + self.nikeNameTextFiled.isUserInteractionEnabled=true | ||
| 92 | + self.phoneNumber.isUserInteractionEnabled=true | ||
| 93 | + self.passwordTextField.isUserInteractionEnabled=true | ||
| 94 | + self.confirmPasswordTextField.isUserInteractionEnabled=true | ||
| 95 | + if error==nil { | ||
| 96 | + if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
| 97 | + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 98 | + self.navigationController!.popToRootViewController(animated: true) | ||
| 99 | + AppDelegate.instance().window?.makeToast("注册成功") | ||
| 100 | + NotificationCenter.default.post(name: NSNotification.Name(rawValue: "refreshLoginUser"), object: self.phoneNumber.text!) | ||
| 101 | + //是否登录 | ||
| 102 | + }, failHandler: { (error) in | ||
| 103 | + self.view.makeToast("注册失败:\(error.localizedDescription)") | ||
| 104 | + }) | ||
| 105 | + }else{ | ||
| 106 | + self.view.makeToast("注册失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
| 107 | + } | ||
| 108 | + }else{ | ||
| 109 | + self.view.makeToast("注册失败:\(error!.description)") | ||
| 110 | + } | ||
| 111 | + } | ||
| 112 | + }else{ | ||
| 113 | + self.view.makeToast("验证码必须是四位数字") | ||
| 114 | + } | ||
| 115 | + } | ||
| 116 | + | ||
| 117 | + | ||
| 118 | + @IBAction func loginBtnClickAction(_ sender: AnyObject) { | ||
| 119 | + self.navigationController!.popViewController(animated: false) | ||
| 120 | + } | ||
| 121 | + | ||
| 122 | + @IBAction func nickNameSetTapAction(_ sender: AnyObject) { | ||
| 123 | + let alert = UIAlertController(title: "设置昵称", message: "", preferredStyle: .alert) | ||
| 124 | + alert.addAction(UIAlertAction(title: "取消", style: .destructive, handler: nil)) | ||
| 125 | + alert.addAction(UIAlertAction(title: "确定", style: .default, handler: { (action) in | ||
| 126 | + if alert.textFields![0].text == ""{ | ||
| 127 | + return | ||
| 128 | + } | ||
| 129 | + self.name = alert.textFields![0].text! | ||
| 130 | + self.nickNameLabel.text = alert.textFields![0].text | ||
| 131 | + })) | ||
| 132 | + | ||
| 133 | + alert.addTextField { (text) in | ||
| 134 | + text.placeholder = "请输入昵称" | ||
| 135 | + } | ||
| 136 | + self.present(alert, animated: true, completion: nil) | ||
| 137 | + } | ||
| 138 | + | ||
| 139 | + @IBAction func sendPhotoImageTapAction(_ sender: AnyObject) { | ||
| 140 | + if cameraOrPhotPermissions(0, view: self.view){ | ||
| 141 | + let vc = UIImagePickerController() | ||
| 142 | + vc.delegate = self | ||
| 143 | + vc.sourceType = .photoLibrary | ||
| 144 | + self.present(vc, animated: true, completion: nil) | ||
| 145 | + }else{ | ||
| 146 | + | ||
| 147 | + } | ||
| 148 | + } | ||
| 149 | + | ||
| 150 | + func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { | ||
| 151 | + picker.dismiss(animated: true, completion: { () -> Void in | ||
| 152 | + var oimage = info[UIImagePickerControllerOriginalImage] as? UIImage | ||
| 153 | + oimage = oimage!.imageScaledToScale() | ||
| 154 | + let filePath=FilesManager.imageFilePath(String(format:"%f.jpg",Date().timeIntervalSince1970)) | ||
| 155 | + try? UIImageJPEGRepresentation(oimage!,0.5)!.write(to: URL(fileURLWithPath: filePath), options: [.atomic]) | ||
| 156 | + self.sendPhotoImage.layer.masksToBounds = true | ||
| 157 | + self.sendPhotoImage.layer.cornerRadius = 25 | ||
| 158 | + self.sendPhotoImage.image = oimage | ||
| 159 | + self.iconImage = oimage | ||
| 160 | + }) | ||
| 161 | + } | ||
| 162 | + | ||
| 163 | + /* | ||
| 164 | + // MARK: - Navigation | ||
| 165 | + | ||
| 166 | + // In a storyboard-based application, you will often want to do a little preparation before navigation | ||
| 167 | + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { | ||
| 168 | + // Get the new view controller using segue.destinationViewController. | ||
| 169 | + // Pass the selected object to the new view controller. | ||
| 170 | + } | ||
| 171 | + */ | ||
| 172 | + | ||
| 173 | +} |
YouerLiveVideo/YouerLiveVideo/controllers/User/UserCenter/User.storyboard
0 → 100644
| @@ -0,0 +1,1490 @@ | @@ -0,0 +1,1490 @@ | ||
| 1 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
| 2 | +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="15G1217" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> | ||
| 3 | + <device id="retina4_7" orientation="portrait"> | ||
| 4 | + <adaptation id="fullscreen"/> | ||
| 5 | + </device> | ||
| 6 | + <dependencies> | ||
| 7 | + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/> | ||
| 8 | + <capability name="Aspect ratio constraints" minToolsVersion="5.1"/> | ||
| 9 | + <capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/> | ||
| 10 | + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | ||
| 11 | + </dependencies> | ||
| 12 | + <scenes> | ||
| 13 | + <!--Login View Controller--> | ||
| 14 | + <scene sceneID="orQ-wB-ipa"> | ||
| 15 | + <objects> | ||
| 16 | + <viewController storyboardIdentifier="LoginViewControllerVC" id="fvc-9c-Gca" customClass="LoginViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 17 | + <layoutGuides> | ||
| 18 | + <viewControllerLayoutGuide type="top" id="M3F-7t-f1g"/> | ||
| 19 | + <viewControllerLayoutGuide type="bottom" id="agc-xf-u2B"/> | ||
| 20 | + </layoutGuides> | ||
| 21 | + <view key="view" contentMode="scaleToFill" id="rVC-Df-GKu"> | ||
| 22 | + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 23 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 24 | + <subviews> | ||
| 25 | + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="loginBackGround" translatesAutoresizingMaskIntoConstraints="NO" id="Bob-Ef-450"> | ||
| 26 | + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 27 | + </imageView> | ||
| 28 | + <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tqb-X5-ujR" customClass="UIControl"> | ||
| 29 | + <rect key="frame" x="0.0" y="186" width="375" height="220"/> | ||
| 30 | + <subviews> | ||
| 31 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eXd-TY-qlW"> | ||
| 32 | + <rect key="frame" x="62.5" y="0.0" width="250" height="112"/> | ||
| 33 | + <subviews> | ||
| 34 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EAC-sg-BLE"> | ||
| 35 | + <rect key="frame" x="0.0" y="0.0" width="250" height="56"/> | ||
| 36 | + <subviews> | ||
| 37 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NJW-yg-XQM"> | ||
| 38 | + <rect key="frame" x="0.0" y="55" width="250" height="1"/> | ||
| 39 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 40 | + <constraints> | ||
| 41 | + <constraint firstAttribute="height" constant="1" id="GtD-JL-A0z"/> | ||
| 42 | + </constraints> | ||
| 43 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 44 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 45 | + <nil key="highlightedColor"/> | ||
| 46 | + </label> | ||
| 47 | + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="userId.png" translatesAutoresizingMaskIntoConstraints="NO" id="1xZ-bM-AMz"> | ||
| 48 | + <rect key="frame" x="8" y="12.5" width="20" height="31"/> | ||
| 49 | + <constraints> | ||
| 50 | + <constraint firstAttribute="width" constant="20" id="3hd-Sx-hPC"/> | ||
| 51 | + <constraint firstAttribute="width" secondItem="1xZ-bM-AMz" secondAttribute="height" multiplier="9:14" id="DCg-L0-4Lx"/> | ||
| 52 | + </constraints> | ||
| 53 | + </imageView> | ||
| 54 | + <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入11位数的手机号码 " minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="IzH-dB-I9H"> | ||
| 55 | + <rect key="frame" x="36" y="18.5" width="214" height="19"/> | ||
| 56 | + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 57 | + <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 58 | + <textInputTraits key="textInputTraits" keyboardType="numberPad"/> | ||
| 59 | + <connections> | ||
| 60 | + <outlet property="delegate" destination="fvc-9c-Gca" id="l7n-F4-FsF"/> | ||
| 61 | + </connections> | ||
| 62 | + </textField> | ||
| 63 | + </subviews> | ||
| 64 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> | ||
| 65 | + <constraints> | ||
| 66 | + <constraint firstAttribute="trailing" secondItem="IzH-dB-I9H" secondAttribute="trailing" id="DIX-3U-BQG"/> | ||
| 67 | + <constraint firstAttribute="height" constant="56" id="Ff7-2n-071"/> | ||
| 68 | + <constraint firstItem="IzH-dB-I9H" firstAttribute="leading" secondItem="1xZ-bM-AMz" secondAttribute="trailing" constant="8" id="Mi3-ud-m0O"/> | ||
| 69 | + <constraint firstItem="IzH-dB-I9H" firstAttribute="centerY" secondItem="EAC-sg-BLE" secondAttribute="centerY" id="Ud1-tF-ivz"/> | ||
| 70 | + <constraint firstItem="1xZ-bM-AMz" firstAttribute="leading" secondItem="EAC-sg-BLE" secondAttribute="leading" constant="8" id="Z77-MJ-BF0"/> | ||
| 71 | + <constraint firstAttribute="bottom" secondItem="NJW-yg-XQM" secondAttribute="bottom" id="i3N-yW-fre"/> | ||
| 72 | + <constraint firstAttribute="trailing" secondItem="NJW-yg-XQM" secondAttribute="trailing" id="ued-ca-1l3"/> | ||
| 73 | + <constraint firstItem="1xZ-bM-AMz" firstAttribute="centerY" secondItem="EAC-sg-BLE" secondAttribute="centerY" id="xd6-hf-JPu"/> | ||
| 74 | + <constraint firstItem="NJW-yg-XQM" firstAttribute="leading" secondItem="EAC-sg-BLE" secondAttribute="leading" id="xlc-R5-T0J"/> | ||
| 75 | + </constraints> | ||
| 76 | + </view> | ||
| 77 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xba-Rv-jIe"> | ||
| 78 | + <rect key="frame" x="0.0" y="56" width="250" height="56"/> | ||
| 79 | + <subviews> | ||
| 80 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BcZ-u5-RFA"> | ||
| 81 | + <rect key="frame" x="0.0" y="55" width="250" height="1"/> | ||
| 82 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 83 | + <constraints> | ||
| 84 | + <constraint firstAttribute="height" constant="1" id="aAz-El-TeO"/> | ||
| 85 | + </constraints> | ||
| 86 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 87 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 88 | + <nil key="highlightedColor"/> | ||
| 89 | + </label> | ||
| 90 | + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="userPassword.png" translatesAutoresizingMaskIntoConstraints="NO" id="oON-zY-4HS"> | ||
| 91 | + <rect key="frame" x="8" y="15" width="20" height="26"/> | ||
| 92 | + <constraints> | ||
| 93 | + <constraint firstAttribute="width" secondItem="oON-zY-4HS" secondAttribute="height" multiplier="31:41" id="hSc-3U-3kl"/> | ||
| 94 | + <constraint firstAttribute="width" constant="20" id="vb3-Wd-N14"/> | ||
| 95 | + </constraints> | ||
| 96 | + </imageView> | ||
| 97 | + <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入6位以上的密码" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="nVn-EA-yWM"> | ||
| 98 | + <rect key="frame" x="36" y="18.5" width="214" height="19"/> | ||
| 99 | + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 100 | + <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 101 | + <textInputTraits key="textInputTraits" secureTextEntry="YES"/> | ||
| 102 | + <connections> | ||
| 103 | + <outlet property="delegate" destination="fvc-9c-Gca" id="tMS-9N-o09"/> | ||
| 104 | + </connections> | ||
| 105 | + </textField> | ||
| 106 | + </subviews> | ||
| 107 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> | ||
| 108 | + <constraints> | ||
| 109 | + <constraint firstItem="oON-zY-4HS" firstAttribute="leading" secondItem="xba-Rv-jIe" secondAttribute="leading" constant="8" id="6sV-zB-qIs"/> | ||
| 110 | + <constraint firstItem="nVn-EA-yWM" firstAttribute="centerY" secondItem="xba-Rv-jIe" secondAttribute="centerY" id="HaD-wa-ZFb"/> | ||
| 111 | + <constraint firstAttribute="trailing" secondItem="BcZ-u5-RFA" secondAttribute="trailing" id="KDU-ei-Izn"/> | ||
| 112 | + <constraint firstItem="nVn-EA-yWM" firstAttribute="leading" secondItem="oON-zY-4HS" secondAttribute="trailing" constant="8" id="LHP-bs-Kee"/> | ||
| 113 | + <constraint firstAttribute="bottom" secondItem="BcZ-u5-RFA" secondAttribute="bottom" id="N41-uo-obj"/> | ||
| 114 | + <constraint firstItem="oON-zY-4HS" firstAttribute="centerY" secondItem="xba-Rv-jIe" secondAttribute="centerY" id="Sf8-w6-WiM"/> | ||
| 115 | + <constraint firstAttribute="trailing" secondItem="nVn-EA-yWM" secondAttribute="trailing" id="UTj-My-xsB"/> | ||
| 116 | + <constraint firstItem="BcZ-u5-RFA" firstAttribute="leading" secondItem="xba-Rv-jIe" secondAttribute="leading" id="gei-H3-PPW"/> | ||
| 117 | + </constraints> | ||
| 118 | + </view> | ||
| 119 | + </subviews> | ||
| 120 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> | ||
| 121 | + <constraints> | ||
| 122 | + <constraint firstAttribute="trailing" secondItem="xba-Rv-jIe" secondAttribute="trailing" id="0A8-Lv-KWd"/> | ||
| 123 | + <constraint firstAttribute="height" constant="112" id="0mn-L0-Qpr"/> | ||
| 124 | + <constraint firstItem="EAC-sg-BLE" firstAttribute="top" secondItem="eXd-TY-qlW" secondAttribute="top" id="Bsa-ry-Tmn"/> | ||
| 125 | + <constraint firstItem="xba-Rv-jIe" firstAttribute="top" secondItem="EAC-sg-BLE" secondAttribute="bottom" id="OKE-Ch-lJc"/> | ||
| 126 | + <constraint firstAttribute="bottom" secondItem="xba-Rv-jIe" secondAttribute="bottom" id="aCK-P5-ecJ"/> | ||
| 127 | + <constraint firstItem="xba-Rv-jIe" firstAttribute="leading" secondItem="eXd-TY-qlW" secondAttribute="leading" id="aap-4K-zSS"/> | ||
| 128 | + <constraint firstItem="EAC-sg-BLE" firstAttribute="leading" secondItem="eXd-TY-qlW" secondAttribute="leading" id="e0b-LG-hBZ"/> | ||
| 129 | + <constraint firstAttribute="trailing" secondItem="EAC-sg-BLE" secondAttribute="trailing" id="uOA-y7-ZUY"/> | ||
| 130 | + </constraints> | ||
| 131 | + </view> | ||
| 132 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Qs2-9k-jbh"> | ||
| 133 | + <rect key="frame" x="62.5" y="144" width="250" height="30"/> | ||
| 134 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 135 | + <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 136 | + <state key="normal" title="登录"> | ||
| 137 | + <color key="titleColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 138 | + </state> | ||
| 139 | + <userDefinedRuntimeAttributes> | ||
| 140 | + <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 141 | + <integer key="value" value="15"/> | ||
| 142 | + </userDefinedRuntimeAttribute> | ||
| 143 | + <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 144 | + </userDefinedRuntimeAttributes> | ||
| 145 | + <connections> | ||
| 146 | + <action selector="loginBtnClickAction:" destination="fvc-9c-Gca" eventType="touchUpInside" id="INl-Rf-lsr"/> | ||
| 147 | + </connections> | ||
| 148 | + </button> | ||
| 149 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pzO-1N-Vrz"> | ||
| 150 | + <rect key="frame" x="62.5" y="182" width="250" height="30"/> | ||
| 151 | + <subviews> | ||
| 152 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="忘记密码" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="v6n-Br-sBy"> | ||
| 153 | + <rect key="frame" x="0.0" y="0.0" width="53.5" height="30"/> | ||
| 154 | + <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 155 | + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 156 | + <nil key="highlightedColor"/> | ||
| 157 | + </label> | ||
| 158 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="注册" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7fx-1i-VwW"> | ||
| 159 | + <rect key="frame" x="223" y="0.0" width="27" height="30"/> | ||
| 160 | + <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 161 | + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 162 | + <nil key="highlightedColor"/> | ||
| 163 | + </label> | ||
| 164 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ps0-yz-uMV"> | ||
| 165 | + <rect key="frame" x="0.0" y="0.0" width="250" height="30"/> | ||
| 166 | + <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 167 | + <state key="normal"> | ||
| 168 | + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 169 | + </state> | ||
| 170 | + <connections> | ||
| 171 | + <action selector="registerBtnClickAction:" destination="fvc-9c-Gca" eventType="touchUpInside" id="joQ-gk-ZzE"/> | ||
| 172 | + </connections> | ||
| 173 | + </button> | ||
| 174 | + </subviews> | ||
| 175 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> | ||
| 176 | + <constraints> | ||
| 177 | + <constraint firstItem="ps0-yz-uMV" firstAttribute="top" secondItem="pzO-1N-Vrz" secondAttribute="top" id="7G1-mO-jQj"/> | ||
| 178 | + <constraint firstAttribute="trailing" secondItem="7fx-1i-VwW" secondAttribute="trailing" id="8ot-xx-BFo"/> | ||
| 179 | + <constraint firstAttribute="bottom" secondItem="7fx-1i-VwW" secondAttribute="bottom" id="Byb-9b-kOd"/> | ||
| 180 | + <constraint firstAttribute="height" constant="30" id="TT4-WL-hYa"/> | ||
| 181 | + <constraint firstItem="7fx-1i-VwW" firstAttribute="top" secondItem="pzO-1N-Vrz" secondAttribute="top" id="VzP-hc-s7a"/> | ||
| 182 | + <constraint firstAttribute="bottom" secondItem="ps0-yz-uMV" secondAttribute="bottom" id="d8H-p3-iy8"/> | ||
| 183 | + <constraint firstAttribute="trailing" secondItem="ps0-yz-uMV" secondAttribute="trailing" id="eo1-LL-5jy"/> | ||
| 184 | + <constraint firstAttribute="bottom" secondItem="v6n-Br-sBy" secondAttribute="bottom" id="gbJ-jU-WFB"/> | ||
| 185 | + <constraint firstItem="v6n-Br-sBy" firstAttribute="top" secondItem="pzO-1N-Vrz" secondAttribute="top" id="hj5-hs-ep4"/> | ||
| 186 | + <constraint firstItem="ps0-yz-uMV" firstAttribute="leading" secondItem="pzO-1N-Vrz" secondAttribute="leading" id="uJt-wq-oTh"/> | ||
| 187 | + <constraint firstItem="v6n-Br-sBy" firstAttribute="leading" secondItem="pzO-1N-Vrz" secondAttribute="leading" id="xdM-JA-UcQ"/> | ||
| 188 | + </constraints> | ||
| 189 | + </view> | ||
| 190 | + </subviews> | ||
| 191 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> | ||
| 192 | + <constraints> | ||
| 193 | + <constraint firstItem="eXd-TY-qlW" firstAttribute="width" secondItem="tqb-X5-ujR" secondAttribute="width" multiplier="2:3" id="28b-2f-9yl"/> | ||
| 194 | + <constraint firstAttribute="bottom" secondItem="pzO-1N-Vrz" secondAttribute="bottom" constant="8" id="AcS-52-YRY"/> | ||
| 195 | + <constraint firstAttribute="height" constant="220" id="JHj-W0-zAJ"/> | ||
| 196 | + <constraint firstItem="pzO-1N-Vrz" firstAttribute="width" secondItem="Qs2-9k-jbh" secondAttribute="width" id="RHT-EX-Fz6"/> | ||
| 197 | + <constraint firstItem="eXd-TY-qlW" firstAttribute="centerX" secondItem="tqb-X5-ujR" secondAttribute="centerX" id="Yap-fj-Sza"/> | ||
| 198 | + <constraint firstItem="pzO-1N-Vrz" firstAttribute="top" secondItem="Qs2-9k-jbh" secondAttribute="bottom" constant="8" id="YqV-mN-jUi"/> | ||
| 199 | + <constraint firstItem="Qs2-9k-jbh" firstAttribute="centerX" secondItem="tqb-X5-ujR" secondAttribute="centerX" id="icb-A7-CtC"/> | ||
| 200 | + <constraint firstItem="Qs2-9k-jbh" firstAttribute="width" secondItem="eXd-TY-qlW" secondAttribute="width" id="ipD-di-CWB"/> | ||
| 201 | + <constraint firstItem="pzO-1N-Vrz" firstAttribute="centerX" secondItem="tqb-X5-ujR" secondAttribute="centerX" id="o6l-Fj-Cb6"/> | ||
| 202 | + <constraint firstItem="eXd-TY-qlW" firstAttribute="top" secondItem="tqb-X5-ujR" secondAttribute="top" id="uPt-SF-Tbq"/> | ||
| 203 | + </constraints> | ||
| 204 | + </view> | ||
| 205 | + </subviews> | ||
| 206 | + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 207 | + <gestureRecognizers/> | ||
| 208 | + <constraints> | ||
| 209 | + <constraint firstItem="agc-xf-u2B" firstAttribute="top" secondItem="Bob-Ef-450" secondAttribute="bottom" id="1po-1a-xaB"/> | ||
| 210 | + <constraint firstItem="Bob-Ef-450" firstAttribute="leading" secondItem="rVC-Df-GKu" secondAttribute="leading" id="7Sq-vg-TJG"/> | ||
| 211 | + <constraint firstAttribute="trailing" secondItem="tqb-X5-ujR" secondAttribute="trailing" id="F9s-LV-2UW"/> | ||
| 212 | + <constraint firstItem="tqb-X5-ujR" firstAttribute="top" secondItem="M3F-7t-f1g" secondAttribute="bottom" constant="166" id="Oea-d4-0BB"/> | ||
| 213 | + <constraint firstItem="Bob-Ef-450" firstAttribute="top" secondItem="rVC-Df-GKu" secondAttribute="top" id="TCI-Vu-vUz"/> | ||
| 214 | + <constraint firstAttribute="trailing" secondItem="Bob-Ef-450" secondAttribute="trailing" id="y4W-E4-8L6"/> | ||
| 215 | + <constraint firstItem="tqb-X5-ujR" firstAttribute="leading" secondItem="rVC-Df-GKu" secondAttribute="leading" id="zlD-w4-YPr"/> | ||
| 216 | + </constraints> | ||
| 217 | + <connections> | ||
| 218 | + <outletCollection property="gestureRecognizers" destination="X5v-TO-Lu5" appends="YES" id="QuA-4X-qlp"/> | ||
| 219 | + </connections> | ||
| 220 | + </view> | ||
| 221 | + <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> | ||
| 222 | + <size key="freeformSize" width="375" height="667"/> | ||
| 223 | + <connections> | ||
| 224 | + <outlet property="changeViewTop" destination="Oea-d4-0BB" id="FSX-wE-ENn"/> | ||
| 225 | + <outlet property="passwordTextField" destination="nVn-EA-yWM" id="k8J-rx-Oub"/> | ||
| 226 | + <outlet property="phoneNumberTextField" destination="IzH-dB-I9H" id="7Kd-jZ-pC2"/> | ||
| 227 | + </connections> | ||
| 228 | + </viewController> | ||
| 229 | + <placeholder placeholderIdentifier="IBFirstResponder" id="4gl-mL-off" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 230 | + <tapGestureRecognizer id="X5v-TO-Lu5"> | ||
| 231 | + <connections> | ||
| 232 | + <action selector="touchAction:" destination="fvc-9c-Gca" id="oP2-EM-bgW"/> | ||
| 233 | + </connections> | ||
| 234 | + </tapGestureRecognizer> | ||
| 235 | + </objects> | ||
| 236 | + <point key="canvasLocation" x="-1468" y="1534.1829085457273"/> | ||
| 237 | + </scene> | ||
| 238 | + <!--个人设置--> | ||
| 239 | + <scene sceneID="7Fy-nr-XeV"> | ||
| 240 | + <objects> | ||
| 241 | + <viewController storyboardIdentifier="PersonalSettingViewControllerVC" id="zag-ex-Ns7" customClass="PersonalSettingViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 242 | + <layoutGuides> | ||
| 243 | + <viewControllerLayoutGuide type="top" id="UCq-di-1FE"/> | ||
| 244 | + <viewControllerLayoutGuide type="bottom" id="6c4-3r-MCg"/> | ||
| 245 | + </layoutGuides> | ||
| 246 | + <view key="view" contentMode="scaleToFill" id="ohI-ec-VmG"> | ||
| 247 | + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 248 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 249 | + <subviews> | ||
| 250 | + <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="zVa-Jq-aTu"> | ||
| 251 | + <rect key="frame" x="0.0" y="64" width="375" height="535"/> | ||
| 252 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 253 | + <view key="tableFooterView" contentMode="scaleToFill" id="12C-tj-ZV7"> | ||
| 254 | + <rect key="frame" x="0.0" y="72" width="375" height="1"/> | ||
| 255 | + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
| 256 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 257 | + </view> | ||
| 258 | + <prototypes> | ||
| 259 | + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="cell" id="P7c-Ko-kqd" customClass="PersonalSettingCell" customModule="YouerLiveVideo" customModuleProvider="target"> | ||
| 260 | + <rect key="frame" x="0.0" y="28" width="375" height="44"/> | ||
| 261 | + <autoresizingMask key="autoresizingMask"/> | ||
| 262 | + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="P7c-Ko-kqd" id="Raa-86-9ng"> | ||
| 263 | + <rect key="frame" x="0.0" y="0.0" width="375" height="44"/> | ||
| 264 | + <autoresizingMask key="autoresizingMask"/> | ||
| 265 | + <subviews> | ||
| 266 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="手机号(账号)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="juK-fe-Y7f"> | ||
| 267 | + <rect key="frame" x="15" y="12" width="105" height="20.5"/> | ||
| 268 | + <constraints> | ||
| 269 | + <constraint firstAttribute="width" constant="105" id="Lby-yz-Twy"/> | ||
| 270 | + </constraints> | ||
| 271 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 272 | + <nil key="textColor"/> | ||
| 273 | + <nil key="highlightedColor"/> | ||
| 274 | + </label> | ||
| 275 | + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="收拢.png" translatesAutoresizingMaskIntoConstraints="NO" id="k9H-ER-871"> | ||
| 276 | + <rect key="frame" x="350" y="13.5" width="10" height="17"/> | ||
| 277 | + <constraints> | ||
| 278 | + <constraint firstAttribute="width" secondItem="k9H-ER-871" secondAttribute="height" multiplier="3:5" id="34k-Gi-2Ee"/> | ||
| 279 | + <constraint firstAttribute="width" constant="10" id="zRD-Rc-v5U"/> | ||
| 280 | + </constraints> | ||
| 281 | + </imageView> | ||
| 282 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pMa-ZG-7NM"> | ||
| 283 | + <rect key="frame" x="121" y="12" width="221" height="20.5"/> | ||
| 284 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 285 | + <color key="textColor" red="0.65098039220000004" green="0.65098039220000004" blue="0.6588235294" alpha="1" colorSpace="calibratedRGB"/> | ||
| 286 | + <nil key="highlightedColor"/> | ||
| 287 | + </label> | ||
| 288 | + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="oH0-ty-ODc"> | ||
| 289 | + <rect key="frame" x="312" y="7" width="30" height="30"/> | ||
| 290 | + <constraints> | ||
| 291 | + <constraint firstAttribute="width" constant="30" id="QjD-M0-idc"/> | ||
| 292 | + </constraints> | ||
| 293 | + <userDefinedRuntimeAttributes> | ||
| 294 | + <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 295 | + <integer key="value" value="15"/> | ||
| 296 | + </userDefinedRuntimeAttribute> | ||
| 297 | + <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 298 | + </userDefinedRuntimeAttributes> | ||
| 299 | + </imageView> | ||
| 300 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YOS-pR-e5K"> | ||
| 301 | + <rect key="frame" x="0.0" y="43" width="375" height="1"/> | ||
| 302 | + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 303 | + <constraints> | ||
| 304 | + <constraint firstAttribute="height" constant="1" id="XMZ-BJ-Nya"/> | ||
| 305 | + </constraints> | ||
| 306 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 307 | + <nil key="textColor"/> | ||
| 308 | + <nil key="highlightedColor"/> | ||
| 309 | + </label> | ||
| 310 | + </subviews> | ||
| 311 | + <constraints> | ||
| 312 | + <constraint firstItem="oH0-ty-ODc" firstAttribute="centerY" secondItem="Raa-86-9ng" secondAttribute="centerY" id="0Ml-yS-EZ4"/> | ||
| 313 | + <constraint firstItem="pMa-ZG-7NM" firstAttribute="centerY" secondItem="Raa-86-9ng" secondAttribute="centerY" id="9i5-Ih-kN3"/> | ||
| 314 | + <constraint firstItem="oH0-ty-ODc" firstAttribute="width" secondItem="oH0-ty-ODc" secondAttribute="height" multiplier="1:1" id="L8W-NL-DGV"/> | ||
| 315 | + <constraint firstItem="juK-fe-Y7f" firstAttribute="leading" secondItem="Raa-86-9ng" secondAttribute="leading" constant="15" id="PDU-zE-jvH"/> | ||
| 316 | + <constraint firstItem="k9H-ER-871" firstAttribute="leading" secondItem="oH0-ty-ODc" secondAttribute="trailing" constant="8" id="PPI-rR-Ewq"/> | ||
| 317 | + <constraint firstItem="YOS-pR-e5K" firstAttribute="leading" secondItem="Raa-86-9ng" secondAttribute="leading" id="bQa-xi-SKl"/> | ||
| 318 | + <constraint firstItem="k9H-ER-871" firstAttribute="leading" secondItem="pMa-ZG-7NM" secondAttribute="trailing" constant="8" id="cZi-Wn-11t"/> | ||
| 319 | + <constraint firstAttribute="trailing" secondItem="YOS-pR-e5K" secondAttribute="trailing" id="ecZ-Tm-SQO"/> | ||
| 320 | + <constraint firstItem="juK-fe-Y7f" firstAttribute="centerY" secondItem="Raa-86-9ng" secondAttribute="centerY" id="hBl-MZ-jo2"/> | ||
| 321 | + <constraint firstAttribute="bottom" secondItem="YOS-pR-e5K" secondAttribute="bottom" id="k7i-5l-x8C"/> | ||
| 322 | + <constraint firstItem="pMa-ZG-7NM" firstAttribute="leading" secondItem="juK-fe-Y7f" secondAttribute="trailing" constant="1" id="oSX-xs-mQG"/> | ||
| 323 | + <constraint firstItem="k9H-ER-871" firstAttribute="centerY" secondItem="Raa-86-9ng" secondAttribute="centerY" id="x0P-SE-6dn"/> | ||
| 324 | + <constraint firstAttribute="trailing" secondItem="k9H-ER-871" secondAttribute="trailing" constant="15" id="yL7-gI-6Bh"/> | ||
| 325 | + </constraints> | ||
| 326 | + </tableViewCellContentView> | ||
| 327 | + <connections> | ||
| 328 | + <outlet property="imagePhoto" destination="oH0-ty-ODc" id="iQv-S2-ItJ"/> | ||
| 329 | + <outlet property="nameLabelRightSpace" destination="cZi-Wn-11t" id="Wls-8Y-XeT"/> | ||
| 330 | + <outlet property="nameTitleLabel" destination="juK-fe-Y7f" id="eMi-cJ-35W"/> | ||
| 331 | + <outlet property="namelabel" destination="pMa-ZG-7NM" id="3FP-fk-MfF"/> | ||
| 332 | + <outlet property="rightArrow" destination="k9H-ER-871" id="pH9-he-yub"/> | ||
| 333 | + </connections> | ||
| 334 | + </tableViewCell> | ||
| 335 | + </prototypes> | ||
| 336 | + <connections> | ||
| 337 | + <outlet property="dataSource" destination="zag-ex-Ns7" id="h0H-BT-k7B"/> | ||
| 338 | + <outlet property="delegate" destination="zag-ex-Ns7" id="7qk-li-aJ4"/> | ||
| 339 | + </connections> | ||
| 340 | + </tableView> | ||
| 341 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Zoh-gF-GRC"> | ||
| 342 | + <rect key="frame" x="0.0" y="599" width="375" height="68"/> | ||
| 343 | + <subviews> | ||
| 344 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="O66-bx-WBX"> | ||
| 345 | + <rect key="frame" x="137.5" y="14" width="100" height="40"/> | ||
| 346 | + <color key="backgroundColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 347 | + <constraints> | ||
| 348 | + <constraint firstAttribute="height" constant="40" id="bXw-Ag-yrj"/> | ||
| 349 | + <constraint firstAttribute="width" constant="100" id="gZN-aT-Qe6"/> | ||
| 350 | + </constraints> | ||
| 351 | + <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 352 | + <state key="normal" title="退出登录"> | ||
| 353 | + <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> | ||
| 354 | + </state> | ||
| 355 | + <userDefinedRuntimeAttributes> | ||
| 356 | + <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 357 | + <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 358 | + <integer key="value" value="5"/> | ||
| 359 | + </userDefinedRuntimeAttribute> | ||
| 360 | + </userDefinedRuntimeAttributes> | ||
| 361 | + <connections> | ||
| 362 | + <action selector="ExsitBtnClickAction:" destination="zag-ex-Ns7" eventType="touchUpInside" id="cvZ-aV-t5N"/> | ||
| 363 | + </connections> | ||
| 364 | + </button> | ||
| 365 | + </subviews> | ||
| 366 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 367 | + <constraints> | ||
| 368 | + <constraint firstItem="O66-bx-WBX" firstAttribute="centerX" secondItem="Zoh-gF-GRC" secondAttribute="centerX" id="Vgd-7C-PCW"/> | ||
| 369 | + <constraint firstAttribute="height" constant="68" id="c9N-lN-Lbb"/> | ||
| 370 | + <constraint firstItem="O66-bx-WBX" firstAttribute="centerY" secondItem="Zoh-gF-GRC" secondAttribute="centerY" id="gPv-om-cWX"/> | ||
| 371 | + </constraints> | ||
| 372 | + </view> | ||
| 373 | + </subviews> | ||
| 374 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 375 | + <constraints> | ||
| 376 | + <constraint firstAttribute="trailing" secondItem="Zoh-gF-GRC" secondAttribute="trailing" id="28G-9t-FM1"/> | ||
| 377 | + <constraint firstItem="Zoh-gF-GRC" firstAttribute="top" secondItem="zVa-Jq-aTu" secondAttribute="bottom" id="5df-U2-nj5"/> | ||
| 378 | + <constraint firstItem="zVa-Jq-aTu" firstAttribute="top" secondItem="UCq-di-1FE" secondAttribute="bottom" id="QDW-Hg-bFk"/> | ||
| 379 | + <constraint firstAttribute="trailing" secondItem="zVa-Jq-aTu" secondAttribute="trailing" id="gmi-IS-fwG"/> | ||
| 380 | + <constraint firstItem="6c4-3r-MCg" firstAttribute="top" secondItem="Zoh-gF-GRC" secondAttribute="bottom" id="oJI-li-9v7"/> | ||
| 381 | + <constraint firstItem="Zoh-gF-GRC" firstAttribute="leading" secondItem="ohI-ec-VmG" secondAttribute="leading" id="w19-By-97X"/> | ||
| 382 | + <constraint firstItem="zVa-Jq-aTu" firstAttribute="leading" secondItem="ohI-ec-VmG" secondAttribute="leading" id="yos-vH-UlZ"/> | ||
| 383 | + </constraints> | ||
| 384 | + </view> | ||
| 385 | + <navigationItem key="navigationItem" title="个人设置" id="oam-jc-du0"> | ||
| 386 | + <barButtonItem key="rightBarButtonItem" title="修改" id="HPL-MW-tPy"> | ||
| 387 | + <connections> | ||
| 388 | + <action selector="finishAction:" destination="zag-ex-Ns7" id="vYu-XV-Oz1"/> | ||
| 389 | + </connections> | ||
| 390 | + </barButtonItem> | ||
| 391 | + </navigationItem> | ||
| 392 | + <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/> | ||
| 393 | + <connections> | ||
| 394 | + <outlet property="loginoutBtn" destination="O66-bx-WBX" id="yBh-45-PmW"/> | ||
| 395 | + <outlet property="rightBarBtn" destination="HPL-MW-tPy" id="iWY-Ng-b1p"/> | ||
| 396 | + <outlet property="userSettingTableView" destination="zVa-Jq-aTu" id="62H-Yg-00D"/> | ||
| 397 | + </connections> | ||
| 398 | + </viewController> | ||
| 399 | + <placeholder placeholderIdentifier="IBFirstResponder" id="Kw5-Rz-kOp" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 400 | + </objects> | ||
| 401 | + <point key="canvasLocation" x="-774" y="1534"/> | ||
| 402 | + </scene> | ||
| 403 | + <!--Register View Controller--> | ||
| 404 | + <scene sceneID="81Y-IJ-Kye"> | ||
| 405 | + <objects> | ||
| 406 | + <viewController storyboardIdentifier="RegisterViewControllerVC" id="tCx-JF-YJm" customClass="RegisterViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 407 | + <layoutGuides> | ||
| 408 | + <viewControllerLayoutGuide type="top" id="o4V-sv-MMh"/> | ||
| 409 | + <viewControllerLayoutGuide type="bottom" id="T9H-hV-piI"/> | ||
| 410 | + </layoutGuides> | ||
| 411 | + <view key="view" contentMode="scaleToFill" id="i7O-Dj-x5S" customClass="UIControl"> | ||
| 412 | + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 413 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 414 | + <subviews> | ||
| 415 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="403-Gp-RaZ" customClass="UIControl"> | ||
| 416 | + <rect key="frame" x="0.0" y="20" width="375" height="168"/> | ||
| 417 | + <subviews> | ||
| 418 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8h8-sS-iJ1"> | ||
| 419 | + <rect key="frame" x="138" y="15" width="99" height="99"/> | ||
| 420 | + <subviews> | ||
| 421 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="上传头像" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MjO-1h-doT"> | ||
| 422 | + <rect key="frame" x="15" y="73" width="69.5" height="20.5"/> | ||
| 423 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 424 | + <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 425 | + <nil key="highlightedColor"/> | ||
| 426 | + </label> | ||
| 427 | + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="上传头像.png" translatesAutoresizingMaskIntoConstraints="NO" id="1fC-6m-eDG"> | ||
| 428 | + <rect key="frame" x="24.5" y="15" width="50" height="50"/> | ||
| 429 | + <constraints> | ||
| 430 | + <constraint firstAttribute="width" secondItem="1fC-6m-eDG" secondAttribute="height" multiplier="1:1" id="nya-81-raI"/> | ||
| 431 | + <constraint firstAttribute="height" constant="50" id="uJA-jF-kBe"/> | ||
| 432 | + </constraints> | ||
| 433 | + </imageView> | ||
| 434 | + </subviews> | ||
| 435 | + <color key="backgroundColor" red="0.1058823529" green="0.82745098039999998" blue="0.74509803919999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 436 | + <gestureRecognizers/> | ||
| 437 | + <constraints> | ||
| 438 | + <constraint firstAttribute="width" secondItem="8h8-sS-iJ1" secondAttribute="height" multiplier="1:1" id="1dO-fX-vcH"/> | ||
| 439 | + <constraint firstItem="1fC-6m-eDG" firstAttribute="top" secondItem="8h8-sS-iJ1" secondAttribute="top" constant="15" id="AZr-hi-5Ga"/> | ||
| 440 | + <constraint firstAttribute="height" constant="99" id="EKP-qi-zdc"/> | ||
| 441 | + <constraint firstAttribute="bottom" secondItem="1fC-6m-eDG" secondAttribute="bottom" constant="8" id="HCk-K2-bD9"/> | ||
| 442 | + <constraint firstItem="MjO-1h-doT" firstAttribute="top" secondItem="1fC-6m-eDG" secondAttribute="bottom" constant="8" id="gDm-wv-uVd"/> | ||
| 443 | + <constraint firstItem="MjO-1h-doT" firstAttribute="centerX" secondItem="8h8-sS-iJ1" secondAttribute="centerX" id="lEb-LK-Ayk"/> | ||
| 444 | + <constraint firstItem="1fC-6m-eDG" firstAttribute="centerX" secondItem="8h8-sS-iJ1" secondAttribute="centerX" id="nF9-Di-ODB"/> | ||
| 445 | + <constraint firstAttribute="bottom" secondItem="MjO-1h-doT" secondAttribute="bottom" constant="16" id="sgC-7Y-LpN"/> | ||
| 446 | + </constraints> | ||
| 447 | + <variation key="default"> | ||
| 448 | + <mask key="constraints"> | ||
| 449 | + <exclude reference="HCk-K2-bD9"/> | ||
| 450 | + <exclude reference="sgC-7Y-LpN"/> | ||
| 451 | + </mask> | ||
| 452 | + </variation> | ||
| 453 | + <connections> | ||
| 454 | + <outletCollection property="gestureRecognizers" destination="aUf-CI-Y7V" appends="YES" id="6fC-6y-84F"/> | ||
| 455 | + </connections> | ||
| 456 | + </view> | ||
| 457 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="HCl-PT-sCJ"> | ||
| 458 | + <rect key="frame" x="130.5" y="118" width="114.5" height="30"/> | ||
| 459 | + <subviews> | ||
| 460 | + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="编辑.png" translatesAutoresizingMaskIntoConstraints="NO" id="YJG-jG-Ix8"> | ||
| 461 | + <rect key="frame" x="85.5" y="4.5" width="21" height="21"/> | ||
| 462 | + <constraints> | ||
| 463 | + <constraint firstAttribute="width" secondItem="YJG-jG-Ix8" secondAttribute="height" multiplier="1:1" id="nDw-SN-tx9"/> | ||
| 464 | + <constraint firstAttribute="height" constant="21" id="qhY-Et-icJ"/> | ||
| 465 | + </constraints> | ||
| 466 | + </imageView> | ||
| 467 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="设置昵称" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gj6-hl-Apj"> | ||
| 468 | + <rect key="frame" x="8" y="5" width="69.5" height="20.5"/> | ||
| 469 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 470 | + <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 471 | + <nil key="highlightedColor"/> | ||
| 472 | + </label> | ||
| 473 | + </subviews> | ||
| 474 | + <color key="backgroundColor" red="0.1058823529" green="0.82745098039999998" blue="0.74509803919999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 475 | + <gestureRecognizers/> | ||
| 476 | + <constraints> | ||
| 477 | + <constraint firstItem="YJG-jG-Ix8" firstAttribute="centerY" secondItem="HCl-PT-sCJ" secondAttribute="centerY" id="3WR-sv-c0Q"/> | ||
| 478 | + <constraint firstItem="gj6-hl-Apj" firstAttribute="centerY" secondItem="HCl-PT-sCJ" secondAttribute="centerY" id="Dwp-Af-mLC"/> | ||
| 479 | + <constraint firstItem="YJG-jG-Ix8" firstAttribute="leading" secondItem="gj6-hl-Apj" secondAttribute="trailing" constant="8" id="Yb9-mh-0fe"/> | ||
| 480 | + <constraint firstItem="gj6-hl-Apj" firstAttribute="leading" secondItem="HCl-PT-sCJ" secondAttribute="leading" constant="8" id="kI8-65-C8Y"/> | ||
| 481 | + <constraint firstAttribute="height" constant="30" id="laK-t9-f5W"/> | ||
| 482 | + <constraint firstAttribute="trailing" secondItem="YJG-jG-Ix8" secondAttribute="trailing" constant="8" id="peS-OS-VwR"/> | ||
| 483 | + </constraints> | ||
| 484 | + <connections> | ||
| 485 | + <outletCollection property="gestureRecognizers" destination="hfJ-NM-sst" appends="YES" id="AW1-A1-TlG"/> | ||
| 486 | + </connections> | ||
| 487 | + </view> | ||
| 488 | + </subviews> | ||
| 489 | + <color key="backgroundColor" red="0.1058823529" green="0.82745098039999998" blue="0.74509803919999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 490 | + <constraints> | ||
| 491 | + <constraint firstItem="8h8-sS-iJ1" firstAttribute="top" secondItem="403-Gp-RaZ" secondAttribute="top" constant="15" id="2WG-wR-ZQY"/> | ||
| 492 | + <constraint firstItem="HCl-PT-sCJ" firstAttribute="centerX" secondItem="403-Gp-RaZ" secondAttribute="centerX" id="Ctu-87-5Xl"/> | ||
| 493 | + <constraint firstItem="HCl-PT-sCJ" firstAttribute="top" secondItem="8h8-sS-iJ1" secondAttribute="bottom" constant="4" id="GK6-Qh-dBO"/> | ||
| 494 | + <constraint firstItem="HCl-PT-sCJ" firstAttribute="top" secondItem="8h8-sS-iJ1" secondAttribute="bottom" constant="8" id="QPI-Mk-b8n"/> | ||
| 495 | + <constraint firstAttribute="height" constant="168" id="yi6-JV-ObE"/> | ||
| 496 | + <constraint firstItem="8h8-sS-iJ1" firstAttribute="centerX" secondItem="403-Gp-RaZ" secondAttribute="centerX" id="yrY-zt-nHi"/> | ||
| 497 | + </constraints> | ||
| 498 | + <variation key="default"> | ||
| 499 | + <mask key="constraints"> | ||
| 500 | + <exclude reference="QPI-Mk-b8n"/> | ||
| 501 | + </mask> | ||
| 502 | + </variation> | ||
| 503 | + </view> | ||
| 504 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xNc-I3-UL6"> | ||
| 505 | + <rect key="frame" x="0.0" y="20" width="375" height="168"/> | ||
| 506 | + <subviews> | ||
| 507 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1Cp-hz-9O4"> | ||
| 508 | + <rect key="frame" x="0.0" y="0.0" width="375" height="56"/> | ||
| 509 | + <subviews> | ||
| 510 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="o5G-fF-wVL"> | ||
| 511 | + <rect key="frame" x="0.0" y="55" width="375" height="1"/> | ||
| 512 | + <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 513 | + <constraints> | ||
| 514 | + <constraint firstAttribute="height" constant="1" id="lXH-lx-MSn"/> | ||
| 515 | + </constraints> | ||
| 516 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 517 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 518 | + <nil key="highlightedColor"/> | ||
| 519 | + </label> | ||
| 520 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="昵称" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="O8o-oN-LAH"> | ||
| 521 | + <rect key="frame" x="8" y="19" width="73" height="18"/> | ||
| 522 | + <constraints> | ||
| 523 | + <constraint firstAttribute="width" constant="73" id="bAz-Uv-bTd"/> | ||
| 524 | + </constraints> | ||
| 525 | + <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 526 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 527 | + <nil key="highlightedColor"/> | ||
| 528 | + </label> | ||
| 529 | + <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入昵称 " minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="q7i-9n-2oP"> | ||
| 530 | + <rect key="frame" x="89" y="18.5" width="278" height="19"/> | ||
| 531 | + <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 532 | + <textInputTraits key="textInputTraits" returnKeyType="done"/> | ||
| 533 | + </textField> | ||
| 534 | + </subviews> | ||
| 535 | + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 536 | + <constraints> | ||
| 537 | + <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="56" id="Ctl-Pt-CPh"/> | ||
| 538 | + <constraint firstItem="o5G-fF-wVL" firstAttribute="leading" secondItem="1Cp-hz-9O4" secondAttribute="leading" id="RLm-KI-JX6"/> | ||
| 539 | + <constraint firstAttribute="height" constant="56" id="UfT-BQ-siu"/> | ||
| 540 | + <constraint firstItem="O8o-oN-LAH" firstAttribute="leading" secondItem="1Cp-hz-9O4" secondAttribute="leading" constant="8" id="XGD-rw-eCb"/> | ||
| 541 | + <constraint firstAttribute="trailing" secondItem="q7i-9n-2oP" secondAttribute="trailing" constant="8" id="YdO-o5-5VF"/> | ||
| 542 | + <constraint firstAttribute="bottom" secondItem="o5G-fF-wVL" secondAttribute="bottom" id="f6j-pG-Rae"/> | ||
| 543 | + <constraint firstItem="q7i-9n-2oP" firstAttribute="centerY" secondItem="1Cp-hz-9O4" secondAttribute="centerY" id="fKp-1x-vbL"/> | ||
| 544 | + <constraint firstItem="q7i-9n-2oP" firstAttribute="leading" secondItem="O8o-oN-LAH" secondAttribute="trailing" constant="8" id="gEm-U9-rh0"/> | ||
| 545 | + <constraint firstItem="O8o-oN-LAH" firstAttribute="centerY" secondItem="1Cp-hz-9O4" secondAttribute="centerY" id="t0o-1a-As6"/> | ||
| 546 | + <constraint firstAttribute="trailing" secondItem="o5G-fF-wVL" secondAttribute="trailing" id="wvf-Cp-571"/> | ||
| 547 | + </constraints> | ||
| 548 | + </view> | ||
| 549 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="keu-Ke-SrA"> | ||
| 550 | + <rect key="frame" x="0.0" y="56" width="375" height="56"/> | ||
| 551 | + <subviews> | ||
| 552 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Hwy-QV-ob8"> | ||
| 553 | + <rect key="frame" x="0.0" y="55" width="375" height="1"/> | ||
| 554 | + <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 555 | + <constraints> | ||
| 556 | + <constraint firstAttribute="height" constant="1" id="1bP-ob-qdI"/> | ||
| 557 | + </constraints> | ||
| 558 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 559 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 560 | + <nil key="highlightedColor"/> | ||
| 561 | + </label> | ||
| 562 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="密码" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xBV-ds-Ub9"> | ||
| 563 | + <rect key="frame" x="8" y="19" width="73" height="18"/> | ||
| 564 | + <constraints> | ||
| 565 | + <constraint firstAttribute="width" constant="73" id="SAa-QZ-uJF"/> | ||
| 566 | + </constraints> | ||
| 567 | + <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 568 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 569 | + <nil key="highlightedColor"/> | ||
| 570 | + </label> | ||
| 571 | + <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入密码" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="i3R-4H-gzp"> | ||
| 572 | + <rect key="frame" x="89" y="18.5" width="278" height="19"/> | ||
| 573 | + <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 574 | + <textInputTraits key="textInputTraits" keyboardType="alphabet" returnKeyType="done"/> | ||
| 575 | + <connections> | ||
| 576 | + <outlet property="delegate" destination="tCx-JF-YJm" id="Awg-pn-DAx"/> | ||
| 577 | + </connections> | ||
| 578 | + </textField> | ||
| 579 | + </subviews> | ||
| 580 | + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 581 | + <constraints> | ||
| 582 | + <constraint firstAttribute="bottom" secondItem="Hwy-QV-ob8" secondAttribute="bottom" id="Cf7-PL-DRi"/> | ||
| 583 | + <constraint firstItem="xBV-ds-Ub9" firstAttribute="leading" secondItem="keu-Ke-SrA" secondAttribute="leading" constant="8" id="F8L-Q3-KCF"/> | ||
| 584 | + <constraint firstAttribute="trailing" secondItem="i3R-4H-gzp" secondAttribute="trailing" constant="8" id="XnD-Fb-exn"/> | ||
| 585 | + <constraint firstAttribute="trailing" secondItem="Hwy-QV-ob8" secondAttribute="trailing" id="cUW-Va-u0h"/> | ||
| 586 | + <constraint firstItem="i3R-4H-gzp" firstAttribute="leading" secondItem="xBV-ds-Ub9" secondAttribute="trailing" constant="8" id="cZ8-V2-oKV"/> | ||
| 587 | + <constraint firstAttribute="height" constant="56" id="it2-lJ-vPD"/> | ||
| 588 | + <constraint firstItem="i3R-4H-gzp" firstAttribute="centerY" secondItem="keu-Ke-SrA" secondAttribute="centerY" id="j86-kg-M0P"/> | ||
| 589 | + <constraint firstItem="xBV-ds-Ub9" firstAttribute="centerY" secondItem="keu-Ke-SrA" secondAttribute="centerY" id="lQ9-Xe-gvX"/> | ||
| 590 | + <constraint firstItem="Hwy-QV-ob8" firstAttribute="leading" secondItem="keu-Ke-SrA" secondAttribute="leading" id="ws3-Zb-SqH"/> | ||
| 591 | + </constraints> | ||
| 592 | + </view> | ||
| 593 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cnM-5P-fhN"> | ||
| 594 | + <rect key="frame" x="0.0" y="112" width="375" height="56"/> | ||
| 595 | + <subviews> | ||
| 596 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7YJ-fu-e63"> | ||
| 597 | + <rect key="frame" x="0.0" y="55" width="375" height="1"/> | ||
| 598 | + <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 599 | + <constraints> | ||
| 600 | + <constraint firstAttribute="height" constant="1" id="Ypb-br-LFg"/> | ||
| 601 | + </constraints> | ||
| 602 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 603 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 604 | + <nil key="highlightedColor"/> | ||
| 605 | + </label> | ||
| 606 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="确认密码" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xtu-Lb-h46"> | ||
| 607 | + <rect key="frame" x="8" y="19" width="73" height="18"/> | ||
| 608 | + <constraints> | ||
| 609 | + <constraint firstAttribute="width" constant="73" id="A5Z-hk-VeN"/> | ||
| 610 | + </constraints> | ||
| 611 | + <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 612 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 613 | + <nil key="highlightedColor"/> | ||
| 614 | + </label> | ||
| 615 | + <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请确认密码" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="4Ko-iM-kKY"> | ||
| 616 | + <rect key="frame" x="89" y="18.5" width="278" height="19"/> | ||
| 617 | + <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 618 | + <textInputTraits key="textInputTraits" keyboardType="alphabet" returnKeyType="done"/> | ||
| 619 | + <connections> | ||
| 620 | + <outlet property="delegate" destination="tCx-JF-YJm" id="kVV-m8-92v"/> | ||
| 621 | + </connections> | ||
| 622 | + </textField> | ||
| 623 | + </subviews> | ||
| 624 | + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 625 | + <constraints> | ||
| 626 | + <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="56" id="48F-9G-Fge"/> | ||
| 627 | + <constraint firstAttribute="trailing" secondItem="4Ko-iM-kKY" secondAttribute="trailing" constant="8" id="4fh-zG-9vl"/> | ||
| 628 | + <constraint firstAttribute="bottom" secondItem="7YJ-fu-e63" secondAttribute="bottom" id="9wD-aU-bMP"/> | ||
| 629 | + <constraint firstAttribute="trailing" secondItem="7YJ-fu-e63" secondAttribute="trailing" id="EjA-4T-fxE"/> | ||
| 630 | + <constraint firstItem="xtu-Lb-h46" firstAttribute="centerY" secondItem="cnM-5P-fhN" secondAttribute="centerY" id="HSA-Ou-onT"/> | ||
| 631 | + <constraint firstItem="4Ko-iM-kKY" firstAttribute="leading" secondItem="xtu-Lb-h46" secondAttribute="trailing" constant="8" id="aYk-72-GQD"/> | ||
| 632 | + <constraint firstItem="xtu-Lb-h46" firstAttribute="leading" secondItem="cnM-5P-fhN" secondAttribute="leading" constant="8" id="kbK-3X-65q"/> | ||
| 633 | + <constraint firstItem="7YJ-fu-e63" firstAttribute="leading" secondItem="cnM-5P-fhN" secondAttribute="leading" id="rhc-YS-Jug"/> | ||
| 634 | + <constraint firstAttribute="height" constant="56" id="ucM-EP-0Bc"/> | ||
| 635 | + <constraint firstItem="4Ko-iM-kKY" firstAttribute="centerY" secondItem="cnM-5P-fhN" secondAttribute="centerY" id="wja-1l-Xos"/> | ||
| 636 | + </constraints> | ||
| 637 | + </view> | ||
| 638 | + </subviews> | ||
| 639 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 640 | + <constraints> | ||
| 641 | + <constraint firstItem="keu-Ke-SrA" firstAttribute="top" secondItem="1Cp-hz-9O4" secondAttribute="bottom" id="Pee-iB-XUj"/> | ||
| 642 | + <constraint firstItem="cnM-5P-fhN" firstAttribute="leading" secondItem="xNc-I3-UL6" secondAttribute="leading" id="R9s-jK-AYa"/> | ||
| 643 | + <constraint firstAttribute="trailing" secondItem="1Cp-hz-9O4" secondAttribute="trailing" id="Rib-CM-97d"/> | ||
| 644 | + <constraint firstAttribute="height" constant="168" id="SWN-6C-I6R"/> | ||
| 645 | + <constraint firstAttribute="trailing" secondItem="cnM-5P-fhN" secondAttribute="trailing" id="U6d-yM-lM8"/> | ||
| 646 | + <constraint firstItem="1Cp-hz-9O4" firstAttribute="top" secondItem="xNc-I3-UL6" secondAttribute="top" id="elW-dc-FcY"/> | ||
| 647 | + <constraint firstItem="keu-Ke-SrA" firstAttribute="leading" secondItem="xNc-I3-UL6" secondAttribute="leading" id="gcJ-t2-OJH"/> | ||
| 648 | + <constraint firstItem="cnM-5P-fhN" firstAttribute="top" secondItem="keu-Ke-SrA" secondAttribute="bottom" id="hnn-cd-Hsj"/> | ||
| 649 | + <constraint firstAttribute="bottom" secondItem="cnM-5P-fhN" secondAttribute="bottom" id="k46-eB-0tn"/> | ||
| 650 | + <constraint firstAttribute="trailing" secondItem="keu-Ke-SrA" secondAttribute="trailing" id="lAV-sR-cpV"/> | ||
| 651 | + <constraint firstItem="1Cp-hz-9O4" firstAttribute="leading" secondItem="xNc-I3-UL6" secondAttribute="leading" id="o9e-5H-Do7"/> | ||
| 652 | + </constraints> | ||
| 653 | + </view> | ||
| 654 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rSF-LZ-Bnl"> | ||
| 655 | + <rect key="frame" x="0.0" y="188" width="375" height="112"/> | ||
| 656 | + <subviews> | ||
| 657 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vkP-pb-ydp"> | ||
| 658 | + <rect key="frame" x="0.0" y="0.0" width="375" height="56"/> | ||
| 659 | + <subviews> | ||
| 660 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MEf-rE-fBh"> | ||
| 661 | + <rect key="frame" x="0.0" y="55" width="375" height="1"/> | ||
| 662 | + <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 663 | + <constraints> | ||
| 664 | + <constraint firstAttribute="height" constant="1" id="cle-RJ-6tm"/> | ||
| 665 | + </constraints> | ||
| 666 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 667 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 668 | + <nil key="highlightedColor"/> | ||
| 669 | + </label> | ||
| 670 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="+86" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ae8-Wz-CYH"> | ||
| 671 | + <rect key="frame" x="8" y="19" width="73" height="18"/> | ||
| 672 | + <constraints> | ||
| 673 | + <constraint firstAttribute="width" constant="73" id="gFs-fM-1Vg"/> | ||
| 674 | + </constraints> | ||
| 675 | + <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 676 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 677 | + <nil key="highlightedColor"/> | ||
| 678 | + </label> | ||
| 679 | + <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入手机号码 " minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="nVJ-81-bXY"> | ||
| 680 | + <rect key="frame" x="89" y="18.5" width="123.5" height="19"/> | ||
| 681 | + <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 682 | + <textInputTraits key="textInputTraits" keyboardType="numberPad" returnKeyType="done"/> | ||
| 683 | + <connections> | ||
| 684 | + <outlet property="delegate" destination="tCx-JF-YJm" id="xWv-of-0Wb"/> | ||
| 685 | + </connections> | ||
| 686 | + </textField> | ||
| 687 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hwv-0n-dsf"> | ||
| 688 | + <rect key="frame" x="274" y="13" width="93" height="30"/> | ||
| 689 | + <color key="backgroundColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 690 | + <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 691 | + <state key="normal" title=" 发送验证码 "> | ||
| 692 | + <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 693 | + </state> | ||
| 694 | + <userDefinedRuntimeAttributes> | ||
| 695 | + <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 696 | + <integer key="value" value="15"/> | ||
| 697 | + </userDefinedRuntimeAttribute> | ||
| 698 | + <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 699 | + </userDefinedRuntimeAttributes> | ||
| 700 | + <connections> | ||
| 701 | + <action selector="sendVerificationCodeClickAction:" destination="tCx-JF-YJm" eventType="touchUpInside" id="Agj-2K-dbp"/> | ||
| 702 | + </connections> | ||
| 703 | + </button> | ||
| 704 | + </subviews> | ||
| 705 | + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 706 | + <constraints> | ||
| 707 | + <constraint firstItem="MEf-rE-fBh" firstAttribute="leading" secondItem="vkP-pb-ydp" secondAttribute="leading" id="2A5-sj-MgA"/> | ||
| 708 | + <constraint firstItem="ae8-Wz-CYH" firstAttribute="centerY" secondItem="vkP-pb-ydp" secondAttribute="centerY" id="Dfi-Pp-DOa"/> | ||
| 709 | + <constraint firstItem="nVJ-81-bXY" firstAttribute="centerY" secondItem="vkP-pb-ydp" secondAttribute="centerY" id="Q9B-BF-wWO"/> | ||
| 710 | + <constraint firstAttribute="height" constant="56" id="d5e-TR-xj8"/> | ||
| 711 | + <constraint firstItem="ae8-Wz-CYH" firstAttribute="leading" secondItem="vkP-pb-ydp" secondAttribute="leading" constant="8" id="fAZ-jT-eye"/> | ||
| 712 | + <constraint firstAttribute="trailing" secondItem="hwv-0n-dsf" secondAttribute="trailing" constant="8" id="jCe-9b-HiL"/> | ||
| 713 | + <constraint firstItem="hwv-0n-dsf" firstAttribute="centerY" secondItem="vkP-pb-ydp" secondAttribute="centerY" id="mgL-oA-0oG"/> | ||
| 714 | + <constraint firstAttribute="trailing" secondItem="MEf-rE-fBh" secondAttribute="trailing" id="nEG-6h-NXY"/> | ||
| 715 | + <constraint firstAttribute="bottom" secondItem="MEf-rE-fBh" secondAttribute="bottom" id="y9Q-1X-3wy"/> | ||
| 716 | + <constraint firstItem="nVJ-81-bXY" firstAttribute="leading" secondItem="ae8-Wz-CYH" secondAttribute="trailing" constant="8" id="zxS-jB-eC8"/> | ||
| 717 | + </constraints> | ||
| 718 | + </view> | ||
| 719 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IlU-p3-aLY"> | ||
| 720 | + <rect key="frame" x="0.0" y="56" width="375" height="56"/> | ||
| 721 | + <subviews> | ||
| 722 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SOB-G4-Kln"> | ||
| 723 | + <rect key="frame" x="0.0" y="55" width="375" height="1"/> | ||
| 724 | + <color key="backgroundColor" red="0.94117647059999998" green="0.93725490199999995" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 725 | + <constraints> | ||
| 726 | + <constraint firstAttribute="height" constant="1" id="3yq-4f-vDW"/> | ||
| 727 | + </constraints> | ||
| 728 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 729 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 730 | + <nil key="highlightedColor"/> | ||
| 731 | + </label> | ||
| 732 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="验证码" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KmI-sz-jsA"> | ||
| 733 | + <rect key="frame" x="8" y="19" width="73" height="18"/> | ||
| 734 | + <constraints> | ||
| 735 | + <constraint firstAttribute="width" constant="73" id="ngh-2s-quJ"/> | ||
| 736 | + </constraints> | ||
| 737 | + <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 738 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 739 | + <nil key="highlightedColor"/> | ||
| 740 | + </label> | ||
| 741 | + <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入验证码" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="GHW-G9-uIT"> | ||
| 742 | + <rect key="frame" x="89" y="18.5" width="278" height="19"/> | ||
| 743 | + <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 744 | + <textInputTraits key="textInputTraits" keyboardType="numberPad" returnKeyType="done"/> | ||
| 745 | + <connections> | ||
| 746 | + <outlet property="delegate" destination="tCx-JF-YJm" id="deX-i0-lZv"/> | ||
| 747 | + </connections> | ||
| 748 | + </textField> | ||
| 749 | + </subviews> | ||
| 750 | + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 751 | + <constraints> | ||
| 752 | + <constraint firstItem="SOB-G4-Kln" firstAttribute="leading" secondItem="IlU-p3-aLY" secondAttribute="leading" id="Bpm-Op-035"/> | ||
| 753 | + <constraint firstAttribute="bottom" secondItem="SOB-G4-Kln" secondAttribute="bottom" id="KjW-FI-dyR"/> | ||
| 754 | + <constraint firstItem="GHW-G9-uIT" firstAttribute="leading" secondItem="KmI-sz-jsA" secondAttribute="trailing" constant="8" id="NWt-4e-GXU"/> | ||
| 755 | + <constraint firstAttribute="height" constant="56" id="QZA-UG-aso"/> | ||
| 756 | + <constraint firstItem="GHW-G9-uIT" firstAttribute="centerY" secondItem="IlU-p3-aLY" secondAttribute="centerY" id="SGD-Xp-h5t"/> | ||
| 757 | + <constraint firstAttribute="trailing" secondItem="SOB-G4-Kln" secondAttribute="trailing" id="ZSY-bN-JsM"/> | ||
| 758 | + <constraint firstItem="KmI-sz-jsA" firstAttribute="centerY" secondItem="IlU-p3-aLY" secondAttribute="centerY" id="dtC-at-TCi"/> | ||
| 759 | + <constraint firstItem="KmI-sz-jsA" firstAttribute="leading" secondItem="IlU-p3-aLY" secondAttribute="leading" constant="8" id="e2w-KQ-6sS"/> | ||
| 760 | + <constraint firstAttribute="trailing" secondItem="GHW-G9-uIT" secondAttribute="trailing" constant="8" id="y7F-Ik-Roe"/> | ||
| 761 | + </constraints> | ||
| 762 | + </view> | ||
| 763 | + </subviews> | ||
| 764 | + <color key="backgroundColor" red="1" green="0.42445692709999999" blue="0.35047448450000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 765 | + <constraints> | ||
| 766 | + <constraint firstAttribute="trailing" secondItem="IlU-p3-aLY" secondAttribute="trailing" id="4ga-Jf-7Ee"/> | ||
| 767 | + <constraint firstAttribute="height" constant="112" id="7NK-ZN-nyz"/> | ||
| 768 | + <constraint firstItem="vkP-pb-ydp" firstAttribute="leading" secondItem="rSF-LZ-Bnl" secondAttribute="leading" id="84d-gX-XI3"/> | ||
| 769 | + <constraint firstItem="IlU-p3-aLY" firstAttribute="top" secondItem="vkP-pb-ydp" secondAttribute="bottom" id="AEt-bb-mHP"/> | ||
| 770 | + <constraint firstItem="IlU-p3-aLY" firstAttribute="leading" secondItem="rSF-LZ-Bnl" secondAttribute="leading" id="OBc-tM-vGz"/> | ||
| 771 | + <constraint firstItem="vkP-pb-ydp" firstAttribute="top" secondItem="rSF-LZ-Bnl" secondAttribute="top" id="Ppf-3Y-BG7"/> | ||
| 772 | + <constraint firstAttribute="trailing" secondItem="vkP-pb-ydp" secondAttribute="trailing" id="Ygd-yH-f2B"/> | ||
| 773 | + <constraint firstAttribute="bottom" secondItem="IlU-p3-aLY" secondAttribute="bottom" id="cjh-Sk-yPh"/> | ||
| 774 | + </constraints> | ||
| 775 | + </view> | ||
| 776 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="R1Y-16-Th7"> | ||
| 777 | + <rect key="frame" x="62.5" y="400" width="250" height="40"/> | ||
| 778 | + <color key="backgroundColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 779 | + <constraints> | ||
| 780 | + <constraint firstAttribute="height" constant="40" id="Kvn-w3-Juc"/> | ||
| 781 | + </constraints> | ||
| 782 | + <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 783 | + <state key="normal" title="注册"> | ||
| 784 | + <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 785 | + </state> | ||
| 786 | + <userDefinedRuntimeAttributes> | ||
| 787 | + <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 788 | + <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 789 | + <integer key="value" value="20"/> | ||
| 790 | + </userDefinedRuntimeAttribute> | ||
| 791 | + </userDefinedRuntimeAttributes> | ||
| 792 | + <connections> | ||
| 793 | + <action selector="registerBtnAction:" destination="tCx-JF-YJm" eventType="touchUpInside" id="pSt-yE-eTL"/> | ||
| 794 | + </connections> | ||
| 795 | + </button> | ||
| 796 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DJH-vy-tj1"> | ||
| 797 | + <rect key="frame" x="325" y="315" width="35" height="30"/> | ||
| 798 | + <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 799 | + <state key="normal" title="登 录"> | ||
| 800 | + <color key="titleColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 801 | + </state> | ||
| 802 | + <connections> | ||
| 803 | + <action selector="loginBtnClickAction:" destination="tCx-JF-YJm" eventType="touchUpInside" id="KlD-u3-W3P"/> | ||
| 804 | + </connections> | ||
| 805 | + </button> | ||
| 806 | + </subviews> | ||
| 807 | + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 808 | + <gestureRecognizers/> | ||
| 809 | + <constraints> | ||
| 810 | + <constraint firstItem="R1Y-16-Th7" firstAttribute="top" secondItem="rSF-LZ-Bnl" secondAttribute="bottom" constant="100" id="2qf-Db-EkQ"/> | ||
| 811 | + <constraint firstItem="403-Gp-RaZ" firstAttribute="top" secondItem="o4V-sv-MMh" secondAttribute="bottom" id="3fC-Wg-KMc"/> | ||
| 812 | + <constraint firstItem="xNc-I3-UL6" firstAttribute="top" secondItem="o4V-sv-MMh" secondAttribute="bottom" id="4fl-gQ-WZe"/> | ||
| 813 | + <constraint firstAttribute="trailing" secondItem="rSF-LZ-Bnl" secondAttribute="trailing" id="9jK-fu-KKs"/> | ||
| 814 | + <constraint firstItem="rSF-LZ-Bnl" firstAttribute="leading" secondItem="i7O-Dj-x5S" secondAttribute="leading" id="OoN-NJ-ZEk"/> | ||
| 815 | + <constraint firstAttribute="trailing" secondItem="DJH-vy-tj1" secondAttribute="trailing" constant="15" id="ZYR-Wd-fZz"/> | ||
| 816 | + <constraint firstAttribute="trailing" secondItem="xNc-I3-UL6" secondAttribute="trailing" id="eo3-7l-3Ju"/> | ||
| 817 | + <constraint firstAttribute="trailing" secondItem="403-Gp-RaZ" secondAttribute="trailing" id="fOh-GD-xiW"/> | ||
| 818 | + <constraint firstItem="R1Y-16-Th7" firstAttribute="centerX" secondItem="i7O-Dj-x5S" secondAttribute="centerX" id="kcC-PE-Lwx"/> | ||
| 819 | + <constraint firstItem="DJH-vy-tj1" firstAttribute="top" secondItem="rSF-LZ-Bnl" secondAttribute="bottom" constant="15" id="lBh-92-VTX"/> | ||
| 820 | + <constraint firstItem="R1Y-16-Th7" firstAttribute="width" secondItem="i7O-Dj-x5S" secondAttribute="width" multiplier="2:3" id="pCE-Ek-rOS"/> | ||
| 821 | + <constraint firstItem="403-Gp-RaZ" firstAttribute="leading" secondItem="i7O-Dj-x5S" secondAttribute="leading" id="stz-Fg-4Iv"/> | ||
| 822 | + <constraint firstItem="rSF-LZ-Bnl" firstAttribute="top" secondItem="xNc-I3-UL6" secondAttribute="bottom" id="wPx-ce-6he"/> | ||
| 823 | + <constraint firstItem="xNc-I3-UL6" firstAttribute="leading" secondItem="i7O-Dj-x5S" secondAttribute="leading" id="x7N-Bs-2t1"/> | ||
| 824 | + </constraints> | ||
| 825 | + <connections> | ||
| 826 | + <outletCollection property="gestureRecognizers" destination="ZEf-mm-u9e" appends="YES" id="Gmm-Kb-eQb"/> | ||
| 827 | + </connections> | ||
| 828 | + </view> | ||
| 829 | + <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> | ||
| 830 | + <size key="freeformSize" width="375" height="667"/> | ||
| 831 | + <connections> | ||
| 832 | + <outlet property="confirmPasswordTextField" destination="4Ko-iM-kKY" id="Mwh-Ik-lD3"/> | ||
| 833 | + <outlet property="inputVerificationCode" destination="GHW-G9-uIT" id="W2X-QF-3qb"/> | ||
| 834 | + <outlet property="nickNameLabel" destination="gj6-hl-Apj" id="chL-uV-xBk"/> | ||
| 835 | + <outlet property="nikeNameTextFiled" destination="q7i-9n-2oP" id="DME-KX-Y6Y"/> | ||
| 836 | + <outlet property="passwordTextField" destination="i3R-4H-gzp" id="qTl-bd-eRR"/> | ||
| 837 | + <outlet property="phoneNumber" destination="nVJ-81-bXY" id="24J-2q-PGO"/> | ||
| 838 | + <outlet property="registerBtn" destination="R1Y-16-Th7" id="ccz-JJ-Zfd"/> | ||
| 839 | + <outlet property="sendPhotoImage" destination="1fC-6m-eDG" id="xoB-Hr-23D"/> | ||
| 840 | + <outlet property="sendVerificationCode" destination="hwv-0n-dsf" id="5zD-Jx-K5j"/> | ||
| 841 | + </connections> | ||
| 842 | + </viewController> | ||
| 843 | + <placeholder placeholderIdentifier="IBFirstResponder" id="Fzg-cR-i34" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 844 | + <tapGestureRecognizer id="hfJ-NM-sst"> | ||
| 845 | + <connections> | ||
| 846 | + <action selector="nickNameSetTapAction:" destination="tCx-JF-YJm" id="OeS-RA-5JC"/> | ||
| 847 | + </connections> | ||
| 848 | + </tapGestureRecognizer> | ||
| 849 | + <tapGestureRecognizer id="aUf-CI-Y7V"> | ||
| 850 | + <connections> | ||
| 851 | + <action selector="sendPhotoImageTapAction:" destination="tCx-JF-YJm" id="eAT-uh-KLY"/> | ||
| 852 | + </connections> | ||
| 853 | + </tapGestureRecognizer> | ||
| 854 | + <tapGestureRecognizer id="ZEf-mm-u9e"> | ||
| 855 | + <connections> | ||
| 856 | + <action selector="touchAction:" destination="tCx-JF-YJm" id="1ww-Nt-fgk"/> | ||
| 857 | + </connections> | ||
| 858 | + </tapGestureRecognizer> | ||
| 859 | + </objects> | ||
| 860 | + <point key="canvasLocation" x="-2161" y="1534"/> | ||
| 861 | + </scene> | ||
| 862 | + <!--直播列表--> | ||
| 863 | + <scene sceneID="XKW-WN-QdT"> | ||
| 864 | + <objects> | ||
| 865 | + <viewController storyboardIdentifier="LiveRoomsViewController" id="TRk-zG-DtG" customClass="LiveRoomsViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 866 | + <layoutGuides> | ||
| 867 | + <viewControllerLayoutGuide type="top" id="F8t-oe-SiB"/> | ||
| 868 | + <viewControllerLayoutGuide type="bottom" id="uxW-te-E5M"/> | ||
| 869 | + </layoutGuides> | ||
| 870 | + <view key="view" contentMode="scaleToFill" id="872-q1-Iaa"> | ||
| 871 | + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 872 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 873 | + <subviews> | ||
| 874 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zXz-qM-Acq"> | ||
| 875 | + <rect key="frame" x="0.0" y="64" width="375" height="170"/> | ||
| 876 | + <subviews> | ||
| 877 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hv8-Qa-aBF"> | ||
| 878 | + <rect key="frame" x="187" y="0.0" width="1" height="170"/> | ||
| 879 | + <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 880 | + <constraints> | ||
| 881 | + <constraint firstAttribute="width" constant="1" id="dza-AE-Lso"/> | ||
| 882 | + </constraints> | ||
| 883 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 884 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 885 | + <nil key="highlightedColor"/> | ||
| 886 | + </label> | ||
| 887 | + <imageView contentMode="redraw" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="defphoto.png" translatesAutoresizingMaskIntoConstraints="NO" id="0Gk-gW-ew3"> | ||
| 888 | + <rect key="frame" x="147.5" y="8" width="80" height="80"/> | ||
| 889 | + <gestureRecognizers/> | ||
| 890 | + <constraints> | ||
| 891 | + <constraint firstAttribute="width" constant="80" id="lWg-Fx-hsx"/> | ||
| 892 | + <constraint firstAttribute="height" constant="80" id="wOV-ke-Q1B"/> | ||
| 893 | + </constraints> | ||
| 894 | + <userDefinedRuntimeAttributes> | ||
| 895 | + <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 896 | + <integer key="value" value="40"/> | ||
| 897 | + </userDefinedRuntimeAttribute> | ||
| 898 | + <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 899 | + </userDefinedRuntimeAttributes> | ||
| 900 | + </imageView> | ||
| 901 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="学事通" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3TP-D6-7hD"> | ||
| 902 | + <rect key="frame" x="0.0" y="100" width="375" height="21"/> | ||
| 903 | + <constraints> | ||
| 904 | + <constraint firstAttribute="height" constant="21" id="30Q-8E-jJ7"/> | ||
| 905 | + </constraints> | ||
| 906 | + <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 907 | + <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 908 | + <nil key="highlightedColor"/> | ||
| 909 | + </label> | ||
| 910 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CtS-7Q-u1u"> | ||
| 911 | + <rect key="frame" x="0.0" y="96" width="375" height="25"/> | ||
| 912 | + <constraints> | ||
| 913 | + <constraint firstAttribute="height" constant="25" id="wYi-pE-S5H"/> | ||
| 914 | + </constraints> | ||
| 915 | + <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="15"/> | ||
| 916 | + <inset key="titleEdgeInsets" minX="-120" minY="0.0" maxX="0.0" maxY="0.0"/> | ||
| 917 | + <inset key="imageEdgeInsets" minX="95" minY="0.0" maxX="0.0" maxY="0.0"/> | ||
| 918 | + <state key="normal"> | ||
| 919 | + <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 920 | + </state> | ||
| 921 | + </button> | ||
| 922 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="账号:18625774807" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZEw-g1-Yma"> | ||
| 923 | + <rect key="frame" x="0.0" y="129" width="375" height="21"/> | ||
| 924 | + <constraints> | ||
| 925 | + <constraint firstAttribute="height" constant="21" id="pzG-gH-nk5"/> | ||
| 926 | + </constraints> | ||
| 927 | + <fontDescription key="fontDescription" type="system" pointSize="13"/> | ||
| 928 | + <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 929 | + <nil key="highlightedColor"/> | ||
| 930 | + </label> | ||
| 931 | + <imageView hidden="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="编辑.png" translatesAutoresizingMaskIntoConstraints="NO" id="Prt-1z-bT6"> | ||
| 932 | + <rect key="frame" x="214" y="100" width="20" height="20"/> | ||
| 933 | + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
| 934 | + </imageView> | ||
| 935 | + </subviews> | ||
| 936 | + <color key="backgroundColor" red="0.1058823529" green="0.82745098039999998" blue="0.74509803919999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 937 | + <constraints> | ||
| 938 | + <constraint firstItem="CtS-7Q-u1u" firstAttribute="top" secondItem="0Gk-gW-ew3" secondAttribute="bottom" constant="8" id="4J5-K4-e0H"/> | ||
| 939 | + <constraint firstItem="0Gk-gW-ew3" firstAttribute="centerX" secondItem="zXz-qM-Acq" secondAttribute="centerX" id="52h-CK-9Q4"/> | ||
| 940 | + <constraint firstItem="hv8-Qa-aBF" firstAttribute="top" secondItem="zXz-qM-Acq" secondAttribute="top" id="AGC-wU-6In"/> | ||
| 941 | + <constraint firstAttribute="height" constant="170" id="BQo-Kp-CAZ"/> | ||
| 942 | + <constraint firstItem="ZEw-g1-Yma" firstAttribute="leading" secondItem="zXz-qM-Acq" secondAttribute="leading" id="Ckg-Dh-49u"/> | ||
| 943 | + <constraint firstItem="CtS-7Q-u1u" firstAttribute="leading" secondItem="zXz-qM-Acq" secondAttribute="leading" id="G2O-76-hLf"/> | ||
| 944 | + <constraint firstItem="hv8-Qa-aBF" firstAttribute="centerY" secondItem="zXz-qM-Acq" secondAttribute="centerY" id="KHQ-Nn-pOq"/> | ||
| 945 | + <constraint firstAttribute="bottom" secondItem="hv8-Qa-aBF" secondAttribute="bottom" id="RFM-s7-4TJ"/> | ||
| 946 | + <constraint firstAttribute="trailing" secondItem="CtS-7Q-u1u" secondAttribute="trailing" id="RHy-V2-7Zr"/> | ||
| 947 | + <constraint firstItem="ZEw-g1-Yma" firstAttribute="top" secondItem="CtS-7Q-u1u" secondAttribute="bottom" constant="8" id="RIr-e5-c0g"/> | ||
| 948 | + <constraint firstItem="3TP-D6-7hD" firstAttribute="leading" secondItem="zXz-qM-Acq" secondAttribute="leading" id="aR3-jf-TMa"/> | ||
| 949 | + <constraint firstAttribute="trailing" secondItem="ZEw-g1-Yma" secondAttribute="trailing" id="bJ0-BI-Qv3"/> | ||
| 950 | + <constraint firstItem="3TP-D6-7hD" firstAttribute="top" secondItem="0Gk-gW-ew3" secondAttribute="bottom" constant="12" id="fTq-1T-IoT"/> | ||
| 951 | + <constraint firstAttribute="trailing" secondItem="3TP-D6-7hD" secondAttribute="trailing" id="mzr-Lx-WwS"/> | ||
| 952 | + <constraint firstItem="CtS-7Q-u1u" firstAttribute="centerX" secondItem="zXz-qM-Acq" secondAttribute="centerX" id="qqe-eT-yC5"/> | ||
| 953 | + <constraint firstItem="hv8-Qa-aBF" firstAttribute="centerX" secondItem="zXz-qM-Acq" secondAttribute="centerX" id="vZf-z2-TYe"/> | ||
| 954 | + <constraint firstItem="0Gk-gW-ew3" firstAttribute="top" secondItem="zXz-qM-Acq" secondAttribute="top" constant="8" id="zMS-XP-xLS"/> | ||
| 955 | + <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="170" id="zf1-5x-wDm"/> | ||
| 956 | + </constraints> | ||
| 957 | + </view> | ||
| 958 | + <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" bounces="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="MSW-uR-PzG"> | ||
| 959 | + <rect key="frame" x="0.0" y="234" width="375" height="50"/> | ||
| 960 | + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 961 | + <constraints> | ||
| 962 | + <constraint firstAttribute="height" constant="50" id="6Lg-sB-5MW"/> | ||
| 963 | + </constraints> | ||
| 964 | + <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="RUP-s6-4QP"> | ||
| 965 | + <size key="itemSize" width="50" height="50"/> | ||
| 966 | + <size key="headerReferenceSize" width="0.0" height="0.0"/> | ||
| 967 | + <size key="footerReferenceSize" width="0.0" height="0.0"/> | ||
| 968 | + <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> | ||
| 969 | + </collectionViewFlowLayout> | ||
| 970 | + <cells> | ||
| 971 | + <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="selectCell" id="ByM-Yz-laB" customClass="selectTypeCell" customModule="YouerLiveVideo" customModuleProvider="target"> | ||
| 972 | + <rect key="frame" x="0.0" y="0.0" width="50" height="50"/> | ||
| 973 | + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
| 974 | + <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> | ||
| 975 | + <rect key="frame" x="0.0" y="0.0" width="50" height="50"/> | ||
| 976 | + <autoresizingMask key="autoresizingMask"/> | ||
| 977 | + <subviews> | ||
| 978 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="全部" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cIR-al-lVF"> | ||
| 979 | + <rect key="frame" x="0.0" y="0.0" width="50" height="50"/> | ||
| 980 | + <fontDescription key="fontDescription" type="system" pointSize="12"/> | ||
| 981 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 982 | + <nil key="highlightedColor"/> | ||
| 983 | + </label> | ||
| 984 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Uda-An-pcw"> | ||
| 985 | + <rect key="frame" x="49" y="0.0" width="1" height="50"/> | ||
| 986 | + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 987 | + <constraints> | ||
| 988 | + <constraint firstAttribute="width" constant="1" id="nDj-Xd-cpM"/> | ||
| 989 | + </constraints> | ||
| 990 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 991 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 992 | + <nil key="highlightedColor"/> | ||
| 993 | + </label> | ||
| 994 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0hQ-IS-VH8"> | ||
| 995 | + <rect key="frame" x="0.0" y="49" width="50" height="1"/> | ||
| 996 | + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 997 | + <constraints> | ||
| 998 | + <constraint firstAttribute="height" constant="1" id="YZN-9q-eax"/> | ||
| 999 | + </constraints> | ||
| 1000 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1001 | + <nil key="textColor"/> | ||
| 1002 | + <nil key="highlightedColor"/> | ||
| 1003 | + </label> | ||
| 1004 | + </subviews> | ||
| 1005 | + </view> | ||
| 1006 | + <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1007 | + <constraints> | ||
| 1008 | + <constraint firstItem="Uda-An-pcw" firstAttribute="top" secondItem="ByM-Yz-laB" secondAttribute="top" id="2PS-Ij-cah"/> | ||
| 1009 | + <constraint firstAttribute="bottom" secondItem="cIR-al-lVF" secondAttribute="bottom" id="3Ze-wI-7u6"/> | ||
| 1010 | + <constraint firstItem="cIR-al-lVF" firstAttribute="leading" secondItem="ByM-Yz-laB" secondAttribute="leading" id="4Pw-3q-ycf"/> | ||
| 1011 | + <constraint firstAttribute="trailing" secondItem="Uda-An-pcw" secondAttribute="trailing" id="56p-FD-l9M"/> | ||
| 1012 | + <constraint firstAttribute="bottom" secondItem="0hQ-IS-VH8" secondAttribute="bottom" id="9lr-L2-yEQ"/> | ||
| 1013 | + <constraint firstItem="0hQ-IS-VH8" firstAttribute="leading" secondItem="ByM-Yz-laB" secondAttribute="leading" id="Bj0-Ra-FS3"/> | ||
| 1014 | + <constraint firstAttribute="trailing" secondItem="0hQ-IS-VH8" secondAttribute="trailing" id="E6o-Ec-dYB"/> | ||
| 1015 | + <constraint firstItem="cIR-al-lVF" firstAttribute="top" secondItem="ByM-Yz-laB" secondAttribute="top" id="WJW-7b-hNu"/> | ||
| 1016 | + <constraint firstAttribute="trailing" secondItem="cIR-al-lVF" secondAttribute="trailing" id="ijN-E7-xI0"/> | ||
| 1017 | + <constraint firstAttribute="bottom" secondItem="Uda-An-pcw" secondAttribute="bottom" id="zLp-XV-NSL"/> | ||
| 1018 | + </constraints> | ||
| 1019 | + <connections> | ||
| 1020 | + <outlet property="lineLabel" destination="Uda-An-pcw" id="i0M-0I-yGC"/> | ||
| 1021 | + <outlet property="titleLabel" destination="cIR-al-lVF" id="srt-YU-2L0"/> | ||
| 1022 | + </connections> | ||
| 1023 | + </collectionViewCell> | ||
| 1024 | + </cells> | ||
| 1025 | + <connections> | ||
| 1026 | + <outlet property="dataSource" destination="TRk-zG-DtG" id="zGC-ba-Oek"/> | ||
| 1027 | + <outlet property="delegate" destination="TRk-zG-DtG" id="F9X-CU-Z6M"/> | ||
| 1028 | + </connections> | ||
| 1029 | + </collectionView> | ||
| 1030 | + <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" bounces="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="nMl-1w-hhg"> | ||
| 1031 | + <rect key="frame" x="0.0" y="284" width="375" height="383"/> | ||
| 1032 | + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1033 | + <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="1" minimumInteritemSpacing="1" id="6WK-c9-xsa"> | ||
| 1034 | + <size key="itemSize" width="171" height="276"/> | ||
| 1035 | + <size key="headerReferenceSize" width="0.0" height="0.0"/> | ||
| 1036 | + <size key="footerReferenceSize" width="0.0" height="0.0"/> | ||
| 1037 | + <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> | ||
| 1038 | + </collectionViewFlowLayout> | ||
| 1039 | + <cells> | ||
| 1040 | + <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="roomListCell" id="znO-HR-pdB" customClass="roomLiveDetailCell" customModule="YouerLiveVideo" customModuleProvider="target"> | ||
| 1041 | + <rect key="frame" x="0.0" y="0.0" width="171" height="276"/> | ||
| 1042 | + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
| 1043 | + <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> | ||
| 1044 | + <rect key="frame" x="0.0" y="0.0" width="171" height="276"/> | ||
| 1045 | + <autoresizingMask key="autoresizingMask"/> | ||
| 1046 | + <subviews> | ||
| 1047 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1eI-eh-N3I"> | ||
| 1048 | + <rect key="frame" x="0.0" y="0.0" width="171" height="246"/> | ||
| 1049 | + <subviews> | ||
| 1050 | + <imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="psb.jpg" translatesAutoresizingMaskIntoConstraints="NO" id="XcQ-PZ-5vi"> | ||
| 1051 | + <rect key="frame" x="0.0" y="0.0" width="171" height="246"/> | ||
| 1052 | + </imageView> | ||
| 1053 | + <label opaque="NO" userInteractionEnabled="NO" alpha="0.80000001192092896" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="顺治直播" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5bV-Q9-QBq"> | ||
| 1054 | + <rect key="frame" x="0.0" y="226" width="171" height="20"/> | ||
| 1055 | + <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1056 | + <constraints> | ||
| 1057 | + <constraint firstAttribute="height" constant="20" id="v5R-gm-4ZU"/> | ||
| 1058 | + </constraints> | ||
| 1059 | + <fontDescription key="fontDescription" type="system" pointSize="14"/> | ||
| 1060 | + <nil key="highlightedColor"/> | ||
| 1061 | + </label> | ||
| 1062 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="未通过" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MwN-q1-p8I"> | ||
| 1063 | + <rect key="frame" x="8" y="8" width="45" height="20"/> | ||
| 1064 | + <color key="backgroundColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1065 | + <constraints> | ||
| 1066 | + <constraint firstAttribute="height" constant="20" id="ZNb-9o-7dy"/> | ||
| 1067 | + <constraint firstAttribute="width" constant="45" id="zE3-2c-Lnq"/> | ||
| 1068 | + </constraints> | ||
| 1069 | + <fontDescription key="fontDescription" type="system" pointSize="12"/> | ||
| 1070 | + <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1071 | + <nil key="highlightedColor"/> | ||
| 1072 | + <userDefinedRuntimeAttributes> | ||
| 1073 | + <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 1074 | + <integer key="value" value="10"/> | ||
| 1075 | + </userDefinedRuntimeAttribute> | ||
| 1076 | + <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 1077 | + </userDefinedRuntimeAttributes> | ||
| 1078 | + </label> | ||
| 1079 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="直播历史1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3kG-Uk-Ebo"> | ||
| 1080 | + <rect key="frame" x="108" y="8" width="55" height="20"/> | ||
| 1081 | + <color key="backgroundColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1082 | + <constraints> | ||
| 1083 | + <constraint firstAttribute="height" constant="20" id="7gR-Ze-JOx"/> | ||
| 1084 | + </constraints> | ||
| 1085 | + <fontDescription key="fontDescription" type="system" pointSize="12"/> | ||
| 1086 | + <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1087 | + <nil key="highlightedColor"/> | ||
| 1088 | + <userDefinedRuntimeAttributes> | ||
| 1089 | + <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 1090 | + <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 1091 | + <integer key="value" value="10"/> | ||
| 1092 | + </userDefinedRuntimeAttribute> | ||
| 1093 | + </userDefinedRuntimeAttributes> | ||
| 1094 | + </label> | ||
| 1095 | + </subviews> | ||
| 1096 | + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1097 | + <constraints> | ||
| 1098 | + <constraint firstAttribute="trailing" secondItem="5bV-Q9-QBq" secondAttribute="trailing" id="B2F-4V-Wzi"/> | ||
| 1099 | + <constraint firstAttribute="trailing" secondItem="3kG-Uk-Ebo" secondAttribute="trailing" constant="8" id="EMb-1i-r9c"/> | ||
| 1100 | + <constraint firstAttribute="trailing" secondItem="XcQ-PZ-5vi" secondAttribute="trailing" id="Iro-Ie-Mzf"/> | ||
| 1101 | + <constraint firstItem="MwN-q1-p8I" firstAttribute="top" secondItem="1eI-eh-N3I" secondAttribute="top" constant="8" id="Njs-r0-U3F"/> | ||
| 1102 | + <constraint firstItem="MwN-q1-p8I" firstAttribute="leading" secondItem="1eI-eh-N3I" secondAttribute="leading" constant="8" id="XbX-F5-TSb"/> | ||
| 1103 | + <constraint firstAttribute="bottom" secondItem="XcQ-PZ-5vi" secondAttribute="bottom" id="bEn-qE-mTE"/> | ||
| 1104 | + <constraint firstItem="XcQ-PZ-5vi" firstAttribute="leading" secondItem="1eI-eh-N3I" secondAttribute="leading" id="kSr-BD-Q7c"/> | ||
| 1105 | + <constraint firstAttribute="bottom" secondItem="5bV-Q9-QBq" secondAttribute="bottom" id="pTo-Um-VFC"/> | ||
| 1106 | + <constraint firstItem="5bV-Q9-QBq" firstAttribute="leading" secondItem="1eI-eh-N3I" secondAttribute="leading" id="qP1-Fu-lHn"/> | ||
| 1107 | + <constraint firstItem="XcQ-PZ-5vi" firstAttribute="top" secondItem="1eI-eh-N3I" secondAttribute="top" id="v3T-sO-sWi"/> | ||
| 1108 | + <constraint firstItem="3kG-Uk-Ebo" firstAttribute="top" secondItem="1eI-eh-N3I" secondAttribute="top" constant="8" id="xhC-S7-ph6"/> | ||
| 1109 | + </constraints> | ||
| 1110 | + </view> | ||
| 1111 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zf5-sW-pq6"> | ||
| 1112 | + <rect key="frame" x="0.0" y="246" width="171" height="30"/> | ||
| 1113 | + <subviews> | ||
| 1114 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="100000" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DN7-Bl-0sn"> | ||
| 1115 | + <rect key="frame" x="31" y="4.5" width="30.5" height="21"/> | ||
| 1116 | + <constraints> | ||
| 1117 | + <constraint firstAttribute="height" constant="21" id="dPs-Vr-J5F"/> | ||
| 1118 | + </constraints> | ||
| 1119 | + <fontDescription key="fontDescription" type="system" pointSize="8"/> | ||
| 1120 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1121 | + <nil key="highlightedColor"/> | ||
| 1122 | + </label> | ||
| 1123 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2016-11-10 10:58:50" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FLt-yg-yap"> | ||
| 1124 | + <rect key="frame" x="80.5" y="10" width="82.5" height="10"/> | ||
| 1125 | + <fontDescription key="fontDescription" type="system" pointSize="8"/> | ||
| 1126 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1127 | + <nil key="highlightedColor"/> | ||
| 1128 | + </label> | ||
| 1129 | + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="观看.png" translatesAutoresizingMaskIntoConstraints="NO" id="zAE-Rj-l2k"> | ||
| 1130 | + <rect key="frame" x="8" y="7.5" width="20" height="15"/> | ||
| 1131 | + <constraints> | ||
| 1132 | + <constraint firstAttribute="width" constant="20" id="OeC-BX-gj2"/> | ||
| 1133 | + <constraint firstAttribute="height" constant="15" id="sNv-Mf-wqS"/> | ||
| 1134 | + </constraints> | ||
| 1135 | + </imageView> | ||
| 1136 | + </subviews> | ||
| 1137 | + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 1138 | + <constraints> | ||
| 1139 | + <constraint firstItem="zAE-Rj-l2k" firstAttribute="leading" secondItem="zf5-sW-pq6" secondAttribute="leading" constant="8" id="4I4-Ad-LFC"/> | ||
| 1140 | + <constraint firstItem="zAE-Rj-l2k" firstAttribute="centerY" secondItem="zf5-sW-pq6" secondAttribute="centerY" id="4oe-14-f8F"/> | ||
| 1141 | + <constraint firstItem="FLt-yg-yap" firstAttribute="centerY" secondItem="zf5-sW-pq6" secondAttribute="centerY" id="8b4-g2-wg6"/> | ||
| 1142 | + <constraint firstAttribute="trailing" secondItem="FLt-yg-yap" secondAttribute="trailing" constant="8" id="9lh-yF-apc"/> | ||
| 1143 | + <constraint firstAttribute="height" constant="30" id="MbG-VU-7bB"/> | ||
| 1144 | + <constraint firstItem="DN7-Bl-0sn" firstAttribute="centerY" secondItem="zf5-sW-pq6" secondAttribute="centerY" id="nMy-KR-EGQ"/> | ||
| 1145 | + <constraint firstItem="DN7-Bl-0sn" firstAttribute="leading" secondItem="zAE-Rj-l2k" secondAttribute="trailing" constant="3" id="wZD-yd-641"/> | ||
| 1146 | + </constraints> | ||
| 1147 | + </view> | ||
| 1148 | + </subviews> | ||
| 1149 | + </view> | ||
| 1150 | + <gestureRecognizers/> | ||
| 1151 | + <constraints> | ||
| 1152 | + <constraint firstItem="zf5-sW-pq6" firstAttribute="leading" secondItem="znO-HR-pdB" secondAttribute="leading" id="61a-fa-c9J"/> | ||
| 1153 | + <constraint firstItem="zf5-sW-pq6" firstAttribute="top" secondItem="1eI-eh-N3I" secondAttribute="bottom" id="EIo-Vb-H9W"/> | ||
| 1154 | + <constraint firstItem="1eI-eh-N3I" firstAttribute="top" secondItem="znO-HR-pdB" secondAttribute="top" id="Ywu-15-5fc"/> | ||
| 1155 | + <constraint firstAttribute="trailing" secondItem="1eI-eh-N3I" secondAttribute="trailing" id="iHg-3V-D1l"/> | ||
| 1156 | + <constraint firstAttribute="bottom" secondItem="zf5-sW-pq6" secondAttribute="bottom" id="nwS-Ps-NEb"/> | ||
| 1157 | + <constraint firstAttribute="trailing" secondItem="zf5-sW-pq6" secondAttribute="trailing" id="peQ-5W-lFV"/> | ||
| 1158 | + <constraint firstItem="1eI-eh-N3I" firstAttribute="leading" secondItem="znO-HR-pdB" secondAttribute="leading" id="s2Q-SV-Wa1"/> | ||
| 1159 | + </constraints> | ||
| 1160 | + <connections> | ||
| 1161 | + <outlet property="backgroundImage" destination="XcQ-PZ-5vi" id="PZn-O3-2wr"/> | ||
| 1162 | + <outlet property="nameLabel" destination="5bV-Q9-QBq" id="6cI-L0-KNI"/> | ||
| 1163 | + <outlet property="pageLabel" destination="3kG-Uk-Ebo" id="TAP-lv-Ehz"/> | ||
| 1164 | + <outlet property="passLabel" destination="MwN-q1-p8I" id="5QH-TX-YNW"/> | ||
| 1165 | + <outlet property="personNumberLabel" destination="DN7-Bl-0sn" id="C46-Ic-kp4"/> | ||
| 1166 | + <outlet property="timeLabel" destination="FLt-yg-yap" id="73q-DQ-xDb"/> | ||
| 1167 | + </connections> | ||
| 1168 | + </collectionViewCell> | ||
| 1169 | + </cells> | ||
| 1170 | + <connections> | ||
| 1171 | + <outlet property="dataSource" destination="TRk-zG-DtG" id="lqH-kS-ppP"/> | ||
| 1172 | + <outlet property="delegate" destination="TRk-zG-DtG" id="biA-Bk-fA8"/> | ||
| 1173 | + </connections> | ||
| 1174 | + </collectionView> | ||
| 1175 | + </subviews> | ||
| 1176 | + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1177 | + <gestureRecognizers/> | ||
| 1178 | + <constraints> | ||
| 1179 | + <constraint firstItem="zXz-qM-Acq" firstAttribute="leading" secondItem="872-q1-Iaa" secondAttribute="leading" id="A06-pz-cNK"/> | ||
| 1180 | + <constraint firstItem="nMl-1w-hhg" firstAttribute="top" secondItem="MSW-uR-PzG" secondAttribute="bottom" id="E7P-YI-DOl"/> | ||
| 1181 | + <constraint firstItem="zXz-qM-Acq" firstAttribute="top" secondItem="F8t-oe-SiB" secondAttribute="bottom" id="HCW-rj-PId"/> | ||
| 1182 | + <constraint firstAttribute="trailing" secondItem="zXz-qM-Acq" secondAttribute="trailing" id="e2e-cq-Hap"/> | ||
| 1183 | + <constraint firstItem="MSW-uR-PzG" firstAttribute="top" secondItem="zXz-qM-Acq" secondAttribute="bottom" id="fj7-Hc-YG2"/> | ||
| 1184 | + <constraint firstItem="uxW-te-E5M" firstAttribute="top" secondItem="nMl-1w-hhg" secondAttribute="bottom" id="fq8-QB-60Q"/> | ||
| 1185 | + <constraint firstItem="MSW-uR-PzG" firstAttribute="leading" secondItem="872-q1-Iaa" secondAttribute="leading" id="hMN-Xe-tdh"/> | ||
| 1186 | + <constraint firstItem="nMl-1w-hhg" firstAttribute="leading" secondItem="872-q1-Iaa" secondAttribute="leading" id="jhB-ax-iCp"/> | ||
| 1187 | + <constraint firstAttribute="trailing" secondItem="MSW-uR-PzG" secondAttribute="trailing" id="udE-bT-3AA"/> | ||
| 1188 | + <constraint firstAttribute="trailing" secondItem="nMl-1w-hhg" secondAttribute="trailing" id="yQc-58-PeL"/> | ||
| 1189 | + </constraints> | ||
| 1190 | + <connections> | ||
| 1191 | + <outletCollection property="gestureRecognizers" destination="XgT-x8-vAD" appends="YES" id="EXq-HP-LGR"/> | ||
| 1192 | + </connections> | ||
| 1193 | + </view> | ||
| 1194 | + <navigationItem key="navigationItem" title="直播列表" id="khA-xa-evf"/> | ||
| 1195 | + <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/> | ||
| 1196 | + <connections> | ||
| 1197 | + <outlet property="iconImage" destination="0Gk-gW-ew3" id="29g-By-ogu"/> | ||
| 1198 | + <outlet property="nameLabel" destination="3TP-D6-7hD" id="tmI-yP-QI4"/> | ||
| 1199 | + <outlet property="numberLabel" destination="ZEw-g1-Yma" id="pgU-Yw-Mrd"/> | ||
| 1200 | + <outlet property="roomListCollectionView" destination="nMl-1w-hhg" id="otY-oI-2JI"/> | ||
| 1201 | + <outlet property="titleCollectionView" destination="MSW-uR-PzG" id="M9L-C5-VB1"/> | ||
| 1202 | + <outlet property="titleViewHeight" destination="6Lg-sB-5MW" id="6m2-b2-Ys4"/> | ||
| 1203 | + </connections> | ||
| 1204 | + </viewController> | ||
| 1205 | + <placeholder placeholderIdentifier="IBFirstResponder" id="2zw-zY-MHj" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 1206 | + <pongPressGestureRecognizer allowableMovement="10" minimumPressDuration="0.5" id="XgT-x8-vAD"> | ||
| 1207 | + <connections> | ||
| 1208 | + <action selector="showAlertMenu:" destination="TRk-zG-DtG" id="p9e-Pt-bNd"/> | ||
| 1209 | + </connections> | ||
| 1210 | + </pongPressGestureRecognizer> | ||
| 1211 | + </objects> | ||
| 1212 | + <point key="canvasLocation" x="554" y="1534"/> | ||
| 1213 | + </scene> | ||
| 1214 | + <!--直播列表--> | ||
| 1215 | + <scene sceneID="wpU-Ou-gWp"> | ||
| 1216 | + <objects> | ||
| 1217 | + <viewController storyboardIdentifier="LiveListViewController" id="lqb-XV-ZVz" customClass="LiveListViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 1218 | + <layoutGuides> | ||
| 1219 | + <viewControllerLayoutGuide type="top" id="brV-vZ-9W3"/> | ||
| 1220 | + <viewControllerLayoutGuide type="bottom" id="cR5-Gc-hQY"/> | ||
| 1221 | + </layoutGuides> | ||
| 1222 | + <view key="view" contentMode="scaleToFill" id="Nko-iq-QeO"> | ||
| 1223 | + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 1224 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 1225 | + <subviews> | ||
| 1226 | + <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="isf-zi-cli"> | ||
| 1227 | + <rect key="frame" x="0.0" y="64" width="375" height="170"/> | ||
| 1228 | + <subviews> | ||
| 1229 | + <imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="default" translatesAutoresizingMaskIntoConstraints="NO" id="ngj-9g-5hs"> | ||
| 1230 | + <rect key="frame" x="0.0" y="0.0" width="375" height="170"/> | ||
| 1231 | + </imageView> | ||
| 1232 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HQy-b9-ePQ"> | ||
| 1233 | + <rect key="frame" x="187" y="0.0" width="1" height="170"/> | ||
| 1234 | + <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1235 | + <constraints> | ||
| 1236 | + <constraint firstAttribute="width" constant="1" id="hp0-BE-R8t"/> | ||
| 1237 | + </constraints> | ||
| 1238 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1239 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1240 | + <nil key="highlightedColor"/> | ||
| 1241 | + </label> | ||
| 1242 | + <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nhf-PK-1ec"> | ||
| 1243 | + <rect key="frame" x="0.0" y="130" width="375" height="21"/> | ||
| 1244 | + <subviews> | ||
| 1245 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="昵称:学事通" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gd5-Oe-oPN"> | ||
| 1246 | + <rect key="frame" x="0.0" y="0.0" width="179" height="21"/> | ||
| 1247 | + <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1248 | + <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1249 | + <nil key="highlightedColor"/> | ||
| 1250 | + </label> | ||
| 1251 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="账号:18625774807" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8tX-Ga-zhU"> | ||
| 1252 | + <rect key="frame" x="196" y="0.0" width="179" height="21"/> | ||
| 1253 | + <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
| 1254 | + <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1255 | + <nil key="highlightedColor"/> | ||
| 1256 | + </label> | ||
| 1257 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qyb-mf-TZD"> | ||
| 1258 | + <rect key="frame" x="187" y="0.0" width="1" height="21"/> | ||
| 1259 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1260 | + <constraints> | ||
| 1261 | + <constraint firstAttribute="width" constant="1" id="L9M-ks-l68"/> | ||
| 1262 | + <constraint firstAttribute="height" constant="21" id="e2e-8L-6ck"/> | ||
| 1263 | + </constraints> | ||
| 1264 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1265 | + <nil key="textColor"/> | ||
| 1266 | + <nil key="highlightedColor"/> | ||
| 1267 | + </label> | ||
| 1268 | + </subviews> | ||
| 1269 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> | ||
| 1270 | + <constraints> | ||
| 1271 | + <constraint firstItem="8tX-Ga-zhU" firstAttribute="leading" secondItem="qyb-mf-TZD" secondAttribute="trailing" constant="8" id="4zg-kG-yk5"/> | ||
| 1272 | + <constraint firstAttribute="height" constant="21" id="7ar-AL-Ral"/> | ||
| 1273 | + <constraint firstItem="gd5-Oe-oPN" firstAttribute="top" secondItem="nhf-PK-1ec" secondAttribute="top" id="957-1D-eE0"/> | ||
| 1274 | + <constraint firstAttribute="trailing" secondItem="8tX-Ga-zhU" secondAttribute="trailing" id="BJQ-l9-S7J"/> | ||
| 1275 | + <constraint firstItem="gd5-Oe-oPN" firstAttribute="leading" secondItem="nhf-PK-1ec" secondAttribute="leading" id="WNI-1e-htv"/> | ||
| 1276 | + <constraint firstItem="qyb-mf-TZD" firstAttribute="leading" secondItem="gd5-Oe-oPN" secondAttribute="trailing" constant="8" id="bUf-Ti-6Ic"/> | ||
| 1277 | + <constraint firstItem="qyb-mf-TZD" firstAttribute="centerY" secondItem="nhf-PK-1ec" secondAttribute="centerY" id="huQ-6k-n2Z"/> | ||
| 1278 | + <constraint firstItem="8tX-Ga-zhU" firstAttribute="top" secondItem="nhf-PK-1ec" secondAttribute="top" id="iRE-hF-Zb2"/> | ||
| 1279 | + <constraint firstAttribute="bottom" secondItem="8tX-Ga-zhU" secondAttribute="bottom" id="nGu-jK-iMz"/> | ||
| 1280 | + <constraint firstItem="qyb-mf-TZD" firstAttribute="centerX" secondItem="nhf-PK-1ec" secondAttribute="centerX" id="nzA-SV-wGC"/> | ||
| 1281 | + <constraint firstAttribute="bottom" secondItem="gd5-Oe-oPN" secondAttribute="bottom" id="thv-04-jSX"/> | ||
| 1282 | + </constraints> | ||
| 1283 | + </view> | ||
| 1284 | + <imageView contentMode="redraw" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="defphoto.png" translatesAutoresizingMaskIntoConstraints="NO" id="9sO-7j-ngT"> | ||
| 1285 | + <rect key="frame" x="147.5" y="30" width="80" height="80"/> | ||
| 1286 | + <gestureRecognizers/> | ||
| 1287 | + <constraints> | ||
| 1288 | + <constraint firstAttribute="width" constant="80" id="aaT-WV-MjZ"/> | ||
| 1289 | + <constraint firstAttribute="height" constant="80" id="bHl-VP-qSd"/> | ||
| 1290 | + </constraints> | ||
| 1291 | + <userDefinedRuntimeAttributes> | ||
| 1292 | + <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> | ||
| 1293 | + <integer key="value" value="40"/> | ||
| 1294 | + </userDefinedRuntimeAttribute> | ||
| 1295 | + <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> | ||
| 1296 | + </userDefinedRuntimeAttributes> | ||
| 1297 | + </imageView> | ||
| 1298 | + </subviews> | ||
| 1299 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1300 | + <constraints> | ||
| 1301 | + <constraint firstItem="9sO-7j-ngT" firstAttribute="top" secondItem="isf-zi-cli" secondAttribute="top" constant="30" id="BJf-HM-jZp"/> | ||
| 1302 | + <constraint firstAttribute="trailing" secondItem="nhf-PK-1ec" secondAttribute="trailing" id="Hhd-aT-EKJ"/> | ||
| 1303 | + <constraint firstAttribute="trailing" secondItem="ngj-9g-5hs" secondAttribute="trailing" id="Lqf-5R-Vof"/> | ||
| 1304 | + <constraint firstAttribute="bottom" secondItem="HQy-b9-ePQ" secondAttribute="bottom" id="OOY-Xj-O3f"/> | ||
| 1305 | + <constraint firstItem="ngj-9g-5hs" firstAttribute="leading" secondItem="isf-zi-cli" secondAttribute="leading" id="QOW-6w-e4w"/> | ||
| 1306 | + <constraint firstItem="nhf-PK-1ec" firstAttribute="leading" secondItem="isf-zi-cli" secondAttribute="leading" id="S5N-UG-TPg"/> | ||
| 1307 | + <constraint firstItem="nhf-PK-1ec" firstAttribute="top" secondItem="9sO-7j-ngT" secondAttribute="bottom" constant="20" id="Sd1-f8-8MO"/> | ||
| 1308 | + <constraint firstAttribute="bottom" secondItem="ngj-9g-5hs" secondAttribute="bottom" id="Z4Q-vc-VSM"/> | ||
| 1309 | + <constraint firstItem="ngj-9g-5hs" firstAttribute="top" secondItem="isf-zi-cli" secondAttribute="top" id="doS-z4-SAG"/> | ||
| 1310 | + <constraint firstItem="9sO-7j-ngT" firstAttribute="centerX" secondItem="isf-zi-cli" secondAttribute="centerX" id="eO5-ic-tZN"/> | ||
| 1311 | + <constraint firstAttribute="height" constant="170" id="oir-ns-qxW"/> | ||
| 1312 | + <constraint firstItem="HQy-b9-ePQ" firstAttribute="centerY" secondItem="isf-zi-cli" secondAttribute="centerY" id="pbA-aE-HU6"/> | ||
| 1313 | + <constraint firstItem="HQy-b9-ePQ" firstAttribute="centerX" secondItem="isf-zi-cli" secondAttribute="centerX" id="sAd-ka-Cv5"/> | ||
| 1314 | + <constraint firstItem="HQy-b9-ePQ" firstAttribute="top" secondItem="isf-zi-cli" secondAttribute="top" id="t0Y-B2-cX2"/> | ||
| 1315 | + </constraints> | ||
| 1316 | + </view> | ||
| 1317 | + <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" bounces="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="nIY-nN-A62"> | ||
| 1318 | + <rect key="frame" x="0.0" y="234" width="375" height="50"/> | ||
| 1319 | + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 1320 | + <constraints> | ||
| 1321 | + <constraint firstAttribute="height" constant="50" id="cYW-6s-rjR"/> | ||
| 1322 | + </constraints> | ||
| 1323 | + <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="nKo-gM-IVo"> | ||
| 1324 | + <size key="itemSize" width="50" height="50"/> | ||
| 1325 | + <size key="headerReferenceSize" width="0.0" height="0.0"/> | ||
| 1326 | + <size key="footerReferenceSize" width="0.0" height="0.0"/> | ||
| 1327 | + <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> | ||
| 1328 | + </collectionViewFlowLayout> | ||
| 1329 | + <cells> | ||
| 1330 | + <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="selectCell" id="zB6-cu-Maa" customClass="selectTypeCell" customModule="YouerLiveVideo" customModuleProvider="target"> | ||
| 1331 | + <rect key="frame" x="0.0" y="0.0" width="50" height="50"/> | ||
| 1332 | + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
| 1333 | + <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> | ||
| 1334 | + <rect key="frame" x="0.0" y="0.0" width="50" height="50"/> | ||
| 1335 | + <autoresizingMask key="autoresizingMask"/> | ||
| 1336 | + <subviews> | ||
| 1337 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="全部" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3Pk-up-2ih"> | ||
| 1338 | + <rect key="frame" x="0.0" y="0.0" width="50" height="50"/> | ||
| 1339 | + <fontDescription key="fontDescription" type="system" pointSize="12"/> | ||
| 1340 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1341 | + <nil key="highlightedColor"/> | ||
| 1342 | + </label> | ||
| 1343 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="suc-N0-vzy"> | ||
| 1344 | + <rect key="frame" x="49" y="0.0" width="1" height="50"/> | ||
| 1345 | + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
| 1346 | + <constraints> | ||
| 1347 | + <constraint firstAttribute="width" constant="1" id="SSB-k1-YBs"/> | ||
| 1348 | + </constraints> | ||
| 1349 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1350 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ||
| 1351 | + <nil key="highlightedColor"/> | ||
| 1352 | + </label> | ||
| 1353 | + <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WXf-Tu-oay"> | ||
| 1354 | + <rect key="frame" x="0.0" y="47" width="50" height="3"/> | ||
| 1355 | + <color key="backgroundColor" red="1" green="0.39607843139999999" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1356 | + <constraints> | ||
| 1357 | + <constraint firstAttribute="height" constant="3" id="mmI-NI-hys"/> | ||
| 1358 | + </constraints> | ||
| 1359 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 1360 | + <nil key="textColor"/> | ||
| 1361 | + <nil key="highlightedColor"/> | ||
| 1362 | + </label> | ||
| 1363 | + </subviews> | ||
| 1364 | + </view> | ||
| 1365 | + <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 1366 | + <constraints> | ||
| 1367 | + <constraint firstAttribute="trailing" secondItem="WXf-Tu-oay" secondAttribute="trailing" id="1DM-BI-kJ0"/> | ||
| 1368 | + <constraint firstAttribute="bottom" secondItem="suc-N0-vzy" secondAttribute="bottom" id="1g5-P1-2B4"/> | ||
| 1369 | + <constraint firstItem="3Pk-up-2ih" firstAttribute="top" secondItem="zB6-cu-Maa" secondAttribute="top" id="51r-YX-JTH"/> | ||
| 1370 | + <constraint firstItem="3Pk-up-2ih" firstAttribute="leading" secondItem="zB6-cu-Maa" secondAttribute="leading" id="Fj8-by-KJ7"/> | ||
| 1371 | + <constraint firstAttribute="trailing" secondItem="3Pk-up-2ih" secondAttribute="trailing" id="IVf-hi-Sp1"/> | ||
| 1372 | + <constraint firstAttribute="trailing" secondItem="suc-N0-vzy" secondAttribute="trailing" id="Neu-CK-hfI"/> | ||
| 1373 | + <constraint firstAttribute="bottom" secondItem="3Pk-up-2ih" secondAttribute="bottom" id="Se6-22-LPP"/> | ||
| 1374 | + <constraint firstAttribute="bottom" secondItem="WXf-Tu-oay" secondAttribute="bottom" id="Uu3-5u-5pk"/> | ||
| 1375 | + <constraint firstItem="suc-N0-vzy" firstAttribute="top" secondItem="zB6-cu-Maa" secondAttribute="top" id="hqo-pn-dz0"/> | ||
| 1376 | + <constraint firstItem="WXf-Tu-oay" firstAttribute="leading" secondItem="zB6-cu-Maa" secondAttribute="leading" id="kKZ-BG-uZK"/> | ||
| 1377 | + </constraints> | ||
| 1378 | + <connections> | ||
| 1379 | + <outlet property="currentLabel" destination="WXf-Tu-oay" id="UEG-W5-jCM"/> | ||
| 1380 | + <outlet property="lineLabel" destination="suc-N0-vzy" id="pLb-HV-fJG"/> | ||
| 1381 | + <outlet property="titleLabel" destination="3Pk-up-2ih" id="pmn-6t-PlP"/> | ||
| 1382 | + </connections> | ||
| 1383 | + </collectionViewCell> | ||
| 1384 | + </cells> | ||
| 1385 | + <connections> | ||
| 1386 | + <outlet property="dataSource" destination="lqb-XV-ZVz" id="Qtm-ca-MEF"/> | ||
| 1387 | + <outlet property="delegate" destination="lqb-XV-ZVz" id="JnV-MO-A85"/> | ||
| 1388 | + </connections> | ||
| 1389 | + </collectionView> | ||
| 1390 | + <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="qbV-V4-1Wb"> | ||
| 1391 | + <rect key="frame" x="0.0" y="284" width="375" height="383"/> | ||
| 1392 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1393 | + <prototypes> | ||
| 1394 | + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="W7l-gM-baV"> | ||
| 1395 | + <rect key="frame" x="0.0" y="28" width="375" height="44"/> | ||
| 1396 | + <autoresizingMask key="autoresizingMask"/> | ||
| 1397 | + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="W7l-gM-baV" id="fqd-mq-zcm"> | ||
| 1398 | + <rect key="frame" x="0.0" y="0.0" width="375" height="44"/> | ||
| 1399 | + <autoresizingMask key="autoresizingMask"/> | ||
| 1400 | + </tableViewCellContentView> | ||
| 1401 | + </tableViewCell> | ||
| 1402 | + </prototypes> | ||
| 1403 | + <connections> | ||
| 1404 | + <outlet property="dataSource" destination="lqb-XV-ZVz" id="LLR-GW-UNE"/> | ||
| 1405 | + <outlet property="delegate" destination="lqb-XV-ZVz" id="dTl-a0-wgn"/> | ||
| 1406 | + </connections> | ||
| 1407 | + </tableView> | ||
| 1408 | + </subviews> | ||
| 1409 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1410 | + <constraints> | ||
| 1411 | + <constraint firstItem="nIY-nN-A62" firstAttribute="top" secondItem="isf-zi-cli" secondAttribute="bottom" id="3JH-pc-PD9"/> | ||
| 1412 | + <constraint firstAttribute="trailing" secondItem="qbV-V4-1Wb" secondAttribute="trailing" id="92K-HA-c7H"/> | ||
| 1413 | + <constraint firstItem="nIY-nN-A62" firstAttribute="leading" secondItem="Nko-iq-QeO" secondAttribute="leading" id="Krk-n8-uMH"/> | ||
| 1414 | + <constraint firstItem="qbV-V4-1Wb" firstAttribute="leading" secondItem="Nko-iq-QeO" secondAttribute="leading" id="Of1-gx-6kM"/> | ||
| 1415 | + <constraint firstAttribute="trailing" secondItem="isf-zi-cli" secondAttribute="trailing" id="RTV-Ck-k8N"/> | ||
| 1416 | + <constraint firstItem="isf-zi-cli" firstAttribute="top" secondItem="brV-vZ-9W3" secondAttribute="bottom" id="SHc-mb-QNi"/> | ||
| 1417 | + <constraint firstItem="qbV-V4-1Wb" firstAttribute="top" secondItem="nIY-nN-A62" secondAttribute="bottom" id="TNI-YE-eyl"/> | ||
| 1418 | + <constraint firstAttribute="trailing" secondItem="nIY-nN-A62" secondAttribute="trailing" id="dul-2C-eY2"/> | ||
| 1419 | + <constraint firstItem="isf-zi-cli" firstAttribute="leading" secondItem="Nko-iq-QeO" secondAttribute="leading" id="eGy-yl-AP0"/> | ||
| 1420 | + <constraint firstItem="cR5-Gc-hQY" firstAttribute="top" secondItem="qbV-V4-1Wb" secondAttribute="bottom" id="fBx-Ju-eLK"/> | ||
| 1421 | + </constraints> | ||
| 1422 | + </view> | ||
| 1423 | + <navigationItem key="navigationItem" title="直播列表" id="P23-gm-beR"/> | ||
| 1424 | + <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/> | ||
| 1425 | + <connections> | ||
| 1426 | + <outlet property="iconImage" destination="9sO-7j-ngT" id="Egb-2z-ww1"/> | ||
| 1427 | + <outlet property="liveListTableView" destination="qbV-V4-1Wb" id="M98-yR-OV9"/> | ||
| 1428 | + <outlet property="nameLabel" destination="gd5-Oe-oPN" id="2u7-2Y-H1g"/> | ||
| 1429 | + <outlet property="numberLabel" destination="8tX-Ga-zhU" id="iWh-fx-L62"/> | ||
| 1430 | + <outlet property="titleCollectionView" destination="nIY-nN-A62" id="SBy-Yj-tPs"/> | ||
| 1431 | + <outlet property="titleViewHeight" destination="cYW-6s-rjR" id="zYI-HZ-q3e"/> | ||
| 1432 | + </connections> | ||
| 1433 | + </viewController> | ||
| 1434 | + <placeholder placeholderIdentifier="IBFirstResponder" id="3SM-jo-HZr" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 1435 | + </objects> | ||
| 1436 | + <point key="canvasLocation" x="-103.2" y="1533.2833583208396"/> | ||
| 1437 | + </scene> | ||
| 1438 | + <!--我的关注--> | ||
| 1439 | + <scene sceneID="5Pj-um-Bnv"> | ||
| 1440 | + <objects> | ||
| 1441 | + <viewController storyboardIdentifier="MyAttentionViewController" id="zFh-S7-nli" customClass="MyAttentionViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 1442 | + <layoutGuides> | ||
| 1443 | + <viewControllerLayoutGuide type="top" id="JQ5-9k-ZmT"/> | ||
| 1444 | + <viewControllerLayoutGuide type="bottom" id="SsA-vp-TY4"/> | ||
| 1445 | + </layoutGuides> | ||
| 1446 | + <view key="view" contentMode="scaleToFill" id="cty-Eh-WcV"> | ||
| 1447 | + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 1448 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 1449 | + <subviews> | ||
| 1450 | + <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="80" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="IMO-Ya-Ykb"> | ||
| 1451 | + <rect key="frame" x="0.0" y="64" width="375" height="603"/> | ||
| 1452 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1453 | + <connections> | ||
| 1454 | + <outlet property="dataSource" destination="zFh-S7-nli" id="l8w-94-Khb"/> | ||
| 1455 | + <outlet property="delegate" destination="zFh-S7-nli" id="HDL-JZ-qph"/> | ||
| 1456 | + </connections> | ||
| 1457 | + </tableView> | ||
| 1458 | + </subviews> | ||
| 1459 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 1460 | + <constraints> | ||
| 1461 | + <constraint firstItem="SsA-vp-TY4" firstAttribute="top" secondItem="IMO-Ya-Ykb" secondAttribute="bottom" id="6sW-ZQ-P0X"/> | ||
| 1462 | + <constraint firstItem="IMO-Ya-Ykb" firstAttribute="leading" secondItem="cty-Eh-WcV" secondAttribute="leading" id="JeM-iL-Uv2"/> | ||
| 1463 | + <constraint firstItem="IMO-Ya-Ykb" firstAttribute="top" secondItem="JQ5-9k-ZmT" secondAttribute="bottom" id="gA5-Vv-yWp"/> | ||
| 1464 | + <constraint firstAttribute="trailing" secondItem="IMO-Ya-Ykb" secondAttribute="trailing" id="pMZ-Fu-L8q"/> | ||
| 1465 | + </constraints> | ||
| 1466 | + </view> | ||
| 1467 | + <navigationItem key="navigationItem" title="我的关注" id="FDs-i4-32m"/> | ||
| 1468 | + <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/> | ||
| 1469 | + <connections> | ||
| 1470 | + <outlet property="tableView" destination="IMO-Ya-Ykb" id="tBt-n5-whv"/> | ||
| 1471 | + </connections> | ||
| 1472 | + </viewController> | ||
| 1473 | + <placeholder placeholderIdentifier="IBFirstResponder" id="20X-Eg-8F0" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 1474 | + </objects> | ||
| 1475 | + <point key="canvasLocation" x="-103.2" y="2202.5487256371816"/> | ||
| 1476 | + </scene> | ||
| 1477 | + </scenes> | ||
| 1478 | + <resources> | ||
| 1479 | + <image name="default" width="375" height="167"/> | ||
| 1480 | + <image name="defphoto.png" width="256" height="256"/> | ||
| 1481 | + <image name="loginBackGround" width="33" height="33"/> | ||
| 1482 | + <image name="psb.jpg" width="540" height="960"/> | ||
| 1483 | + <image name="userId.png" width="36" height="56"/> | ||
| 1484 | + <image name="userPassword.png" width="31" height="41"/> | ||
| 1485 | + <image name="上传头像.png" width="70" height="70"/> | ||
| 1486 | + <image name="收拢.png" width="15" height="25"/> | ||
| 1487 | + <image name="编辑.png" width="35" height="31"/> | ||
| 1488 | + <image name="观看.png" width="30" height="23"/> | ||
| 1489 | + </resources> | ||
| 1490 | +</document> |
YouerLiveVideo/YouerLiveVideo/util/ClassModel.swift
| @@ -1,129 +0,0 @@ | @@ -1,129 +0,0 @@ | ||
| 1 | -// | ||
| 2 | -// ClassModel.swift | ||
| 3 | -// XSTLive | ||
| 4 | -// | ||
| 5 | -// Created by 葛建军 on 16/11/9. | ||
| 6 | -// Copyright © 2016年 HANGZHOUTEAM. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -import Foundation | ||
| 10 | -//首页的列表model | ||
| 11 | -class Live: NSObject { | ||
| 12 | - var image:String = "" | ||
| 13 | - var name:String = "" | ||
| 14 | - var url:String = "" | ||
| 15 | - var type:LivesType | ||
| 16 | - init(image:String,name:String,url:String,type:LivesType) { | ||
| 17 | - self.image=image | ||
| 18 | - self.name=name | ||
| 19 | - self.url = url | ||
| 20 | - self.type=type | ||
| 21 | - } | ||
| 22 | -} | ||
| 23 | -//每个直播 model | ||
| 24 | -class LiveDetail:NSObject { | ||
| 25 | - /* | ||
| 26 | - 直播房间数据: | ||
| 27 | - "f_Id": "string", | ||
| 28 | - "f_LiveName": "string", | ||
| 29 | - "f_LiveImg": "string", | ||
| 30 | - "f_Description": "string", | ||
| 31 | - "f_Sid": "string", | ||
| 32 | - "f_CreatorUserId": "string", | ||
| 33 | - "f_RoomId": "string", | ||
| 34 | - "isExamine": 0, | ||
| 35 | - “isAttention”: 0没关注1关注。这个是新加的,表示自己是否关注了这个房间创建者所在的学校,为什么这么设计详情问王金森 | ||
| 36 | - “school”:学校id,用来关注 | ||
| 37 | - “userName” 昵称 | ||
| 38 | - “account” 账号 | ||
| 39 | - “userImage” 头像 | ||
| 40 | - “category” 所属分类 | ||
| 41 | - “count” 现在有多少人在看(如果有这个数据的话) | ||
| 42 | - */ | ||
| 43 | - // var f_MobilePhone:String="" //创建直播间时要用到云信id来创建聊天室 | ||
| 44 | - var f_Id:String="" //直播间ID | ||
| 45 | - var f_LiveName:String="" //直播间名称 | ||
| 46 | - var f_LiveImg:String="" //直播间标题图片 | ||
| 47 | - var f_Description:String="" //直播间内容JSON字符串 | ||
| 48 | - var f_Category:String="" //所属分类 | ||
| 49 | - var f_CategoryName:String=""//所属分类名称 | ||
| 50 | - var f_CreatorUserId:String=""//直播间创建人ID | ||
| 51 | - var f_Sid:String="" // | ||
| 52 | - var f_RoomId:String="" //返回的聊天室ID | ||
| 53 | - var f_IsExamine:Int=0 //直播间审核是否通过 0 未审核 1 审核通过 2 未通过 | ||
| 54 | - var f_IsAttention:Int=0 //是否录制 | ||
| 55 | - var f_Account:String="" // | ||
| 56 | - var f_RealName:String="" // | ||
| 57 | - var f_NickName:String="" // | ||
| 58 | - var f_HeadIcon:String="" // | ||
| 59 | - var f_OrganizeId:String="" | ||
| 60 | - init(j:JSON) { | ||
| 61 | - self.f_Id=j["f_Id"].stringValue | ||
| 62 | - self.f_LiveName=j["f_LiveName"].stringValue | ||
| 63 | - self.f_LiveImg=j["f_LiveImg"].stringValue | ||
| 64 | - self.f_Description=j["f_Description"].stringValue | ||
| 65 | - self.f_Category=j["f_Category"].stringValue | ||
| 66 | - self.f_CategoryName=j["f_CategoryName"].stringValue | ||
| 67 | - self.f_CreatorUserId=j["f_CreatorUserId"].stringValue | ||
| 68 | - self.f_Sid=j["f_Sid"].stringValue | ||
| 69 | - self.f_RoomId=j["f_RoomId"].stringValue | ||
| 70 | - self.f_IsExamine=j["f_IsExamine"].intValue | ||
| 71 | - self.f_IsAttention=j["f_IsAttention"].intValue | ||
| 72 | - self.f_Account=j["f_Account"].stringValue | ||
| 73 | - self.f_RealName=j["f_RealName"].stringValue | ||
| 74 | - self.f_NickName=j["f_NickName"].stringValue | ||
| 75 | - self.f_HeadIcon=j["f_HeadIcon"].stringValue | ||
| 76 | - self.f_OrganizeId=j["f_OrganizeId"].stringValue | ||
| 77 | - } | ||
| 78 | - static func getAllLives(j:JSON) -> [LiveDetail] { | ||
| 79 | - var allLiveRoom:[LiveDetail]=[] | ||
| 80 | - for json in j["data"].arrayValue { | ||
| 81 | - allLiveRoom.append(LiveDetail(j:json)) | ||
| 82 | - } | ||
| 83 | - return allLiveRoom | ||
| 84 | - } | ||
| 85 | - override init() { | ||
| 86 | - | ||
| 87 | - } | ||
| 88 | -} | ||
| 89 | -//首页中直播和点播顶部分类 直播Live,点播Video | ||
| 90 | -class LiveType:NSObject { | ||
| 91 | - var f_Id:String="" //分类ID | ||
| 92 | - var f_SortCode:String="" //分类 | ||
| 93 | - var f_LiveTypeName:String="" //分类名称 | ||
| 94 | - var f_Img:String="" //分类图标 | ||
| 95 | - init(j:JSON) { | ||
| 96 | - self.f_Id=j["f_Id"].stringValue | ||
| 97 | - self.f_SortCode=j["f_SortCode"].stringValue | ||
| 98 | - self.f_LiveTypeName=j["f_LiveTypeName"].stringValue | ||
| 99 | - self.f_Img=j["f_Img"].stringValue | ||
| 100 | - } | ||
| 101 | - static func getAllLiveType(j:JSON) -> [LiveType] { | ||
| 102 | - var allLiveType:[LiveType]=[] | ||
| 103 | - for json in j["data"].arrayValue { | ||
| 104 | - allLiveType.append(LiveType(j:json)) | ||
| 105 | - } | ||
| 106 | - return allLiveType | ||
| 107 | - } | ||
| 108 | -} | ||
| 109 | -//我的关注的学校列表 All 所有的,Act我关注的 | ||
| 110 | -class OrganizeListSchool:NSObject { | ||
| 111 | - var f_Id:String="" //学校ID | ||
| 112 | - var f_FullName:String="" //学校 | ||
| 113 | - var f_ShortName:String="" //学校名称 | ||
| 114 | - var f_Views:String="" //学校图标 | ||
| 115 | - init(j:JSON) { | ||
| 116 | - self.f_Id=j["f_Id"].stringValue | ||
| 117 | - self.f_FullName=j["f_FullName"].stringValue | ||
| 118 | - self.f_ShortName=j["f_ShortName"].stringValue | ||
| 119 | - self.f_Views=j["f_Views"].stringValue | ||
| 120 | - } | ||
| 121 | - static func getAllSchool(j:JSON) -> [OrganizeListSchool] { | ||
| 122 | - var allSchoolList:[OrganizeListSchool]=[] | ||
| 123 | - for json in j["data"].arrayValue { | ||
| 124 | - allSchoolList.append(OrganizeListSchool(j:json)) | ||
| 125 | - } | ||
| 126 | - return allSchoolList | ||
| 127 | - } | ||
| 128 | -} | ||
| 129 | - |
| @@ -0,0 +1,61 @@ | @@ -0,0 +1,61 @@ | ||
| 1 | +// | ||
| 2 | +// PassWordView.swift | ||
| 3 | +// YouerLiveVideo | ||
| 4 | +// | ||
| 5 | +// Created by 左丞 on 17/1/22. | ||
| 6 | +// Copyright © 2017年 左丞. All rights reserved. | ||
| 7 | +// | ||
| 8 | + | ||
| 9 | +import UIKit | ||
| 10 | + | ||
| 11 | +class PassWordView: UIView ,ZSDSetPasswordViewDelegate{ | ||
| 12 | + | ||
| 13 | + @IBOutlet weak var zsdView: ZSDSetPasswordView! | ||
| 14 | + var superVC:UIViewController! | ||
| 15 | + var passWord:String! | ||
| 16 | + var delegate:PassWordEnterViewDelegate! | ||
| 17 | + /* | ||
| 18 | + // Only override draw() if you perform custom drawing. | ||
| 19 | + // An empty implementation adve rsely affects performance during animation. | ||
| 20 | + override func draw(_ rect: CGRect) { | ||
| 21 | + // Drawing code | ||
| 22 | + } | ||
| 23 | + */ | ||
| 24 | + override func awakeFromNib() { | ||
| 25 | + NotificationCenter.default.addObserver(self, selector: #selector(PassWordView.KeyboardWillChangeFrame(_:)), name: NSNotification.Name.UIKeyboardWillChangeFrame, object: nil) | ||
| 26 | + zsdView.delegate = self | ||
| 27 | + | ||
| 28 | + zsdView.frame = CGRect(x: (getScreenWidth()-200)/2, y: 0, width: 200, height: 90) | ||
| 29 | + zsdView.layer.masksToBounds = true | ||
| 30 | + zsdView.layer.cornerRadius = 5 | ||
| 31 | + zsdView.fieldBecomeFirstResponder() | ||
| 32 | + | ||
| 33 | + let title = UILabel(frame: CGRect(x: (200 - 100)/2, y: 5, width: 100, height: 30)) | ||
| 34 | + title.text = "请输入密码" | ||
| 35 | + zsdView.addSubview(title) | ||
| 36 | + self.addSubview(zsdView) | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | + func KeyboardWillChangeFrame(_ noti:NSNotification){ | ||
| 40 | + let info = noti.userInfo | ||
| 41 | + let endFrame = info![UIKeyboardFrameEndUserInfoKey] as! NSValue | ||
| 42 | + let dur = info![UIKeyboardAnimationDurationUserInfoKey] | ||
| 43 | + UIView.animate(withDuration: dur as! TimeInterval, animations: { () -> Void in | ||
| 44 | + self.zsdView.frame.origin.y = (endFrame.cgRectValue.origin.y - 100)/2 | ||
| 45 | + }) | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + @IBAction func tapClick(_ sender: Any) { | ||
| 49 | + self.removeFromSuperview() | ||
| 50 | + } | ||
| 51 | + | ||
| 52 | + func passwordView(_ passwordView: ZSDSetPasswordView!, inputPassword password: String!) { | ||
| 53 | + if delegate != nil{ | ||
| 54 | + delegate.passwordView(password) | ||
| 55 | + } | ||
| 56 | + } | ||
| 57 | +} | ||
| 58 | + | ||
| 59 | +public protocol PassWordEnterViewDelegate : NSObjectProtocol { | ||
| 60 | + func passwordView(_ password: String!) | ||
| 61 | +} |
| @@ -0,0 +1,36 @@ | @@ -0,0 +1,36 @@ | ||
| 1 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
| 2 | +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11542" systemVersion="15G31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> | ||
| 3 | + <device id="retina4_7" orientation="portrait"> | ||
| 4 | + <adaptation id="fullscreen"/> | ||
| 5 | + </device> | ||
| 6 | + <dependencies> | ||
| 7 | + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11524"/> | ||
| 8 | + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | ||
| 9 | + </dependencies> | ||
| 10 | + <objects> | ||
| 11 | + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> | ||
| 12 | + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> | ||
| 13 | + <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="PassWordView" customModule="YouerLiveVideo" customModuleProvider="target"> | ||
| 14 | + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 15 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 16 | + <subviews> | ||
| 17 | + <view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="BEL-mr-Ny5" customClass="ZSDSetPasswordView"> | ||
| 18 | + <rect key="frame" x="87.5" y="288.5" width="200" height="90"/> | ||
| 19 | + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
| 20 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 21 | + </view> | ||
| 22 | + </subviews> | ||
| 23 | + <color key="backgroundColor" white="0.0" alpha="0.22880595438918913" colorSpace="calibratedWhite"/> | ||
| 24 | + <gestureRecognizers/> | ||
| 25 | + <connections> | ||
| 26 | + <outlet property="zsdView" destination="BEL-mr-Ny5" id="LDH-Il-CEp"/> | ||
| 27 | + <outletCollection property="gestureRecognizers" destination="NkT-gQ-zHa" appends="YES" id="zen-Fy-QcB"/> | ||
| 28 | + </connections> | ||
| 29 | + </view> | ||
| 30 | + <tapGestureRecognizer id="NkT-gQ-zHa"> | ||
| 31 | + <connections> | ||
| 32 | + <action selector="tapClick:" destination="iN0-l3-epB" id="DDe-4T-dWB"/> | ||
| 33 | + </connections> | ||
| 34 | + </tapGestureRecognizer> | ||
| 35 | + </objects> | ||
| 36 | +</document> |
YouerLiveVideo/YouerLiveVideo/util/network.swift
| @@ -90,28 +90,24 @@ final class KHttp{ | @@ -90,28 +90,24 @@ final class KHttp{ | ||
| 90 | 90 | ||
| 91 | final class HTTPServer{ | 91 | final class HTTPServer{ |
| 92 | static let HOST="http://60.190.202.49:8096/swagger/ui/index#"//"https://zbapi.myjxt.com"//"http://60.190.202.49:8096/swagger/ui/index#" | 92 | static let HOST="http://60.190.202.49:8096/swagger/ui/index#"//"https://zbapi.myjxt.com"//"http://60.190.202.49:8096/swagger/ui/index#" |
| 93 | - static let HOSTOLD="https://newapi.myjxt.com"//"http://60.190.202.49:8081" | ||
| 94 | 93 | ||
| 95 | - static let URL_UPLOAD_FILE=HOSTOLD+"/api/Resource/UploadFile" //上传图片 | ||
| 96 | static let URL_OAUTH_TOKEN=HOST+"/OAuth/Token" //登录 | 94 | static let URL_OAUTH_TOKEN=HOST+"/OAuth/Token" //登录 |
| 97 | 95 | ||
| 98 | - static let URL_CHANGEPHONECAPTCHA=HOST+"/api/Live/SendVerCode" //获取验证码 | ||
| 99 | - static let URL_LIVECREATEUSER=HOST+"/api/Live/AppCreateUser" //注册 | ||
| 100 | - static let URL_LIVEUSERINFO=HOST+"/api/Live/UserInfo" //更新本地个人信息 | ||
| 101 | - static let URL_LIVEUPDATEUSER=HOST+"/api/Live/APPUpdateUser" //修改个人信息 | ||
| 102 | - static let URL_LIVEISACTION=HOST+"/api/Live/IsAction" //关注或取消关注 | ||
| 103 | - static let URL_LIVECOMMENT=HOST+"/api/Live/Comment" //留言列表 | ||
| 104 | - static let URL_LIVEUSERCOMMENT=HOST+"/api/Live/UserComment" //用户留言 | ||
| 105 | - | ||
| 106 | - static let URL_LIVELIST=HOST+"/api/Live/LiveList" //直播列表 Hot热门,Rec推荐,My我创建的,Org机构的 学校第二层显示 | ||
| 107 | - static let URL_LIVEOLIVETYPE=HOST+"/api/Live/LiveType" //首页中直播和点播顶部分类Live 直播分类,Video 点播分类 | ||
| 108 | - | ||
| 109 | - static let URL_LIVECREATELIVE=HOST+"/api/Live/CreateLive" //创建直播间 | ||
| 110 | - static let URL_LIVEUPDATELIVE=HOST+"/api/Live/UpdateLive" //修改直播间信息 | ||
| 111 | - | ||
| 112 | - static let URL_LIVEORGANIZELIST=HOST+"/api/Live/OrganizeList" //我的关注的学校列表 All 所有的,Act我关注的 | ||
| 113 | - | ||
| 114 | - | 96 | + static let URL_ACCOUNTPHONECAPTCHA=HOST+"/api/Account/PhoneCaptcha" //获取验证码 |
| 97 | + static let URL_ACCOUNTCREATEUSER=HOST+"/api/Account/CreateUser" //游客注册 | ||
| 98 | + static let URL_ACCOUNTUPDATEPASSWORD=HOST+"/api/Account/UpdatePassword" //重设密码 | ||
| 99 | + static let URL_ACCOUNTCURRENTINFO=HOST+"/api/Account/CurrentInfo" //获取当前登陆用户的信息 | ||
| 100 | + static let URL_ACCOUNTACTIVATEACCOUNT=HOST+"/api/Account/ActivateAccount"//激活账号 | ||
| 101 | + static let URL_ACCOUNTUPDATEUSER=HOST+"/api/Account/Updateuser" //修改用户信息 | ||
| 102 | + static let URL_ACCOUNTADDUSER=HOST+"/api/Account/AddUser" // | ||
| 103 | + | ||
| 104 | + static let URL_COMMONGETCOURSEWAREVERSIONS=HOST+"/api/Common/GetCourseWareVersions" //获取所有的教材版本 | ||
| 105 | + static let URL_COMMONGETSUBJECTS=HOST+"/api/Common/GetSubjects" //获取学科 | ||
| 106 | + static let URL_COMMONGETSCHOOLTYPES=HOST+"/api/Common/GetSchoolTypes" //获取学段 | ||
| 107 | + static let URL_COMMONGETLUNBOLIST=HOST+"/api/Common/GetLunboList" //获取轮播图 | ||
| 108 | + static let URL_COMMONGETGRADES=HOST+"/api/Common/GetGrades" //根据学段获取年级 | ||
| 109 | + static let URL_COMMONGETCOURSEWAVES=HOST+"/api/Common/GetCourseWaves" //获取教材 | ||
| 110 | + static let URL_UPLOAD_FILE=HOST+"/api/Common/UploadFile" //文件上传接口,接受图片(gif,jpg,jpeg,png,bmp)、视频(flv,mp4)、音频(mp3,aac) | ||
| 115 | static let PLAYHISTORY=HOST+"/appfake_war_exploded/playhistory" //直播历史 | 111 | static let PLAYHISTORY=HOST+"/appfake_war_exploded/playhistory" //直播历史 |
| 116 | static let LIVEHISTORY=HOST+"/appfake_war_exploded/livehistory" //观看历史 | 112 | static let LIVEHISTORY=HOST+"/appfake_war_exploded/livehistory" //观看历史 |
| 117 | 113 | ||
| @@ -158,86 +154,36 @@ final class HTTPServer{ | @@ -158,86 +154,36 @@ final class HTTPServer{ | ||
| 158 | } | 154 | } |
| 159 | //获取验证码 | 155 | //获取验证码 |
| 160 | func getChangePhoneCaptcha(mobile:String,completionHandler:@escaping (String?, NSError?) -> Void){ | 156 | func getChangePhoneCaptcha(mobile:String,completionHandler:@escaping (String?, NSError?) -> Void){ |
| 161 | - KHttp.POST(url: HTTPServer.URL_CHANGEPHONECAPTCHA+"?F_MobilePhone=\(mobile)",parameters:["F_MobilePhone":mobile as AnyObject],headers:["Authorization":token!], completionHandler: completionHandler) | 157 | + KHttp.GET(url: HTTPServer.URL_ACCOUNTPHONECAPTCHA,parameters:["mobile":mobile as AnyObject],headers:["Authorization":token!], completionHandler: completionHandler) |
| 162 | } | 158 | } |
| 163 | - //注册 | 159 | + //游客注册 |
| 164 | func getCreateUser(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | 160 | func getCreateUser(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ |
| 165 | - KHttp.POST(url: HTTPServer.URL_LIVECREATEUSER, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | ||
| 166 | - } | ||
| 167 | - | ||
| 168 | - //更新本地个人信息 | ||
| 169 | - func uplocalUserInfo(completionHandler:@escaping (String?, NSError?) -> ()){ | ||
| 170 | - KHttp.POST(url: HTTPServer.URL_LIVEUSERINFO, headers:["Authorization":token!], completionHandler: completionHandler) | 161 | + KHttp.POST(url: HTTPServer.URL_ACCOUNTCREATEUSER, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) |
| 171 | } | 162 | } |
| 172 | - //修改个人信息 | ||
| 173 | - func updataUserInfo(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
| 174 | - KHttp.POST(url: HTTPServer.URL_LIVEUPDATEUSER, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | 163 | + //重设密码 |
| 164 | + func getUpdatePassword(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
| 165 | + KHttp.GET(url: HTTPServer.URL_ACCOUNTUPDATEPASSWORD, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | ||
| 175 | } | 166 | } |
| 176 | - //关注或取消关注 | ||
| 177 | - func setIsAction(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
| 178 | - KHttp.GET(url: HTTPServer.URL_LIVEISACTION, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | 167 | + //获取当前登陆用户的信息 |
| 168 | + func getCurrentInfo(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
| 169 | + KHttp.GET(url: HTTPServer.URL_ACCOUNTCURRENTINFO, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | ||
| 179 | } | 170 | } |
| 180 | - //留言列表 | ||
| 181 | - func postLiveComment(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
| 182 | -// KHttp.POST(url: HTTPServer.URL_LIVECOMMENT, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | ||
| 183 | - KHttp.POST(url: HTTPServer.URL_LIVECOMMENT+"?LiveId=\(parameters!["LiveId"]!)", parameters: nil,headers:["Authorization":token!], completionHandler: completionHandler) | ||
| 184 | - | 171 | + //激活账号 |
| 172 | + func postActivateAccount(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
| 173 | + KHttp.POST(url: HTTPServer.URL_ACCOUNTACTIVATEACCOUNT, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | ||
| 185 | } | 174 | } |
| 186 | - //用户留言 | ||
| 187 | - func getLiveUserComment(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
| 188 | - KHttp.GET(url: HTTPServer.URL_LIVEUSERCOMMENT, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | 175 | + //修改用户信息 |
| 176 | + func postUpdateUser(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
| 177 | + KHttp.POST(url: HTTPServer.URL_ACCOUNTUPDATEUSER, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | ||
| 189 | } | 178 | } |
| 190 | 179 | ||
| 191 | - //MARK:-首页直播信息 | ||
| 192 | - //直播列表 Hot热门,Rec推荐,My我创建的,Org机构的 学校第二层显示 | ||
| 193 | - func getLive(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
| 194 | - KHttp.GET(url: HTTPServer.URL_LIVELIST, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | ||
| 195 | - } | ||
| 196 | - //首页中直播和点播顶部分类Live 直播分类,Video 点播分类 | ||
| 197 | - func postLiveType(type: String,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
| 198 | - KHttp.POST(url: HTTPServer.URL_LIVEOLIVETYPE+"?F_Type=\(type)",headers:["Authorization":token!], completionHandler: completionHandler) | ||
| 199 | - } | ||
| 200 | - //MARK:-直播间我的 | ||
| 201 | - //创建直播间 | ||
| 202 | - func postCreateLive(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
| 203 | - KHttp.POST(url: HTTPServer.URL_LIVECREATELIVE, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | ||
| 204 | - } | ||
| 205 | - //修改直播间信息 | ||
| 206 | - func postUpdateLive(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
| 207 | - KHttp.POST(url: HTTPServer.URL_LIVEUPDATELIVE, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | ||
| 208 | - } | ||
| 209 | - //我的关注的学校列表 All 所有的,Act我关注的 | ||
| 210 | - func postLiveOrganizeList(type: String,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
| 211 | - KHttp.POST(url: HTTPServer.URL_LIVEORGANIZELIST+"?WhatType=\(type)",headers:["Authorization":token!], completionHandler: completionHandler) | ||
| 212 | - /* | ||
| 213 | - let url=NSURL(string: HTTPServer.URL_GROUP_TEACHERLIST+"?GroupId=\(groupid)") | ||
| 214 | - let request:NSMutableURLRequest=NSMutableURLRequest(URL: url!) | ||
| 215 | - request.HTTPMethod = "GET" | ||
| 216 | - request.setValue(token, forHTTPHeaderField: "Authorization") | ||
| 217 | - request.setValue(KHttp.getSign(),forHTTPHeaderField: "sign") | ||
| 218 | - //以后用Session | ||
| 219 | - let config=NSURLSessionConfiguration.defaultSessionConfiguration() | ||
| 220 | - let session=NSURLSession(configuration: config, delegate: URLSessionVC.share, delegateQueue: nil) | ||
| 221 | - let dataTask=session.dataTaskWithRequest(request) { (data, response, sessionError) in | ||
| 222 | - if sessionError==nil{ | ||
| 223 | - completionHandler(NSString(data: data!, encoding: NSUTF8StringEncoding) as? String,nil) | ||
| 224 | - }else{ | ||
| 225 | - completionHandler("",sessionError) | ||
| 226 | - } | ||
| 227 | - } | ||
| 228 | - dataTask.resume() | ||
| 229 | - */ | 180 | + // |
| 181 | + func getAddUser(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
| 182 | + KHttp.GET(url: HTTPServer.URL_ACCOUNTADDUSER, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | ||
| 230 | } | 183 | } |
| 231 | 184 | ||
| 232 | 185 | ||
| 233 | - //直播历史 | ||
| 234 | - func getPlayHistory(completionHandler:@escaping (String?, NSError?) -> ()){ | ||
| 235 | - KHttp.POST(url: HTTPServer.PLAYHISTORY,headers:["Authorization":token!], completionHandler: completionHandler) | ||
| 236 | - } | ||
| 237 | - //观看历史 | ||
| 238 | - func getLiveHistory(completionHandler:@escaping (String?, NSError?) -> ()){ | ||
| 239 | - KHttp.POST(url: HTTPServer.LIVEHISTORY,headers:["Authorization":token!], completionHandler: completionHandler) | ||
| 240 | - } | 186 | + |
| 241 | 187 | ||
| 242 | } | 188 | } |
| 243 | let SERVER_MESSAGE=393939 | 189 | let SERVER_MESSAGE=393939 |
YouerLiveVideo/YouerLiveVideo/util/utiles.swift
| @@ -400,15 +400,4 @@ func selectImageFromString(string:String)->String{ | @@ -400,15 +400,4 @@ func selectImageFromString(string:String)->String{ | ||
| 400 | return "icon" | 400 | return "icon" |
| 401 | } | 401 | } |
| 402 | 402 | ||
| 403 | -func persentToMoivePlayer(from:UIViewController,liv:LiveDetail){ | ||
| 404 | - let endDate = JSON.fromString(jsonString: liv.f_Description)!["endtime"].doubleValue/1000 as TimeInterval | ||
| 405 | - if Date().timeIntervalSince1970 < endDate{ | ||
| 406 | - let vc = UIStoryboard(name: "Live", bundle: nil).instantiateViewController(withIdentifier: "MoivePlayerViewControllerVC") as! MoivePlayerViewController | ||
| 407 | - vc.liveDetail = liv | ||
| 408 | - from.present(vc, animated: true, completion: nil) | ||
| 409 | - }else{ | ||
| 410 | - AppDelegate.instance().window?.makeToast("直播已经结束", duration: 2, position: CSToastPositionCenter) | ||
| 411 | - } | ||
| 412 | - | ||
| 413 | -} | ||
| 414 | 403 |