From 40456d270d62b946ece6a369a22b8dc67eeeb794 Mon Sep 17 00:00:00 2001 From: chenshuanglin <1273934588@qq.com> Date: Fri, 3 Mar 2023 19:31:22 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Podfile.lock | 2 +- xplan-ios.xcodeproj/project.pbxproj | 24 ++ .../home_head_game.imageset/Contents.json | 22 + .../home_head_game@2x.png | Bin 0 -> 7580 bytes .../home_head_game@3x.png | Bin 0 -> 11893 bytes .../home_head_match.imageset/Contents.json | 22 + .../home_head_match@2x.png | Bin 0 -> 5801 bytes .../home_head_match@3x.png | Bin 0 -> 7519 bytes .../home_head_party.imageset/Contents.json | 22 + .../home_head_party@2x.png | Bin 0 -> 11124 bytes .../home_head_party@3x.png | Bin 0 -> 15926 bytes .../home_head_radio.imageset/Contents.json | 22 + .../home_head_radio@2x.png | Bin 0 -> 7384 bytes .../home_head_radio@3x.png | Bin 0 -> 11902 bytes .../Home/home_hot_bg.imageset/Contents.json | 22 + .../home_hot_bg.imageset/home_hot_bg@2x.png | Bin 0 -> 2467 bytes .../home_hot_bg.imageset/home_hot_bg@3x.png | Bin 0 -> 4751 bytes .../home_nav_rank@2x.png | Bin 2121 -> 1973 bytes .../home_nav_rank@3x.png | Bin 2956 -> 2861 bytes .../home_nav_search@2x.png | Bin 579 -> 685 bytes .../home_nav_search@3x.png | Bin 875 -> 813 bytes xplan-ios/Base/UI/ThemeColor.m | 8 +- .../Home/View/XPFindNewFriendTableViewCell.h | 16 + .../Home/View/XPFindNewFriendTableViewCell.m | 39 ++ .../Main/Home/View/XPNewHomeHeaderView.h | 36 ++ .../Main/Home/View/XPNewHomeHeaderView.m | 217 ++++++++++ xplan-ios/Main/Home/View/XPNewHomeNavView.h | 28 ++ xplan-ios/Main/Home/View/XPNewHomeNavView.m | 105 +++++ .../Main/Home/View/XPNewHomeViewController.h | 16 + .../Main/Home/View/XPNewHomeViewController.m | 391 ++++++++++++++++++ .../Main/Tabbar/View/TabbarViewController.m | 4 +- 31 files changed, 990 insertions(+), 6 deletions(-) create mode 100644 xplan-ios/Assets.xcassets/Home/home_head_game.imageset/Contents.json create mode 100644 xplan-ios/Assets.xcassets/Home/home_head_game.imageset/home_head_game@2x.png create mode 100644 xplan-ios/Assets.xcassets/Home/home_head_game.imageset/home_head_game@3x.png create mode 100644 xplan-ios/Assets.xcassets/Home/home_head_match.imageset/Contents.json create mode 100644 xplan-ios/Assets.xcassets/Home/home_head_match.imageset/home_head_match@2x.png create mode 100644 xplan-ios/Assets.xcassets/Home/home_head_match.imageset/home_head_match@3x.png create mode 100644 xplan-ios/Assets.xcassets/Home/home_head_party.imageset/Contents.json create mode 100644 xplan-ios/Assets.xcassets/Home/home_head_party.imageset/home_head_party@2x.png create mode 100644 xplan-ios/Assets.xcassets/Home/home_head_party.imageset/home_head_party@3x.png create mode 100644 xplan-ios/Assets.xcassets/Home/home_head_radio.imageset/Contents.json create mode 100644 xplan-ios/Assets.xcassets/Home/home_head_radio.imageset/home_head_radio@2x.png create mode 100644 xplan-ios/Assets.xcassets/Home/home_head_radio.imageset/home_head_radio@3x.png create mode 100644 xplan-ios/Assets.xcassets/Home/home_hot_bg.imageset/Contents.json create mode 100644 xplan-ios/Assets.xcassets/Home/home_hot_bg.imageset/home_hot_bg@2x.png create mode 100644 xplan-ios/Assets.xcassets/Home/home_hot_bg.imageset/home_hot_bg@3x.png create mode 100644 xplan-ios/Main/Home/View/XPFindNewFriendTableViewCell.h create mode 100644 xplan-ios/Main/Home/View/XPFindNewFriendTableViewCell.m create mode 100644 xplan-ios/Main/Home/View/XPNewHomeHeaderView.h create mode 100644 xplan-ios/Main/Home/View/XPNewHomeHeaderView.m create mode 100644 xplan-ios/Main/Home/View/XPNewHomeNavView.h create mode 100644 xplan-ios/Main/Home/View/XPNewHomeNavView.m create mode 100644 xplan-ios/Main/Home/View/XPNewHomeViewController.h create mode 100644 xplan-ios/Main/Home/View/XPNewHomeViewController.m diff --git a/Podfile.lock b/Podfile.lock index 5a57179a..e83cf6ef 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -175,7 +175,7 @@ SPEC REPOS: - YYWebImage SPEC CHECKSUMS: - AFNetworking: 7864c38297c79aaca1500c33288e429c3451fdce + AFNetworking: 3bd23d814e976cd148d7d44c3ab78017b744cd58 AgoraRtcEngine_iOS: 8ccceaaecff2e80ab28fcd33f3dfd2b417eb5365 Base64: cecfb41a004124895a7bcee567a89bae5a89d49b Bugly: b8715e6ec4004b7f7fbffab0643ba80545aee3da diff --git a/xplan-ios.xcodeproj/project.pbxproj b/xplan-ios.xcodeproj/project.pbxproj index 22d55110..817a267b 100644 --- a/xplan-ios.xcodeproj/project.pbxproj +++ b/xplan-ios.xcodeproj/project.pbxproj @@ -7,6 +7,10 @@ objects = { /* Begin PBXBuildFile section */ + 146567D929B1D62E00A1F5B9 /* XPNewHomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 146567D829B1D62E00A1F5B9 /* XPNewHomeViewController.m */; }; + 146567DC29B1D6A900A1F5B9 /* XPNewHomeNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = 146567DB29B1D6A900A1F5B9 /* XPNewHomeNavView.m */; }; + 146567E229B1E1CF00A1F5B9 /* XPNewHomeHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 146567E129B1E1CF00A1F5B9 /* XPNewHomeHeaderView.m */; }; + 146567E529B1F55200A1F5B9 /* XPFindNewFriendTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 146567E429B1F55200A1F5B9 /* XPFindNewFriendTableViewCell.m */; }; 180116F9279E8C4C00F2CBC0 /* PLTimeUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 180116F8279E8C4C00F2CBC0 /* PLTimeUtil.m */; }; 180116FC279E8CCE00F2CBC0 /* NVDate.m in Sources */ = {isa = PBXBuildFile; fileRef = 180116FA279E8CCE00F2CBC0 /* NVDate.m */; }; 180806D827293794001FD836 /* NSObject+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 180806D727293794001FD836 /* NSObject+MJExtension.m */; }; @@ -1267,6 +1271,14 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 146567D729B1D62E00A1F5B9 /* XPNewHomeViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPNewHomeViewController.h; sourceTree = ""; }; + 146567D829B1D62E00A1F5B9 /* XPNewHomeViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPNewHomeViewController.m; sourceTree = ""; }; + 146567DA29B1D6A900A1F5B9 /* XPNewHomeNavView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPNewHomeNavView.h; sourceTree = ""; }; + 146567DB29B1D6A900A1F5B9 /* XPNewHomeNavView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPNewHomeNavView.m; sourceTree = ""; }; + 146567E029B1E1CF00A1F5B9 /* XPNewHomeHeaderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPNewHomeHeaderView.h; sourceTree = ""; }; + 146567E129B1E1CF00A1F5B9 /* XPNewHomeHeaderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPNewHomeHeaderView.m; sourceTree = ""; }; + 146567E329B1F55200A1F5B9 /* XPFindNewFriendTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPFindNewFriendTableViewCell.h; sourceTree = ""; }; + 146567E429B1F55200A1F5B9 /* XPFindNewFriendTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPFindNewFriendTableViewCell.m; sourceTree = ""; }; 180116F7279E8C4C00F2CBC0 /* PLTimeUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PLTimeUtil.h; sourceTree = ""; }; 180116F8279E8C4C00F2CBC0 /* PLTimeUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PLTimeUtil.m; sourceTree = ""; }; 180116FA279E8CCE00F2CBC0 /* NVDate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NVDate.m; sourceTree = ""; }; @@ -8340,6 +8352,14 @@ E87A27022758BC81002DDC7A /* XPRoomSearchContainerViewController.m */, 9B88E20D28C6305400D26FBA /* XPRoomSearchRecordViewController.h */, 9B88E20E28C6305400D26FBA /* XPRoomSearchRecordViewController.m */, + 146567D729B1D62E00A1F5B9 /* XPNewHomeViewController.h */, + 146567D829B1D62E00A1F5B9 /* XPNewHomeViewController.m */, + 146567DA29B1D6A900A1F5B9 /* XPNewHomeNavView.h */, + 146567DB29B1D6A900A1F5B9 /* XPNewHomeNavView.m */, + 146567E029B1E1CF00A1F5B9 /* XPNewHomeHeaderView.h */, + 146567E129B1E1CF00A1F5B9 /* XPNewHomeHeaderView.m */, + 146567E329B1F55200A1F5B9 /* XPFindNewFriendTableViewCell.h */, + 146567E429B1F55200A1F5B9 /* XPFindNewFriendTableViewCell.m */, ); path = View; sourceTree = ""; @@ -9450,6 +9470,7 @@ 9BD9A18027A0EFC7004186FE /* XPMineVisitorTableViewCell.m in Sources */, E8A1F7A529068F500099C952 /* XPNobleMyInfoView.m in Sources */, 9BD2ECD2288F833B00F5CD9A /* XPMineFootPrintModel.m in Sources */, + 146567D929B1D62E00A1F5B9 /* XPNewHomeViewController.m in Sources */, E824546626F5FF6000BE8163 /* XPMineResetPayPasswordProtocol.h in Sources */, E800807227FD6C3D0055A8AB /* XPClanPresenter.m in Sources */, E89DA66427005932008483C1 /* XPIAPHelper.m in Sources */, @@ -9522,7 +9543,9 @@ 9B92A36327980DCC00AD168F /* Api+SkillCard.m in Sources */, E81A65342834E58A00F55894 /* XPMonentsLatestPresenter.m in Sources */, E88B5CB526FB20B800DA9178 /* XPMineTeenagerPwdView.m in Sources */, + 146567E229B1E1CF00A1F5B9 /* XPNewHomeHeaderView.m in Sources */, E8E859C128264C2300EE4857 /* MyHTTPConnection.m in Sources */, + 146567E529B1F55200A1F5B9 /* XPFindNewFriendTableViewCell.m in Sources */, 9BDA3E7A27FD43EF00517FE6 /* XPAnchorFansTeamEntranceView.m in Sources */, E81C279826EB3AC40031E639 /* LoginForgetPasswordProtocol.h in Sources */, 9BAC92F228E6A05600147DD8 /* XPRoomActivityPlayModel.m in Sources */, @@ -9860,6 +9883,7 @@ E8E20BDB281645300033B688 /* SessionInfoViewController.m in Sources */, E8AB631C28ADE30E0023B0D2 /* XPMonentsTopicLatestPresenter.m in Sources */, E8E859CA28264C2300EE4857 /* WebSocket.m in Sources */, + 146567DC29B1D6A900A1F5B9 /* XPNewHomeNavView.m in Sources */, E80A63DC28B86B9700690914 /* MessageContentMonentsAutoView.m in Sources */, E8098CB4282E97550090B9F0 /* XPMineBlackListPresenter.m in Sources */, E8E859CC28264C2300EE4857 /* MultipartFormDataParser.m in Sources */, diff --git a/xplan-ios/Assets.xcassets/Home/home_head_game.imageset/Contents.json b/xplan-ios/Assets.xcassets/Home/home_head_game.imageset/Contents.json new file mode 100644 index 00000000..af18f963 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Home/home_head_game.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "home_head_game@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "home_head_game@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Home/home_head_game.imageset/home_head_game@2x.png b/xplan-ios/Assets.xcassets/Home/home_head_game.imageset/home_head_game@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d51aac1bdbc2719ba8da82a1698655e07f9ab739 GIT binary patch literal 7580 zcmX9@byyV4*QHSwP-##wkdoLHBqXJ!1t~#VL8L>vV`&kPl9HANk=}(RmJk#H5fE6G zZg%M<=jZ!<^E`9s%rocCoQXSs%)~s?R;8h0qaq?AqEUOQr1!7H|I4mdNdH-8DH
    R0=kOLA6KzQ8oSp-ZZjg!mPg~;*=voBz z(;yXjnNkN1PQk!37+eEw7_fQ(&`aR_5{zzw&Uuj80cLRET@U#11tiv7Cbe89)q*!( zE4X8T!GjDG_}F^6um?uhLG={qmlHCLo+#Ce~d#`mS3HfYpt2os#pX1!up06H+@alaZJ46_*90 zAb$uXwOv-$?*&9}>>pfa4+B>Oi2XO0tZkQoRdc7Myb+N36C^fXMyG6rz2E%14a)z3 z?IRH1a?!g8lD`6t;`7p)-M>4)0SSD2fLAMU4_Pbv4X}%6Ug5hLUEnX~G$Q3BFy^Qg zbx=@_Py4(RU3IavdKMOciXJ?23EWDo0^SkpH6tKw2;_7FRPT{r17{{cJri;%>l0u*o$-m&QbPIZ?)(fF)lT;~)h8v=vF#~xujcHhCvqRVHQ z7hydh7zv^>&OQu-@cN6|rhU66;L!l=i!Nfb&c9>9w?Sal3ykwF<8v<(I>EEL3;&-$ zEDyL2f%I>ei5E=&1;!muJ?-a2uqzB4^6?j_DsQWUUpa>xbr}kKItx>ilh`-UcL^20 zraHTch}gu{l;rh&{{GGw)@IXXh?4)nJARL4Iz-EcKiZJ`m+<&{p8YQ?x~G<7%&wiL z1h#$26x7>M8Y_pVGtKU+oClOM^VB~jCgP~6E$#>y2cFO#4{<%xx{t`yFBA1L5TgGM1fEgrt4{T%;*y%CYFo{W@Z-NgqsduCXyfhit}G1@|aOON5$TA zihP0nu1+BoLr(GZ{F8<22NDZBX}CGJg6bnq!UV+#>OS@2h&+4lcE3qx6z!ftZ<|jr zYiOv;vBF+4*HDDG!kw0QPKbajk7#Arw8M4nvl|(5BeHXl9C{j|Ipw?Acjm@V>{Rc= zu4+hGUGX5L*PxzL0`H%nYI>;GQMnp`e*QiA( z%DJmUwe(LfG{z3H$rh`;N)ZA;%CU{&wHv?oOBbVLciI_EwCb2cOO zrZ(&75ZRH;4Goon-EB_6bL`)D4Ue$7i`o^XbZV(OcIql29(h?kXJ}v`ro9i~dB?Bq zW~LjdROV!D^B@6OHz$c3t;{6;mWUEkMTws`;4bn;o1aR`FJfx$D(25_mwzp>|2o6| z<*NLMufl-1fiQGs>cHd+&&tmhtPkjGRGwIc$ z=dne0^e;zOmE?4;e!06lq!6nCuij`$F4`D>d-(H!U6J`=fjF0W9JAhfW^#|(`LEUc zt7ON={wPq0$_-NaOwL@k&(XG9L^*>Ew0EW@UlCdHgY(A?BY%4qm92A`88k5oe~lRW zI{s+QJ+n?Aoq^}2SJ%kEA2J&$k$8jASUqHL{}9QMjk}GrmHQzlb|DepevZSYR5N2! z3JS~Gacw*-z7xKKi@!*8@=bJqLwhG91lHjLvPv9YaV8AFeSeYK`splj&W(~Xty-(_Ao-E4`Q@xM5UVrs7ID)b_{{5`9V z)$7-2+5OEa)I1VbuV$b}L+NPby4#=KL$5|r_pJfZZEW?}uE;2}g`srmeuH)FeUF#P z-mLr^j}z)xt2df|->#K0KQ_**Zrt0i1&Rm&%&utdGHpQ5bg* ztd_g?E&HL4`_=UO*l42^^YMQVHvtk=n8kiMn10cZ#bQ-EF8++vA(4$F zbyYI_DC2I*P&9FSS-FA2^L;o^^2TPL8+QA`A_5O!S5oZnwQ887&@5`4AhnNIjw z`?k!{GCfHE_G<4p6Kls87*gnGO=GB*hh)qmy^;rG-dwI=ZV;S7}s* z=9(8mhN>vW(N^r9?HWQesQ$*$UQF%9tb6b8cmZ8G1}#HoCu9Wa zu4f@L780na=@9v6Q8`i;ftfmSkyB$=-q2Va6MBtE50pUR}5)Z8LAogdEKI~ZMnpE^Ub;< zN)ORwxZuYyDtL{Z8;#ehAZc4-#fcAi+zf@j z9&XV-7;qD;=DYu@wXUQ$dj1M@-Lpb8RA+1Dm+Mpm{C#6*j-2;%4F?mAIa!yp$Rqz% zNn&p2db_J}@ip<}=ZYqU%)Ue=^qN@Jd}Wj)nT{1?+GdJeO0Zg8m(BtG%>?zHoGWsp zZ@%CxIl(@%)GhEj5-EA5U#DJe`^d64F>$gRtvF-VNj{OrLA zX%&rm2w#$~t`%`m0Wo#W^oZ0ELpf<_m_P>Fx?CZiwWx1W0HtpwN_)fLk)&C%5mi1^ zXIor9$ z;~)4D&qYs>8@hCEl1teUTtbv1P1|=ctH_zNkr)r{n50uy8r)3_a#<>IKR$o#*rRV` z1h;FG&n@`3>|t!nAw&>6+56X8(BQ!6q`8$>xkMH`bEp6)ZmOVkd`W zTH6W=<@aE`CD}T!TO9aZ{JWR5b4gizAzFfnkGm;$BsM96hj*bU29la7Y(2^OQA$*( zt|gb&>ide;ov?LL;~!%VPmV38;wczWQyj0nsIx3EQDyMfQRb&%8{WaOzc4Mu556V6kk`o^5Y~2+A+S=;fbOV# zR|j@Nx@!(ID>Y#v$VG+Y(W98YzP{DIfNe95or$}_HT)EWzOhpKr?)xr)8F8H3FNtB zsh&fuFT`nxONQ63s#OB8@Swm;` z*?l^~7a|w9!XdWWLc!bxTZjta>9>9rb0Qt&KQu8tzSnSbk7O%0YB-vTRNxN`y~$`f z8TNXT!43Yf0{{C-)4jB@k+K8HxMJczbizgk&XwW3V;h3HYNB>#1FwDR!k5)aS=cYA z5hS-NDX&G&1aU*%&!*?*3Yy8ycTdh0EnC;A$j>?4hFQz;C;LRfcmLo!Elt$ReBMtd zD!&Y2F8wmxknPwJ#W*%!-k)JJAg#*v_}ncO!Ad_@CHQc!G@V#=;Sny)46h57h^O*L zai$=h13M2-0{C;TLtuywm&TJ`6E`=m15eLUyZU2I`6_xrTJquZ>h%)? zO6e%;bP>-|@*iIx#j%+PJIn69Ofz`wupkzXc;heldPGD?)_~}bz%OPzC)bRrA8NRn zafjBglQZS;@bGTBm=rry0rOne!eT-e8am5Hir5ZGy!#D)jZ#h(CnGiX&#^<25}#CF z@I718SpHENRpwPs$IdT;=``=)N|WOcRaRe)ryE;E-5n4#S*urTL)Wk~nlsPLf$o;J z`KNhI2O*}xM?TYk1M&hV5tJOa0ahdrx;1}EclG+@^Tk}>YXmo9=YxA5&vjdGFg>h) znIk)@pUV5_qt_bC>H>9{F@%UQ{HX9_c0m-kTBNjr?bC;xaUdba1uQ@AWFP_f4NG2k zwNh~@*F7)#9^ZH2cSJ$`=XO4*xWQc?ITw$Z%zI<7~ zx_VbOX3_D{h)YU|csW(5NC3EtM7emr5!IsT(Sc zD@qRpD-L=x%%6UWB6Uqps9pJm!@3`)pX_=?{`C0xZ>yi=glb%jnC(NkV$n9 zqmiPy;JgoK&p*X}5oz505l#|EH>}L4lqPt})ur_S7E{AYl`iq!7E7wdr)Kb)Gpl@F zxuqqvaCrV=bL#A-asLtWP&7Wke30!;^67hwMhEAmz2KPOl>7kcm|E1hYDLQaJKsa7I(sFYYj2TI`zqv(C6^Be`o2 z7UZRQ^_l9n?yc>pjBYQOd{ZBDZj3RBiQ(ccdfN4tYw|hT=ffTI0t39>M?YTcD|&14 z=T8LuZa~c$65GW^vczqk)V&#%Q>WTqo&a0g;`@7B+db<@AAWk2e_ieLwyQ}%kT|EaSiKc7&aoXqejy}%LJC9dmm1Xvq(9LvT2XMAc({IssVdE&Z{B~j0B7ZwV1A zaf-+9vucUD#RNv-18asbUtjd0WJpE*gk1LauK(?R?57&PxXgoRBAl<&L)B&qf9UKU zQs1~RCxSV5-(wfb=$UkzH>ltk8j(__Bt)V&T%Lni;1-FOeQ6l|1qEQ>-zB-q;0LQj?g=E`{8%oPjH+ zq3mupDnIuw)y`26j($!f?&?5iJkd~q7j_*zcv_kH@F4b#(eH5vRqu#v5)e7nJ`rI- zKVVUB|7uBYScZETy6-%~?INsUJ<&Y7^*Z!nAx4)}&PJUKdwZ@>9DyPhGA^UNw)9VHz2<=bZL}fm)2FWOE2r%A z*o&nE6#tc(m@tFd2N+6gqWbqXwrg*S=|V*ZwZ)LfHLn#1TTsYJoYhi+c;`2Lm{a$M zVm;Woq7d1D!i-Dz{^#HL?sz*@b0Q0kzYk}EBGa|<*(qJTAwKM(=}$W)SQ6$%qzV={ z+}eyE$ykuskrb{+#+MYFF>ZRxapyA)eT_%u1PD2rjlf>}Fmy|Ch-mV_e!x^M2TAMj z)~$LABut9l0bTOQ*YjeCD==R^@Wt}fv3ul=z~)Hd%}Dufp%sr%d#P3(OX#B=Rm}SO zdg+Wm8ALWh(fbZ2+* zesBg%;AxP$$tdGA{y;kM@|QN7d@h?;?9_U{KMs>)tQm5wV}8DC|22yvlH8|(%n%I?k$-)ZmM?oCGeXRaapu>X}7F}#) zV{UfybguL8b0TASTKKU<=XB5jl@9WpM6Go0cQP9@|AZrs%<)9+C0}a&6iSh#;`K(l zZ%V#r`^EAgT~?36%PAb$?ZZY(k~r+ZEKmKf+#Ida$jKUVW*k0*nG?m=9sMUgolzn+ z9h>PM?t9U-sWZF+DVbXLY9o_fAxrcPGE}qlO`t85z+K;b8$hyuT~lDqpp~M?;Du1d zZ#;EuoyA_GmIo(^;;G64l?GM1)%W>&a3IPa9Hc`j)i^EnfE&tOq1+vfwpI}^5E5U# zG9v(~Dduum6U@NHp`S8$exrV_O+X0vcq(yb^thbs%|smXd?^=eethj^F8{Kh*b}U+ z-a#DZ#R2ABD1YV+e6zGJv4Q0IQ-6PO_l@{^j50-uemyZ6i)x*Y6s@|6? z;eQ4Hu)d1MWER|Q#*bmg#;&~Y8oO_t@KwE=4#PDqHH^^5^O=17vf#v*@zZwxSz1iO zyD>g^h=l1^)t!%#8W%oLH6GD!ET~r~@wT?VU!cBThRMVwi=+ zT!REUGtVCG^Es+NixSsY#d6HO#3iYGJo0l(cH`!u^`%oM8O6inKa#k}$>e<>B6Hb5 z^k(Fiu2T#0q^aU|lgW9BVi^CyimQ=!*yN^Yj76XrKUc0`4q|PqCRpf+sQJ3A4 z^7uI>s^%x6ao)j?xMLpqgFgDOs3cTl^RSeQ1wElLV6H=2y=@jpOHg(E+zi>~u z(ploPv24e7PV5j-zmm;@%U}01`~EuM1$L# zxllRx^@(c<>`44EW-fGq|IEx(r|E~wob3tOqgQ(fo9)eGMu|m#@vGjqM*RanEKVu8 oObdK&VoY5?mg;PsBJq?I;c_-~ZzECvzMF{Dl(m(r6)eO42MDBsE&u=k literal 0 HcmV?d00001 diff --git a/xplan-ios/Assets.xcassets/Home/home_head_game.imageset/home_head_game@3x.png b/xplan-ios/Assets.xcassets/Home/home_head_game.imageset/home_head_game@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..015ab9f28e488f7fa6eb1ff95115caa9a1670421 GIT binary patch literal 11893 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 QPb7h+s*Xy%l6Ca|0dy4M-~a#s literal 0 HcmV?d00001 diff --git a/xplan-ios/Assets.xcassets/Home/home_head_match.imageset/home_head_match@3x.png b/xplan-ios/Assets.xcassets/Home/home_head_match.imageset/home_head_match@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..259389e80285224846d3a0e5674400a8029d6022 GIT binary patch literal 7519 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 literal 0 HcmV?d00001 diff --git a/xplan-ios/Assets.xcassets/Home/home_head_party.imageset/Contents.json b/xplan-ios/Assets.xcassets/Home/home_head_party.imageset/Contents.json new file mode 100644 index 00000000..0f59758f --- /dev/null +++ b/xplan-ios/Assets.xcassets/Home/home_head_party.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "home_head_party@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "home_head_party@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Home/home_head_party.imageset/home_head_party@2x.png b/xplan-ios/Assets.xcassets/Home/home_head_party.imageset/home_head_party@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ee888a8d8c5428047c54ae0f83dfbbc344475d24 GIT binary patch literal 11124 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%0AQ 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 Y0{5`6J73qoT>t<807*qoM6N<$f;BQmC;$Ke literal 0 HcmV?d00001 diff --git a/xplan-ios/Assets.xcassets/Home/home_head_radio.imageset/Contents.json b/xplan-ios/Assets.xcassets/Home/home_head_radio.imageset/Contents.json new file mode 100644 index 00000000..2527b4fb --- /dev/null +++ b/xplan-ios/Assets.xcassets/Home/home_head_radio.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "home_head_radio@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "home_head_radio@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Home/home_head_radio.imageset/home_head_radio@2x.png b/xplan-ios/Assets.xcassets/Home/home_head_radio.imageset/home_head_radio@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8f77e9ca59a84d64b860a848479875d7aa3ea434 GIT binary patch literal 7384 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 KMNUMnLSTY92N;e3 literal 0 HcmV?d00001 diff --git a/xplan-ios/Assets.xcassets/Home/home_head_radio.imageset/home_head_radio@3x.png b/xplan-ios/Assets.xcassets/Home/home_head_radio.imageset/home_head_radio@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..4530c794fbc84ca038da670e800dc36e4ac445f5 GIT binary patch literal 11902 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 Eg18_HhX4Qo literal 0 HcmV?d00001 diff --git a/xplan-ios/Assets.xcassets/Home/home_hot_bg.imageset/Contents.json b/xplan-ios/Assets.xcassets/Home/home_hot_bg.imageset/Contents.json new file mode 100644 index 00000000..e7a83aec --- /dev/null +++ b/xplan-ios/Assets.xcassets/Home/home_hot_bg.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "home_hot_bg@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "home_hot_bg@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Home/home_hot_bg.imageset/home_hot_bg@2x.png b/xplan-ios/Assets.xcassets/Home/home_hot_bg.imageset/home_hot_bg@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..73cc8ec15017a938ceef5caec6fd5dee46cf0011 GIT binary patch literal 2467 zcmcgs`#Y5D8vaBwwAvYR?7%dMFcsynD-9;iShC2W_;T8bseIIGCrJ#8A}W$8IV)67 zs~N_SoK<@y%0i7%?GckXImC?9%(uQ-d#!(9U;En656^SI&*8q__j>N@P4jR+{DZoI zIsgDakcfn%0I-UI;Ja$di1##kz(Rt=!_E5;5@8sY%jGK)xl{r#N?^G}J}-r5Brtyl zslf2OTqcLVi4|~SO5r6^g^E0TW~$@wDrvQV}x zK&}QaA^lVE3^Fd1E%I09`LZd2Og1T-6v6yySR|Csisd4)Tq=-#orYl%ESQF!&pglZ$Qhx=VFDr=@8r@9S-0KPO1QHGX&$cTpn+s_1E-0{}H^ z62Z|shAk|(>@@(aKkU_f=R*%;^3YCPtqZj6MmklenVkP@ZaG2!5{S((ez5*m;hdD} zJvq(GE4a7*=$KXa+vpZ(0Lp@R-$(kQ8CI&3H%XM^c zOw|ofRfj%BV_&OGEbXkaus1y3V6^+PRludyZ1ut-YlwAlFF@>CcS@r<0*=C}#MlQi zt4o#eXjfXqvGQt*6P51J3VSU!q=%tF_aQh@f=s=1wuc!hZQ4=m4Yv0^YxvM$_`+Cv&e@&P@;;u?0G2lxh|Q6uW|f4FPOx zpkEu6LGs~rsNFr?lS={HDKuiH+hZ=*vcKFiJjr>VDsTgn_^;e-K2BoUUslagA9{I` zkXS>^Z0&E?I!LjBbQ4OlU-hE!Uf9=K2d5ty6uXZ+u?>$B*zHt)fGPPL6f;uY1{RY* zakA6svm!%)oR<9K?e*O$yZ*@K`<3Ae3xGMoD(m?Jm0}OnF>MM4(hqXT>544XrcjB& z<(qeMXq{Z08M7DobVi|Vjy1i?dGw}bT+5z*P1NST-@?z^pD#FCLB56}IT;Sny@|KF{99FleS5ZakEOY#F8?I1rL3`P zczGaqU#D~KhyB#F@{z}A&&pDBbaFTBQYz-;SDBs=C+`xE=p;6|M@*RMS3>_S&uLtwhU%sizio=J=1g=(iC*54%jHX31<&Fj};pLtL1 zuHL(m|2QN0l&SEFE-TivNfkS6bJa8sg)#OYvE^m8rIsbuC?zr{>yK=YJU;A51brn* zV>9i$)AMlXj!*382+h;?zRhLPnpqU0hc-$hN>HZ+l~m)P>*0Cs7d4P9qR=;|e<^eX z$(3#+^do1&*P~KZe6n_J9HMzAGWvaU85MbRYZZ+fP@QzuoMOwm!3sz*>7j$_G#D&F z&gCL~O^i|&BL8d7WDRK85hSd_gp6kaP>IN&oKD1JO*2%G!iF>ddz|nLe6dc-zI^fgkO&WJHc%1jPH|Joh>+82!txvvuOY}5alErI{5vimhs)aR1H>+gOaK0s~3C z3g6wo^mj$ULkl%Sc{SIohwN>hEcnOCCW7XgR24!}A(3c@DYb9dr-R&U6T2y<;{r>~ z9*;Fb-z9WRB|D>IIZ=Md&|b3Oy@T{ymT?29;3LOlnRUI+th6pr11fn~1Hw)zi@ z_BM~w5n8A0t?dEj&?nIysSP*2|0A72V8^nCa)!(WWp6fD*0-C(pNg96_G+Fw=r>Zf zVps#YJB}Rofe-NTlJo2)ncd_C>`?5rH`%8vg2fE<@bH2wBQdASW)RzACgXCKyItH* zt#%JJJdUFW9eTPWF7WB}i-_LZ} z`MJ%J_lY6vu6T!T*4L5$a;=lL(Y_@H_SyX|-)3M_Uq@C5V34ApLZ3;0d=(Halxw}F RdL=3(OgiLFsBsET`W?nb@@W77 literal 0 HcmV?d00001 diff --git a/xplan-ios/Assets.xcassets/Home/home_hot_bg.imageset/home_hot_bg@3x.png b/xplan-ios/Assets.xcassets/Home/home_hot_bg.imageset/home_hot_bg@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f8d3b06aec8d869873a8f1b3bec1be3a9c0aa4e3 GIT binary patch literal 4751 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 VRjMoYA^)kMOplox6O5d0{RcGIW&!{J literal 0 HcmV?d00001 diff --git a/xplan-ios/Assets.xcassets/Home/navigation/home_nav_rank.imageset/home_nav_rank@2x.png b/xplan-ios/Assets.xcassets/Home/navigation/home_nav_rank.imageset/home_nav_rank@2x.png index 8361610d4298f9ca0efd3d7bc45491e29eeb2457..3f1ce33a6751132a89b1957e44448c5eb035b3eb 100644 GIT binary patch literal 1973 zcmWku2{aT68yzA$MP6D^D6O`77^T!p!_UZ&_q0hW`n6a>cJT^H5lRYAi{cpy`8CR8 z3`1F-B}1At=EN9o>1y&R~qrtujQ3VDvF-8aHHpU9T zOU6I(;6Fsm1x(Q}^5kD-dnowH=u1KGZLpJnPz^Eq1VcF(&c<*qI2q^)!(QSfE+>K;@?$6s{72}ELytcub20oH z4epp>VlV-1F5+e@d~`yG7pnJRFkZ~C#MfkqN-**WOD>bI!M_WBBm`OLy8%uVKDnXG z3W8$v_@KoJg=+ZL2;qAOY3RC$K{v2ZqTx8&T+!@`N=v+50h&A}>oH!1u`;l4fE5Im zFIX4QH?oz;Fh*=@^N{cr<#Jaty@a(qgZm=M1=Hbo>I^e*9&MuI+fW9cA0lri(Hyl&(kZ zYSby?jUr~Kn4n@fALB1E^b8Y8=ug5>4A^1d2Z0lSK`)GYqW3s@oKWk4782@7s3YM$ z2@O{Gya&}pEG6~HO#EgyDs=Es8*~LM4B>kXX38;;CGL*FbOg8&=nBG!FS@ALGc>AS`ASP=CZ}YG>k?-5CVpkxMmM3h~jtVDAupv zs9CXe`pyAP4$cI1Z4Td9hB{>=Dm|h6gJ1JwcAC%Uae6*f7376q^Kf=@ur}7$lwF(} z7YYUk{^50Ylo!N?c^}nQ7cWeUrluxG*qzPH3R>aI=TDM7NEYU%t8ES65eQOiZ4Vtd zYE#cnb#YClXk3pvs;DWww()fnMRo?}ci9Un>P*qF)6Zc}ZK+1SyuX=TM~U_JhM#GMnJw@t={XX_1yIT4gsPd2#fmQXg*%JiV&7@aR(Id(goE#xXHsocIwkIZ*;{Sx zA2Kf;yhFC#C3=;Vo?>jLwA7E=c^Y!}Z1i@$k!bnOQ!3KT-twZM>V;R$hG-q8MT$|A z*mt-{Ws{=w>Ah|fyQ=5sg8f6zT%mYG{r9@6l)j4V{ARscX33_ry!M8i$wg^bqo3Bx zWee-dRr+bPEDKe2J4$f)-vN>m4@w!QZBAM!P|ldQHXJTpX7EijsZr_bp1>I%U01*6 z*|yVF6zNMTciN~9U#{)ly7KpF^*l+jl7Y&C)qZa;AH%>%h2MJ?dunZ$$H%rs95a>V z{$aNEYxX9onJnHt{6^!NB{TU#kolj)Y%K$-N|3VOM@e0xiT#~>o13yP zku4u+%K20u%XFL<`PPi3<+!IOGkE0G{Ikn9T3j+tF)FQW@*`;1tPI{u@0fBpo?JSX z(aL<;cJA@{X0d$gz8xl9k1Bb|35HyDx*^wAA*i@g^@ub(3ypNXMmc>-l+}N&vKjFBF(SFe@?N^aTetMy;kA& z9G`EojETv*>>?&sz0Zi(I_yBE{%K1lD=FGXjg5M&^Iy4OYuv%tS2dc`R zU%l~jsy#CyH=)eYC#xl0NZB6Lo;IzuEP20TxT>wXM8cOUSyv5H{SCRD)$Y7Rv@}E^jtd$L&JzWamesLbuZxV~ s#;|E`RwAb|Y*srT^rtc3S>FjJ#jET>eczIoo)E#-+Tl>qLHC&d1HvJH9RL6T literal 2121 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 diff --git a/xplan-ios/Assets.xcassets/Home/navigation/home_nav_search.imageset/home_nav_search@2x.png b/xplan-ios/Assets.xcassets/Home/navigation/home_nav_search.imageset/home_nav_search@2x.png index cd466fa0392d66a946bd4f741427cd47824a1499..5e2de62ed77a3ad51206fc91bcfd8de244005b62 100644 GIT binary patch literal 685 zcmeAS@N?(olHy`uVBq!ia0vp^Iv~u!3?wz9Rv81SEdf3uu0VR@vCHcZUs!+S;wB*D z$hi$iF0Max5lC)2b_FC3MjH-a+;Hgpx9%0T8E zxwzr*g|&yytUq~m%ZY32j{pq;$!-Lz0U3T2s2*tJ1rQ0+1!SKCssS1WB*B80fP!02 zUfX=)>b6riww}7a>G&0($=grg1Um98=e$=ycbk+1`2{ol6MglQ^InMZmk-aT*Tpz1 zNdA8F;QHy~yDGEe{XF#qc`h8C<;$CrwOYd&||6hObi37(pW_CWAPkB|J*Sh_7+a&i(Sybz` z#XJ7){SN0<&#Ro_G~M;|x%{qaOxI3ybaAc>-g(?^tK^1zmPhwqwQ=hGdRBJZ$^$ar z-z{B{J8Q}$lyv+Y($G%ZIpuirdc45cNPnCVQrUhHFFg%UUzN4nsSGDKo1)GRX+Zb+0)w%8A+hVw~{MlY}2@PV#VofVEi$7y85}Sb4q9e0C{b3;{X5v literal 579 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k3?#4J%UA`ZDgt~$T!D0F_o{}5`JLUX+uK)m z^{npdSpz0lcY+x}@y^~=UEOPdvJDN(I)Ms+B4Dz+cXcTFh9yLrdc+_UJTS_p<Yl@@w9s!&R$I4!-z*&D=;{v)R3%>KHIa7(8A5T-G@yGywoqK@~dy diff --git a/xplan-ios/Assets.xcassets/Home/navigation/home_nav_search.imageset/home_nav_search@3x.png b/xplan-ios/Assets.xcassets/Home/navigation/home_nav_search.imageset/home_nav_search@3x.png index 63112bfaf6b8ad1aa02e684d7c14db6ba5681fa9..aa477dd615c78a659e1b54b80ac45fa548fc17be 100644 GIT binary patch literal 813 zcmeAS@N?(olHy`uVBq!ia0vp^P9V&|3?#2~eYgdrCI|S0xB}_*hcB!@a$)U}^AN_S z!xxqxIJNP}rFHu*Za92#!_kW%@xvE^YStVAGY($>imyL(9w-8o+5jfk9RVo-ae-1` z^&oK|I&@*fp-USMp99NY+z3<#Gj09RiyMwyTnEwuQVC?QKMZn1c$eBkptB50g8YIR zem@a;^?-v_nR|}Z`x8b2Kc*L2eY!Ov%JJK|ojW!y2@TZKJiNCf=i24@%~hp|-s=wa zuI*!BV3PE7aSVw#{B~Mqag%{SoAVPp)+Yi_k1dYU{r~^^Ro@wXYj-THD{lKfS=h|K z?Ec*pmCb2;=iBUE_x0%O-?NLwHK%9=iYBL>TB_$w3-L)_V$`2^rMlRw zb?viTBJvu>?>}8w)ED}A^`p2Pg%1U?KOZqCv*yH9Yeenq>w6`B!Pwg*kT2wq<-fpG z$*!o`2V81xKA&OrU%5b=?}&;2@7hT%nI=q^V>6~Vn?2<*U*&X+@6H0fwikJVU41Mu z3)XXfJLEE9`HG;IJ-%udaS0rv$I{wau82f=8OT03B*kL>r$tG`g2mB9AYl=Q){ZQ( z8#fnqOg+G@+r0dkvr^0p4y$=;F~M(U{&h*`4^jFqvSizfH;p_RrN94Z#pV9+3pl!c zLg}Y3EE-$%3te=R^$&?ovfR*Ero~>p4_$=HSGt zylnw$-DhInmbYeJDbCeVObRq;+r<5zQO)Ay)wZN#;@wkTl%41Ma;I3$_|1Z5@0PB& zbr&Y3eM#RgBma}%`l<_uY2hz+-Op2Yyk*$E!bL@UK|ROuOU++v5?Utz)85*3HhV%& zYBcZ4YS#GACskgC7IfMF2@ZH!{`07iyU(<=KWlGsTr+pR=yc@Drq^0V+1J*XUoqcr WAN}l!eLE=KGkCiCxvXg)w72BKA9#ZZkP*={iE0*QA6)pUc60y02o zbvICB&l;e1pvvg@f^wh>G)sc~f*HQE@&20r>50<@nH1h?#Ir4%Cyqt@7g3?zM9p zqOA{VR1_|4OZIlkxO{njrrcRKmc{Ko_tg`-D4 zd_A}Gmsd*vQpuB>KJ3@sd%H4i))E=1m);$Mp})RtyZkflgJWH6#^qZ_{yZuQc*oar z;Ec6P>$N?B){&hvBX%u2^MCIjL6z8&UCXy->zlGD_Z{lWFj?@n&WW|8U3AwaC&l#v z8qV{1cPn_kFF(Dt(;+nN(;=R-+N*n53X+a?JYOVL>HhyofU271b>oE*t**;&3M+4z z5D;RMkP@QgIE&r87$ z?8jv!#607x95%F+e_zV5LdRAutT$bhV|!DrtZ!u1r~Dm1Ro~pwTIp`%>98Z`rQ`xe zr?|TfUOT^-Oej6tXnNtschTq_46O&ngSuOEEst9-D`U!fy|KKRrK5yJy79!0dygK? zUC$pdkFR#OtP^wJjCaLd7Q4?`mnzP2dekqg#Ps{`#))heSJM|8NKSNJbi8u%(lxWw z4omHJGFqqkvvj>%r^eDLGyRk78ZDpa72nBrS^Y*V+|?@JYIe?#NeVyR-h_%Bm9eoZ zdU~c>Cx|UHKy0Q3yOu%V#k5C%j?Ic#cD-$l+!M_ciyf?NcZ=u6+n?n2$`_T*tC{_oXNi2`4E6fD&H7Dz8|2U0yzopr0MSvTvj6}9 diff --git a/xplan-ios/Base/UI/ThemeColor.m b/xplan-ios/Base/UI/ThemeColor.m index a820e178..f00a6021 100644 --- a/xplan-ios/Base/UI/ThemeColor.m +++ b/xplan-ios/Base/UI/ThemeColor.m @@ -31,7 +31,7 @@ /* ------页面相关颜色 START------ */ /// view的背景色 0xF3F5FA + (UIColor *)appBackgroundColor { - return UIColorFromRGB(0xF3F5FA); + return UIColorFromRGB(0xF8F8FB); } /// cell的背景色 0xFFFFFF + (UIColor *)appCellBackgroundColor { @@ -39,15 +39,15 @@ } ///正文颜色 0x333333 + (UIColor *)mainTextColor { - return UIColorFromRGB(0x161958); + return UIColorFromRGB(0x282828); } /// 二级文字颜色 0x666666 + (UIColor *)secondTextColor { - return UIColorFromRGB(0x8A8CAB); + return UIColorFromRGB(0x878B9C); } ///三级文字的颜色 0x999999 + (UIColor *)textThirdColor { - return UIColorFromRGB(0xBABBCD); + return UIColorFromRGB(0xBDBFD0); } ///分割线的颜色 0xE8E8E8 + (UIColor *)dividerColor { diff --git a/xplan-ios/Main/Home/View/XPFindNewFriendTableViewCell.h b/xplan-ios/Main/Home/View/XPFindNewFriendTableViewCell.h new file mode 100644 index 00000000..5c6d79f9 --- /dev/null +++ b/xplan-ios/Main/Home/View/XPFindNewFriendTableViewCell.h @@ -0,0 +1,16 @@ +// +// XPFindNewFriendTableViewCell.h +// xplan-ios +// +// Created by XY on 2023/3/3. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XPFindNewFriendTableViewCell : UITableViewCell + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/XPFindNewFriendTableViewCell.m b/xplan-ios/Main/Home/View/XPFindNewFriendTableViewCell.m new file mode 100644 index 00000000..261c0e6a --- /dev/null +++ b/xplan-ios/Main/Home/View/XPFindNewFriendTableViewCell.m @@ -0,0 +1,39 @@ +// +// XPFindNewFriendTableViewCell.m +// xplan-ios +// +// Created by XY on 2023/3/3. +// + +#import "XPFindNewFriendTableViewCell.h" +/// Third +#import +/// Tool +#import "NetImageView.h" +#import "ThemeColor.h" + +@interface XPFindNewFriendTableViewCell() +/// 头像 +@property (nonatomic, strong) NetImageView *avatarImageView; +/// 昵称 +@property (nonatomic, strong) UILabel *nickLabel; +@property (nonatomic, strong) UIStackView *stackView; + +@property (nonatomic, strong) UILabel *introduceLabel; + +@end + +@implementation XPFindNewFriendTableViewCell + +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +@end diff --git a/xplan-ios/Main/Home/View/XPNewHomeHeaderView.h b/xplan-ios/Main/Home/View/XPNewHomeHeaderView.h new file mode 100644 index 00000000..2101229a --- /dev/null +++ b/xplan-ios/Main/Home/View/XPNewHomeHeaderView.h @@ -0,0 +1,36 @@ +// +// XPNewHomeHeaderView.h +// xplan-ios +// +// Created by XY on 2023/3/3. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol XPNewHomeHeaderViewDelegate + +/// 点击交友派对 +- (void)homeHeaderViewPartyAction; +/// 点击小游戏 +- (void)homeHeaderViewGameAction; +/// 点击听电台 +- (void)homeHeaderViewRadioAction; +/// 点击一键匹配 +- (void)homeHeaderViewMatchAction; +/// 点击热门 +- (void)homeHeaderViewHotAction; + +@end + +@interface XPNewHomeHeaderView : UIView + +@property (nonatomic, weak) id delegate; + +/// 获取headerView的高度 ++ (NSUInteger)getHeaderViewHeight; + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/XPNewHomeHeaderView.m b/xplan-ios/Main/Home/View/XPNewHomeHeaderView.m new file mode 100644 index 00000000..9d75543e --- /dev/null +++ b/xplan-ios/Main/Home/View/XPNewHomeHeaderView.m @@ -0,0 +1,217 @@ +// +// XPNewHomeHeaderView.m +// xplan-ios +// +// Created by XY on 2023/3/3. +// + +#import "XPNewHomeHeaderView.h" +///Third +#import +///Tool +#import "XPMacro.h" +#import "ThemeColor.h" + +@interface XPNewHomeHeaderView() + +/// 交友派对 +@property (nonatomic, strong) UIButton *partyView; +/// 小游戏 +@property (nonatomic, strong) UIButton *gameView; +/// 听电台 +@property (nonatomic, strong) UIButton *radioView; +/// 一键匹配 +@property (nonatomic, strong) UIButton *matchView; + +/// 热门 +@property (nonatomic, strong) UIImageView *hotView; +@property (nonatomic, strong) UILabel *hotTextLabel; +@property (nonatomic, strong) UIView *messageView; + +@end + +@implementation XPNewHomeHeaderView + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initSubViewConstraints]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self addSubview:self.partyView]; + [self addSubview:self.gameView]; + [self addSubview:self.radioView]; + [self addSubview:self.matchView]; + [self addSubview:self.hotView]; + [self.hotView addSubview:self.hotTextLabel]; + [self.hotView addSubview:self.messageView]; +} + +- (void)initSubViewConstraints { + CGFloat partyWidth = 94.0*kScreenScale; + CGFloat partyHeight = 120.0/94.0*partyWidth; + [self.partyView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(15); + make.top.mas_equalTo(15); + make.width.mas_equalTo(partyWidth); + make.height.mas_equalTo(partyHeight); + }]; + + CGFloat gameWidth = (KScreenWidth - 15 -partyWidth - 8 - 3 -15)/2.0; + CGFloat gameHeight = 56.0/120.0*gameWidth; + [self.gameView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.partyView.mas_right).offset(15); + make.top.mas_equalTo(self.partyView); + make.width.mas_equalTo(gameWidth); + make.height.mas_equalTo(gameHeight); + }]; + + [self.radioView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.gameView.mas_right).offset(3); + make.top.mas_equalTo(self.partyView); + make.width.mas_equalTo(gameWidth); + make.height.mas_equalTo(gameHeight); + }]; + + CGFloat matchWidth = KScreenWidth - 15 - partyWidth - 8 - 15; + CGFloat matchHeight = 56.0/243.0*matchWidth; + [self.matchView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.gameView); + make.bottom.mas_equalTo(self.partyView); + make.width.mas_equalTo(matchWidth); + make.height.mas_equalTo(matchHeight); + }]; + + CGFloat hotHeight = 72.0*kScreenScale; + [self.hotView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(15); + make.right.mas_equalTo(-15); + make.height.mas_equalTo(hotHeight); + make.top.mas_equalTo(self.partyView.mas_bottom).offset(20); + }]; + + [self.hotTextLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.mas_equalTo(0); + make.width.mas_equalTo(70); + make.height.mas_equalTo(self.hotView.mas_height).multipliedBy(0.5); + }]; + + [self.messageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(0); + make.height.mas_equalTo(self.hotView.mas_height).multipliedBy(0.5); + }]; + +} + +/// 获取headerView的高度 ++ (NSUInteger)getHeaderViewHeight { + CGFloat height = 15; + CGFloat partyWidth = 94.0*kScreenScale; + CGFloat partyHeight = 120.0/94.0*partyWidth; + height += partyHeight; + height += 20; + CGFloat hotHeight = 72.0*kScreenScale; + height += hotHeight; + height += 15; + return (NSUInteger)height; +} + +#pragma mark - Event Response + +- (void)partyViewAction { + if (self.delegate && [self.delegate respondsToSelector:@selector(homeHeaderViewPartyAction)]) { + [self.delegate homeHeaderViewPartyAction]; + } +} + +- (void)gameViewAction { + if (self.delegate && [self.delegate respondsToSelector:@selector(homeHeaderViewGameAction)]) { + [self.delegate homeHeaderViewGameAction]; + } +} + +- (void)radioViewAction { + if (self.delegate && [self.delegate respondsToSelector:@selector(homeHeaderViewRadioAction)]) { + [self.delegate homeHeaderViewRadioAction]; + } +} + +- (void)matchViewAction { + if (self.delegate && [self.delegate respondsToSelector:@selector(homeHeaderViewMatchAction)]) { + [self.delegate homeHeaderViewMatchAction]; + } +} + +#pragma mark - Getters And Setters + +- (UIButton *)partyView { + if (!_partyView) { + _partyView = [UIButton buttonWithType:UIButtonTypeCustom]; + [_partyView setBackgroundImage:[UIImage imageNamed:@"home_head_party"] forState:UIControlStateNormal]; + [_partyView addTarget:self action:@selector(partyViewAction) forControlEvents:UIControlEventTouchUpInside]; + } + return _partyView; +} + +- (UIButton *)gameView { + if (!_gameView) { + _gameView = [UIButton buttonWithType:UIButtonTypeCustom]; + [_gameView setBackgroundImage:[UIImage imageNamed:@"home_head_game"] forState:UIControlStateNormal]; + [_gameView addTarget:self action:@selector(gameViewAction) forControlEvents:UIControlEventTouchUpInside]; + } + return _gameView; +} + +- (UIButton *)radioView { + if (!_radioView) { + _radioView = [UIButton buttonWithType:UIButtonTypeCustom]; + [_radioView setBackgroundImage:[UIImage imageNamed:@"home_head_radio"] forState:UIControlStateNormal]; + [_radioView addTarget:self action:@selector(radioViewAction) forControlEvents:UIControlEventTouchUpInside]; + } + return _radioView; +} + +- (UIButton *)matchView { + if (!_matchView) { + _matchView = [UIButton buttonWithType:UIButtonTypeCustom]; + [_matchView setBackgroundImage:[UIImage imageNamed:@"home_head_match"] forState:UIControlStateNormal]; + [_matchView addTarget:self action:@selector(matchViewAction) forControlEvents:UIControlEventTouchUpInside]; + } + return _matchView; +} + +- (UIImageView *)hotView { + if (!_hotView) { + _hotView = [[UIImageView alloc] init]; + _hotView.image = [UIImage imageNamed:@"home_hot_bg"]; + _hotView.userInteractionEnabled = YES; + } + return _hotView; +} + +- (UILabel *)hotTextLabel { + if (_hotTextLabel) { + _hotTextLabel = [[UILabel alloc] init]; + _hotTextLabel.textColor = [ThemeColor mainTextColor]; + _hotTextLabel.text = @"热门"; + _hotTextLabel.textAlignment = NSTextAlignmentCenter; + _hotTextLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold]; + } + return _hotTextLabel; +} + +- (UIView *)messageView { + if (!_messageView) { + _messageView = [[UIView alloc] init]; + } + return _messageView; +} + +@end diff --git a/xplan-ios/Main/Home/View/XPNewHomeNavView.h b/xplan-ios/Main/Home/View/XPNewHomeNavView.h new file mode 100644 index 00000000..b2c3fc00 --- /dev/null +++ b/xplan-ios/Main/Home/View/XPNewHomeNavView.h @@ -0,0 +1,28 @@ +// +// XPNewHomeNavView.h +// xplan-ios +// +// Created by XY on 2023/3/3. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class XPNewHomeNavView; +@protocol XPNewHomeNavViewDelegate +///点击了搜索房间 +- (void)xPNewHomeNavView:(XPNewHomeNavView *)view didClickSearch:(UIButton *)sender; +///点击了榜单按钮 +- (void)xPNewHomeNavView:(XPNewHomeNavView *)view didClickRank:(UIButton *)sender; + +@end + +@interface XPNewHomeNavView : UIView + +///代理 +@property (nonatomic,weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/XPNewHomeNavView.m b/xplan-ios/Main/Home/View/XPNewHomeNavView.m new file mode 100644 index 00000000..4a9ac4ac --- /dev/null +++ b/xplan-ios/Main/Home/View/XPNewHomeNavView.m @@ -0,0 +1,105 @@ +// +// XPNewHomeNavView.m +// xplan-ios +// +// Created by XY on 2023/3/3. +// + +#import "XPNewHomeNavView.h" +///Third +#import + +///Tool +#import "ThemeColor+Home.h" +#import "XPMacro.h" +#import "UIImage+Utils.h" + +@interface XPNewHomeNavView() + +///排行榜 +@property (nonatomic,strong) UIButton *rankButton; +///搜索 +@property (nonatomic,strong) UIButton *searchButton; + +@end + +@implementation XPNewHomeNavView + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initSubViewConstraints]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self addSubview:self.rankButton]; + [self addSubview:self.searchButton]; +} + +- (void)initSubViewConstraints { + + [self.rankButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(30, 30)); + make.right.mas_equalTo(-15); + make.top.mas_equalTo(kStatusBarHeight+7); + }]; + + [self.searchButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.rankButton); + make.right.mas_equalTo(self.rankButton.mas_left).offset(-15); + make.height.mas_equalTo(32); + make.left.mas_equalTo(15); + }]; +} + + +#pragma mark - Event Response +- (void)searchButtonAction:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(xPNewHomeNavView:didClickSearch:)]) { + [self.delegate xPNewHomeNavView:self didClickSearch:sender]; + } +} + +- (void)rankButtonAction:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(xPNewHomeNavView:didClickRank:)]) { + [self.delegate xPNewHomeNavView:self didClickRank:sender]; + } +} + +#pragma mark - Getters And Setters + +- (UIButton *)rankButton { + if (!_rankButton) { + _rankButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_rankButton setImage:[UIImage imageNamed:@"home_nav_rank"] forState:UIControlStateNormal]; + [_rankButton setImage:[UIImage imageNamed:@"home_nav_rank"] forState:UIControlStateSelected]; + [_rankButton addTarget:self action:@selector(rankButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + } + return _rankButton; +} + +- (UIButton *)searchButton { + if (!_searchButton) { + _searchButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_searchButton setImage:[UIImage imageNamed:@"home_nav_search"] forState:UIControlStateNormal]; + [_searchButton addTarget:self action:@selector(searchButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + _searchButton.layer.masksToBounds = YES; + _searchButton.layer.cornerRadius = 16; + [_searchButton setTitle:@"搜索房间/昵称/ID" forState:UIControlStateNormal]; + _searchButton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_searchButton setTitleColor:[ThemeColor colorWithHexString:@"#9EB5C5"] forState:UIControlStateNormal]; + _searchButton.backgroundColor = UIColor.whiteColor; + [_searchButton setImageEdgeInsets:UIEdgeInsetsMake(0, 8, 0, 0)]; + [_searchButton setTitleEdgeInsets:UIEdgeInsetsMake(0, 8, 0, 0)]; + _searchButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; + } + return _searchButton; +} + +@end diff --git a/xplan-ios/Main/Home/View/XPNewHomeViewController.h b/xplan-ios/Main/Home/View/XPNewHomeViewController.h new file mode 100644 index 00000000..29c08d90 --- /dev/null +++ b/xplan-ios/Main/Home/View/XPNewHomeViewController.h @@ -0,0 +1,16 @@ +// +// XPNewHomeViewController.h +// xplan-ios +// +// Created by XY on 2023/3/3. +// + +#import "MvpViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XPNewHomeViewController : MvpViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/XPNewHomeViewController.m b/xplan-ios/Main/Home/View/XPNewHomeViewController.m new file mode 100644 index 00000000..ace55d8d --- /dev/null +++ b/xplan-ios/Main/Home/View/XPNewHomeViewController.m @@ -0,0 +1,391 @@ +// +// XPNewHomeViewController.m +// xplan-ios +// +// Created by XY on 2023/3/3. +// + +#import "XPNewHomeViewController.h" +///Third +#import +#import +#import +#import +#import +///Tool +#import "ThemeColor+Home.h" +#import "XPMacro.h" +#import "XPHtmlURL.h" +#import "XPConstant.h" +#import "Api+Room.h" +#import "AccountInfoStorage.h" +#import "TTPopup.h" +#import "StatisticsServiceHelper.h" +#import "XPWeakTimer.h" +#import "ClientConfig.h" +#import "NSArray+Safe.h" +#import "UIImage+Utils.h" +///View +#import "XPNewHomeNavView.h" +#import "XPHomeRecommendViewController.h" +#import "XPRoomSearchContainerViewController.h" +#import "XPHomePartyContainerViewController.h" +#import "XPHomePartyViewController.h" +#import "XPWebViewController.h" +#import "XPHomeHotRoomViewController.h" +#import "XPRoomViewController.h" +#import "XPLittleGameRoomOpenView.h" +#import "XPHomeLivesViewController.h" +#import "XPTeenagerHomeView.h" +#import "XPNewHomeHeaderView.h" +#import "XPRoomSearchContainerViewController.h" +///P +#import "XPHomeRecommendPresenter.h" +#import "XPHomeRecommendProtocol.h" +///VC +#import "XPHomeHappyViewController.h" +#import "XPHomeHotRoomViewController.h" + +@class HomeMenuInfoModel,HomeBannerInfoModel,HomeRecommendRoomModel, HomePlayRoomModel; + +@interface XPNewHomeViewController () +{ + NSTimer * timer; +} + +@property (nonatomic, strong) UIImageView *topGradientImageView; +///导航栏 +@property (nonatomic, strong) XPNewHomeNavView *homeNavView; +///分页控制器 +@property (nonatomic, strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryIndicatorLineView *lineView; +@property (nonatomic, strong) JXPagerView *pagingView; +@property (nonatomic, strong) NSArray *titles; +///分页控制器头部 +@property (nonatomic,strong) XPNewHomeHeaderView *headerView; +///菜单列表 +@property (nonatomic,strong) NSArray *menuList; +///轮播图 +@property (nonatomic,strong) NSArray *bannerList; +///推荐房 +@property (nonatomic,strong) NSArray *recommendList; +///热门房 +@property (nonatomic,strong) NSArray *hotRoomList; +///组队开黑 +@property (nonatomic,strong) NSArray *playTeamList; +///个人房列表数据 +@property (nonatomic,strong) NSArray *personalRoomList; +///个人房 +@property (nonatomic,strong) XPHomeHappyViewController *personalRoomVC; +///热门房 +@property (nonatomic,strong) XPHomeHotRoomViewController *hotRoomVC; + +@end + +@implementation XPNewHomeViewController + +- (XPHomeRecommendPresenter *)createPresenter { + return [[XPHomeRecommendPresenter alloc] init]; +} +- (BOOL)isHiddenNavBar { + return YES; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initHeaderAndFooterRrfresh]; + [self initSubViews]; + [self addTimer]; +} + +- (void)viewDidLayoutSubviews { + [super viewDidLayoutSubviews]; + CGRect frame = self.view.bounds; + frame.origin.y = kNavigationHeight; + frame.size.height = frame.size.height - frame.origin.y; + self.pagingView.frame = frame; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + if (timer) { + [timer setFireDate:[NSDate distantPast]]; //很远的过去 + } +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; + if (timer) { + //关闭定时器 + [timer setFireDate:[NSDate distantFuture]]; //很远的将来 + } +} + +#pragma mark - InitHttp +- (void)addTimer { + timer = [XPWeakTimer scheduledTimerWithTimeInterval:15 block:^(id userInfo) { + [self headerRefresh]; + } userInfo:nil repeats:YES]; +} + +- (void)headerRefresh { + [self.presenter getHomeTopBannerList]; + [self.presenter getHomeRecommendRoomList]; + [self.presenter getHomeHotRoomList]; + [self.presenter getPlayGameWithTeam:1]; + [self.presenter getHomePersonalRoomList]; +} + +- (void)initHeaderAndFooterRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [ThemeColor secondTextColor]; + header.lastUpdatedTimeLabel.textColor = [ThemeColor secondTextColor]; + self.pagingView.mainTableView.mj_header = header; + [self headerRefresh]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.topGradientImageView]; + [self.view addSubview:self.homeNavView]; + [self.view addSubview:self.pagingView]; + ///首页tab 根据服务端的配置 + [RACObserve([ClientConfig shareConfig], configInfo) subscribeNext:^(id _Nullable x) { + ClientDataModel * model = x; + if (model.homeTabList.count > 0) { + if ([model.homeTabList containsObject:@"组队开黑"]) { + NSMutableArray * temArray = [NSMutableArray arrayWithArray:model.homeTabList]; + NSInteger index = [temArray indexOfObject:@"组队开黑"]; + [temArray replaceObjectAtIndex:index withObject:@"开黑畅聊"]; + model.homeTabList = temArray.copy; + } + self.titles = model.homeTabList; + self.titleView.titles = self.titles; + [self.titleView reloadData]; + } + }]; + + [self.topGradientImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.right.mas_equalTo(0); + make.top.mas_equalTo(125); + }]; + [self.homeNavView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.right.mas_equalTo(0); + make.height.mas_equalTo(kNavigationHeight); + }]; +} + +#pragma mark - XPHomeRecommendProtocol +- (void)getHomeTopBannerListSuccess:(NSArray *)list menuList:(NSArray *)list1{ + [self.pagingView.mainTableView.mj_header endRefreshing]; + self.bannerList = list; + self.menuList = list1; + [self.pagingView resizeTableHeaderViewHeightWithAnimatable:NO duration:0 curve:0]; +} + +- (void)getHomeRecommendRoomListSuccess:(NSArray *)list { + [self.pagingView.mainTableView.mj_header endRefreshing]; + self.recommendList= list; + [self.pagingView resizeTableHeaderViewHeightWithAnimatable:NO duration:0 curve:0]; +} + +- (void)getHomeHotRoomListSuccess:(NSArray *)list { + [self.pagingView.mainTableView.mj_header endRefreshing]; + self.hotRoomList = list; + [self.pagingView resizeTableHeaderViewHeightWithAnimatable:NO duration:0 curve:0]; +} + +- (void)getHomePersonalRoomListSuccess:(NSArray *)list { + [self.pagingView.mainTableView.mj_header endRefreshing]; + self.personalRoomList = list; + self.hotRoomVC.roomList = list; +} + +- (void)getPlayGameWithTeamSuccess:(NSArray *)list{ + [self.pagingView.mainTableView.mj_header endRefreshing]; + self.playTeamList = list; + [self.personalRoomVC configPlayGameRoomList:list]; +} + +- (void)getHomeRecommendDataFail { + [self.pagingView.mainTableView.mj_header endRefreshing]; + [self.pagingView.mainTableView.mj_footer endRefreshing]; +} + +#pragma mark - XPNewHomeNavViewDelegate + +- (void)xPNewHomeNavView:(XPNewHomeNavView *)view didClickSearch:(UIButton *)sender { + XPRoomSearchContainerViewController * searchVC = [[XPRoomSearchContainerViewController alloc] init]; + searchVC.modalPresentationStyle = UIModalPresentationFullScreen; + [self.navigationController presentViewController:searchVC animated:YES completion:nil]; +} + +- (void)xPNewHomeNavView:(XPNewHomeNavView *)view didClickRank:(UIButton *)sender { + XPWebViewController * webVC =[[XPWebViewController alloc] init]; + webVC.url = URLWithType(kHomeRankURL); + [self.navigationController pushViewController:webVC animated:YES]; +} + +#pragma mark - XPNewHomeHeaderViewDelegate + +/// 点击交友派对 +- (void)homeHeaderViewPartyAction { + +} +/// 点击小游戏 +- (void)homeHeaderViewGameAction { + +} +/// 点击听电台 +- (void)homeHeaderViewRadioAction { + +} +/// 点击一键匹配 +- (void)homeHeaderViewMatchAction { + +} +/// 点击热门 +- (void)homeHeaderViewHotAction { + +} + +#pragma mark - JXCategoryViewDelegate +- (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)pagerView { + return [XPNewHomeHeaderView getHeaderViewHeight]; +} + +- (UIView *)tableHeaderViewInPagerView:(JXPagerView *)pagerView { + return self.headerView; +} + +- (NSUInteger)heightForPinSectionHeaderInPagerView:(JXPagerView *)pagerView { + return 50; +} + +- (UIView *)viewForPinSectionHeaderInPagerView:(JXPagerView *)pagerView { + return self.titleView; +} + +- (NSInteger)numberOfListsInPagerView:(JXPagerView *)pagerView { + return self.titles.count; +} + +- (id)pagerView:(JXPagerView *)pagerView initListAtIndex:(NSInteger)index { + UIViewController *viewController; + NSString * title= [self.titles safeObjectAtIndex1:index]; + if ([title isEqualToString:@"开黑畅聊"]) { + viewController = self.personalRoomVC; + } else { + viewController = self.hotRoomVC; + } + return (id )viewController; +} + +- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index { + NSString * title= [self.titles safeObjectAtIndex1:index]; + if ([title isEqualToString:@"开黑畅聊"]) { + [self.presenter getPlayGameWithTeam:1]; + } else { + [self.presenter getHomePersonalRoomList]; + } +} + +#pragma mark - JXPagerMainTableViewGestureDelegate + +- (BOOL)mainTableViewGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { + ///1000是外部的scrollView 1001是人气主播中的collectionView 9999是 开黑畅聊的轮播图 + if (otherGestureRecognizer.view.tag == 1000 || otherGestureRecognizer.view == self.headerView || otherGestureRecognizer.view.tag == 1001 || otherGestureRecognizer.view.tag == 9999) { + return NO; + } + return [gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]] && [otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]; +} +#pragma mark - Getters And Setters + +- (UIImageView *)topGradientImageView { + if (!_topGradientImageView) { + _topGradientImageView = [[UIImageView alloc] init]; + _topGradientImageView.image = [UIImage gradientColorImageFromColors:@[[ThemeColor colorWithHexString:@"#DCF6FF"], [ThemeColor colorWithHexString:@"#F8F8FA"]] gradientType:GradientTypeTopToBottom imgSize:CGSizeMake(KScreenWidth, 125)]; + _topGradientImageView.contentMode = UIViewContentModeScaleToFill; + } + return _topGradientImageView; +} + +- (XPNewHomeNavView *)homeNavView { + if (!_homeNavView) { + _homeNavView = [[XPNewHomeNavView alloc] init]; + _homeNavView.delegate = self; + } + return _homeNavView; +} + +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] init]; + _titleView.delegate = self; + _titleView.backgroundColor = [UIColor clearColor]; + _titleView.titleColor = [ThemeColor textThirdColor]; + _titleView.titleSelectedColor = [ThemeColor mainTextColor]; + _titleView.titleFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:12]; + _titleView.titleSelectedFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.averageCellSpacingEnabled = NO; + _titleView.titles = self.titles; + _titleView.cellSpacing = 20; + _titleView.titles = self.titles; + _titleView.listContainer = (id)self.pagingView.listContainerView; + + JXCategoryIndicatorImageView *lineView = [[JXCategoryIndicatorImageView alloc] init]; + lineView.indicatorImageViewSize = CGSizeMake(41, 10); + lineView.verticalMargin = 14; + lineView.indicatorImageView.image = [UIImage imageNamed:@"home_recommend_indicator_room"]; + _titleView.indicators = @[lineView]; + } + return _titleView; +} + +- (JXPagerView *)pagingView { + if (!_pagingView) { + _pagingView = [[JXPagerView alloc] initWithDelegate:self]; + _pagingView.backgroundColor = [UIColor clearColor]; + _pagingView.listContainerView.backgroundColor = [UIColor clearColor]; + _pagingView.mainTableView.backgroundColor = [UIColor clearColor]; + _pagingView.mainTableView.gestureDelegate = self; + _pagingView.listContainerView.listCellBackgroundColor = UIColor.clearColor; + } + return _pagingView; +} + +- (NSArray *)titles { + if (!_titles) { + _titles = @[@"热门房间", @"开黑畅聊"]; + } + return _titles; +} + +- (XPNewHomeHeaderView *)headerView { + if (!_headerView) { + _headerView = [[XPNewHomeHeaderView alloc] init]; + _headerView.backgroundColor = [UIColor clearColor]; + _headerView.delegate = self; + } + return _headerView; +} + +- (XPHomeHotRoomViewController *)hotRoomVC { + if (!_hotRoomVC) { + _hotRoomVC = [[XPHomeHotRoomViewController alloc] init]; + } + return _hotRoomVC; +} + +- (XPHomeHappyViewController *)personalRoomVC { + if (!_personalRoomVC) { + _personalRoomVC = [[XPHomeHappyViewController alloc] init]; + } + return _personalRoomVC; +} +@end diff --git a/xplan-ios/Main/Tabbar/View/TabbarViewController.m b/xplan-ios/Main/Tabbar/View/TabbarViewController.m index 8fb87760..ca66903f 100644 --- a/xplan-ios/Main/Tabbar/View/TabbarViewController.m +++ b/xplan-ios/Main/Tabbar/View/TabbarViewController.m @@ -75,6 +75,7 @@ #import "XPReceiveRedPacketView.h" #import "XPRoomYearActivityView.h" #import "XPUpgradeView.h" +#import "XPNewHomeViewController.h" ///Present #import "MainPresenter.h" #import "MainProtocol.h" @@ -522,7 +523,8 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; msg = [[SessionListViewController alloc] init]; me = [[XPMineViewController alloc] init]; - home = [[XPHomeViewController alloc] init]; +// home = [[XPHomeViewController alloc] init]; + home = [[XPNewHomeViewController alloc] init]; monents = [[XPMonentsViewController alloc] init]; } else { game = [[BaseViewController alloc]init];