From 8d253ccb7d49b1881b128958620c8ceef6037c73 Mon Sep 17 00:00:00 2001 From: TBXark Date: Sun, 24 Sep 2017 01:54:36 +0800 Subject: [PATCH] Upgrade to Swift4.0 --- README.md | 13 +++-- TKRubberIndicator.xcodeproj/project.pbxproj | 16 ++++-- .../UserInterfaceState.xcuserstate | Bin 51758 -> 60492 bytes .../xcschemes/TKRubberIndicator.xcscheme | 2 + TKRubberIndicator/ViewController.swift | 2 +- TKRubberPageControl/TKRubberPageControl.swift | 52 +++++++++--------- 6 files changed, 47 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 032cc1e..8742566 100755 --- a/README.md +++ b/README.md @@ -3,8 +3,8 @@ [![Swift Version][swift-image]][swift-url] [![License MIT](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://raw.githubusercontent.com/TBXark/TKRubberIndicator/master/LICENSE) -[![CocoaPods](http://img.shields.io/cocoapods/v/TKRubberPageControl.svg?style=flat)](http://cocoapods.org/?q= TKRubberPageControl) -[![CocoaPods](http://img.shields.io/cocoapods/p/TKRubberPageControl.svg?style=flat)](http://cocoapods.org/?q= TKRubberPageControl) +[![CocoaPods](http://img.shields.io/cocoapods/v/TKRubberPageControl.svg?style=flat)](http://cocoapods.org/?q=TKRubberPageControl) +[![CocoaPods](http://img.shields.io/cocoapods/p/TKRubberPageControl.svg?style=flat)](http://cocoapods.org/?q=TKRubberPageControl) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![Support](https://img.shields.io/badge/support-iOS%208%2B%20-blue.svg?style=flat)](https://www.apple.com/nl/ios/) @@ -13,9 +13,9 @@ ## Requirements -- Swift 3.0 +- Swift 4.0 - iOS 8.0+ -- Xcode 8.0 +- Xcode 9.0 ## Installation @@ -38,7 +38,7 @@ import TKRubberPageControl Create a `Cartfile` that lists the framework and run `carthage update`. Follow the [instructions](https://github.com/Carthage/Carthage#if-youre-building-for-ios) to add `$(SRCROOT)/Carthage/Build/iOS/TKRubberPageControl.framework` to an iOS project. ``` -github "tbxark/TKRubberPageControl" +github "tbxark/TKRubberIndicator" ``` #### Manually 1. Download and drop ```TKRubberPageControl.swift``` in your project. @@ -98,6 +98,9 @@ class ViewController: UIViewController { ## Release History +* 1.4.0 + Swift 4.0 + * 1.3.1 Bug Fixed diff --git a/TKRubberIndicator.xcodeproj/project.pbxproj b/TKRubberIndicator.xcodeproj/project.pbxproj index b8d215c..a3426ef 100755 --- a/TKRubberIndicator.xcodeproj/project.pbxproj +++ b/TKRubberIndicator.xcodeproj/project.pbxproj @@ -184,12 +184,12 @@ 6A555EC51BDE277B00FC36E6 = { CreatedOnToolsVersion = 7.1; DevelopmentTeam = 858CBVXSWP; - LastSwiftMigration = 0800; + LastSwiftMigration = 0900; }; 6A9103F51D539B370009451B = { CreatedOnToolsVersion = 7.3.1; DevelopmentTeam = 858CBVXSWP; - LastSwiftMigration = 0820; + LastSwiftMigration = 0900; }; }; }; @@ -372,7 +372,8 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.TBXark.TKRubberIndicator; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_VERSION = 4.0; }; name = Debug; }; @@ -386,7 +387,8 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.TBXark.TKRubberIndicator; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_VERSION = 4.0; }; name = Release; }; @@ -409,7 +411,8 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -434,7 +437,8 @@ PRODUCT_BUNDLE_IDENTIFIER = com.TBXark.TKRubberPageControl; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; diff --git a/TKRubberIndicator.xcodeproj/project.xcworkspace/xcuserdata/Tbxark.xcuserdatad/UserInterfaceState.xcuserstate b/TKRubberIndicator.xcodeproj/project.xcworkspace/xcuserdata/Tbxark.xcuserdatad/UserInterfaceState.xcuserstate index cf3ccf9c8ff0b70232747dc6321a14a30d1730d7..b60ed6918ab9e7ceabb458942874f4faa82b19ea 100755 GIT binary patch literal 60492 zcmeFa2VfM%_c*>YyL)%LdlwD}y#*3FNv`KYPazOWC`l-xgv;H993;7LmjEG@9aL0M zu^=kg2vtO}fd#N)Z%9*65eo`7uy^^t+07+)q=5MOeD(YN{XxuTclOQe^X9$TnS!!n zU$ER{I>aCbGc3a~Jfn$P7*#bnZk{&~^!ZCC$N39pd)?*1DRHiVyT}K(bK=VVWi1%A z{O%pixdDup(J?KVXr>ht&m=I3jEONb7RJih7(3%&k{Bm5k{QK}X2vjC%vfd|GoG2m zOlM{=9;TQnVM-Z4Gmlx!EMb;1GIJTTf?3Jj$lS!NW$t9QGY>EiGCP@F%oEIR<|*cB zW*_rB^A>Y}ImjGh4m0mCN0|?p6U>LqH_W%pcg*+956q9uPt4EE@5~h;v=*&Hx1&4IdQ^=zqeswAv>UyMUP7;-*U?+( zZS*dB4}FS0L#NPb^c6abzC%BupYd9JC%y}Bz#H*ad=I`4-;W={593GiV|WkVi=V;I z;ur9X_*MKG-jCnHhw%}748My%z$fr0_#{4!KgVC=Gx$6FJ^mU0g8#sOvY2IAEvsYo ztbuLLwqRScZP*TMM>dA-%64aauzlFRY$9u7ZLFP5X8W^)*&%Eio6e44Gubh07CV8> zW+$=t$_yPds{eUN>K-Nio2?q>I}PqWXk&$BPEuduJOZ?gN@L+oMpD0_@O z&VImt%znb2Vo$SQv0t;_vfr^ku|KoFvwv`i!<>fGauTQKj9hcB71x?;&voFsa4}pQ z*PSzS7S77qI6LRyk~k-q&JE)-xZ&IgE|VL{jp8P8lesBe9ygVn#!csDaI?8NTrpR| zm2!TrjGN0X=9X|vxs}{C+_l_w+$!#R?gs8g?oRG5?rv^7cOQ2@_XM|_+rz!Yz0AGB z9pT>Q-rj(Oj#!PP10CPIJ3vtL7ff zHq9>0qngJw`!vsMUeLU#IjA|LIjlLN`AGAz<`d0X%{Q8FHGgW(X&Eij8njW`W?G}R zqqdW_v$l)2ueP5yUYnpz)S9$rtwlRnJ48EFo1z_~&C-t5j?+%lPS?)R=4S+JGA#`w`uRyZr47heO&v5cDMFr?JL?> zwXbR4(H_+v)4r?yOnXXuTKl>7N9|AApLLv$*J*SubS-t!x)@zoT{m5UOFnRSD7 zgLOl6qjaNnV{}=%Jl#~?G+mL-r<<*tr<<=^psUnfp%1 zal&|EijXHv6{ZQ(g&BfJC=z_ad|`o5DJ&G03Co2mg_XiJ!mYw>!dhXSaJx_~Y!J2z z4+swm4+#$oj|h8&y~2~iQ^Iq?tHNu->%w8-i14=Xj&M{sE_@_>Eu0a~3f~Cd3O@_K z2!Dz?Q4mE@67`}%Y$LW6+llSP&SI<>C-xKL#RM@?G>JB`zc@e~D2@}yixb3bF-Oc5 zCyJBA$>J0-Pn;@F6Q_%_#5rQISSHRDE5v!?5^H;H$McZzq3cZ*xa zhs1})N5q}tF7Z+EG4WaPIdPx(y!fWLUwlhEAigKQFMcSV6n_wZ6n_$b7Jm_c75|iw zge6wuB%Kr`wU9bWF;c9QBsryIslPNp8Ym5t21`Svp;EduT*{YbN-n8Da!Ve`D-}w! zq$0^D5owupnRK~yg|u9{Qo2gIT3R8klx~vlkhVx$rR~x~(!1k=7^s@B2 z^p7Dw4`a$}^`c!?IK3zXTpQ#_KAE%$FpQ(503-oUNEPbVZp}tDLNWWOWM88xo>xuqa z{dM|P`s?*;^tbEp*00xZ(%+-sroUgmL;ryOLH$nsc7!{tN&g9hyG6kXW$Kjp_w7t(Am(%5M$_L=xgX_uo#jIDTY+T zXu}x8RKqmGbi)iozG0@J%rMswFa!K7FsWs0&!Iidzf4T%~W zl@T>MYGTx+sL4?UQSK;DRB4nyYJSv$sLI^9(u(5ZgN(q4jKt`fW=xAoS=kA5yp_Q` z_*oOPOpJ3EyMn=L#=u0$SZ1pkBhy^w2%AChmV9G$X8N#6{=l4Inak}>_q!`fyrt#& z#<*mgIU_we$sBJ=PPWI}(o-GrsTM~{eCjYuQcAKT#W8GHN~r7BOjoAgHl_{JmTAYd zXF4z)nNCb+rVA4z^Rh?jh-eL$ly`CCKLWtqX zObXL)3)7z&zzk#tF@u>Q%uuFzOezcft^i1?XT+Q5bvBMh;Of16V~?ga+Ru*#f2#{#MD|a+Xp4#Hv3SCU&TEWK_m} z*M1du!Yl(GQ0u6yW(ea}fn834RVv`F0zed8PXIQw>%sl=`gXFYjjmA}(Pq~x{dJRj zL!+mYe`;rg-qc2`Lye%B(uhI>lquiVF}LR%TV`dCsVH|96noQs;9LBqu0Z7mcytHj zo|ctecQ3@byO>Q(zfH{D%zCDp*}!a+Sxm{pc4cwvrD51CvG&FIH%U7BZtTn)JjeA7Fz?5&C(HZ}c{d$)ytCXxD0Z@B;HH({Cg5BJ&dSGV_Y;l#}KD@_>!ZYs~A+8_b*XKzWcn zSWcniLc7qgGsas&70v_0ldsSRN}6wMu08`B0ll2(1E-&FjLl4~^Yq!}feLqdMZil3 zkTid3dB9&>Ok1_iOigo@&T|DLAE+jJgsHe&?w)UKlbJfUqP*Bwdfw|H%R9!rM?LAg z@{sk+`|?l)TRK9ID)rAV4SREv&r@C$JJhFooY31JF{hb+o0*T9PneU;r_5)}DLGY6 zlhfs4a)vy7GdPhim@k>Hn6H^L;2}oHner%kv^+-co0kV3F~j8sbDEk4-0%j*(MSaF zr9*_*ljAQN?VaZ>u3=a@Fe*-UwwdWU{#pc8`p5Z$KI&w~xXJ(keV9@V5FsM*)^(F_ zG^Ts!`Cw>u1t$7}KJZObs*-K}Vyq_9VwGpVFcs^WU*(Z<_q^08dGS_fe7PwQBK1$^ z9MkXayXC&IL-wmo(A7Lb91_8MAs%Uv7U_^6kCn&CJT~Jd{JJbO*1+|waU4*8DSQCS~gOQ-F zs2hq!aq<*7Po64IgE0;DM7>aNP>SjD40+~%Pa&pNSskW+F*cJm!LEuKnL*6RBIh?G zX5>Igs+dC*^hZOfa0j4)Xb>8VhR6l7TlUCaxlk4E5R{IFDZ(w3XUV>Qm2g8ej6q|m z=(6OZzaY9CG=+*T7fnQy&}4bGJV!2;OQ`6kqG@P4h^|!j%X9y$qBAFh=p2?>(Rr!p z3gxl}MK>GGi4v*UL#xpB=mvSQyhL6q z%T%hX(amTLNR`OTU$-6|mamTpaM3X(z*&`VoYruF^LIim zI%Q5!>NO#v-$x%Z{WhTE=mT^@zCpfGzG(xDVjrVVfT^qHTPZ_3!wffn+~~~gocv+w znK@%83kXxs|7#%*w0+zz+L9dJk733tX_a18E>yWvUuC zPRGM=1|E(_$ZO@>8Pz$?wU>qwyG=g~#G?cs!nfvvCg2#S`%)JQ+{Hd3Y+GhNt5h zI3Lf%E?j`!*n_>e5YNIz*oSB1Ik*^?;8N_zWq2+Q;2(4;cr?M|2+k&WBEeG#o=)&gg53nq zB6v2zB?QkUxSZex1TP|3CirrKuOfJ5gtNhSD9&bGzOm##QnYYx=Kf~@N z1n2t-%fqJAxLQHsj{N3mMkrfT;`dZ2bNk#(np(@v%yE?shqNP1iy+(QpH&Je#=wwb z$OcwGZ-dmlR9yyYbj^c=Y}!|kppx^7rvwg4Oeq8R2lIcJKm-%j7hPp#i4l{y<4E(KoKhUkZ86k_x!x4}b$zpM*8eP9IgTU2=jsA?TTtm|Y1e z&yvK^zJdTGMiP}I>3o_pPE^S&q*+sXBXNY+1v5f=zafGXih3x_iwB^Cd}S1;U zdrrQB8Sq(|lzW4;mOsH;I0({b1qEhjfyZh$^-x+WG>vctiv~F?7OT@{O*WftHoMjC za3)#9n$*7SEJ$*i+@^4pwks&D2R*nlgj1~^jIVG7$`_{j1KxzRlrdh9&z0jV@s-Z{ z*Xw}Ulwi7m5`@uKUlSszZAt-XM;Fw99_4<2vAYOTTfsqYe@TL(9SNTDgxdQFib>QY z^~0s}pdy_Om#Q$y9;?gawiLRWQW%HHWOmqWpvhGG6rEBP2HtkMycVx1LSc3(C~X3T znfQN4VJ_@6{xkaWR~^P~h1pQ>x-^GD@cwXuL-oL|<0vDuXn&5~n*_>>%B{>?j2)6~8YKgFj zR}_@)yHu3Gs{{AFc2iR*fsCv+lf_<7Nc3%YL9#VcNN*}A?YOX!=0I^T2q{7sWB&DC z{cjs-7_m(`^}lMQhZJT%cCvvr{}VCY1>Cbj=6_P=#}x+e%s0CJt`|%zrU77G)hNsx){ojhR=Rx@-G7)~1yGzdbMcU6IT)mueg|E-ffii>cI~@1Gkt6;`95@ciH4ipON}6j++ziq&DYSshM$!_m6U>vlv0f~=&V^dgwh zg#Rlh^tZ#ni?X1<7zDCLh0!kqqpxV1(RHKMzdqpp`_8J4*niMlv8@!@yb7`zS5G#f zTxW{gO;c?JzG7Gu`LCDEg>9hmBxeMrO^M~Nnm~Jn&9DCr_viMSz`r%&{%pxsyVYqn z)t?8^A;k_e_lS8A+eJa?&A)+?tH5LPBsYbU)9SE0?e_W!SBjFYz?~G4KV#z*l-~MF z@zlkPQ}x=^i>KJ$O4kSf1~&?l-HzlYM{P&4-Q;kX8yuh97MI5sIcg^;C>_o>J{byW z{|8G2e=kL>WD{tq!kV5Co}yx{3QceS4K}+iZkxs2l+s!47EpCZgLY7mY=PCy5y6pD zLFs6|@rD0&Y!0hCWI#oPW~w6DJxHPL-M_(ZNS`HHnsPgK&}s{;VQVlW=yJLX?S&ES zPE}BPKi^moVt0e9Wg}wIi(IP;=8+ET>u15byZQz`Tda>-3qL+f|kOZ$>DS)SxmNi znPU2Sfs@Xh!f~3a;Plxgv#HQ(DX@5*P36<=FkUA^c`~^kO3CoH4W@z-X%2R#g3{?r zM#*CZ|7lI~)MHavmDB=Uv^g8dywE}0>2_Nq{ijz!>5IRC64YS|AW0j>g7XTu)+8v? zn5+%gVXRh1fh&?rvlW!Sf}nPCNSkU4x1pf+|E=nMJ!=1x!L46m_nH5VflAm28aZ;7 zD>Qv`sajo7-~p{pDr_oW0cMtzm(j zNgNHtPJogl3EZeX!b2`mQ2HU?nAh;2`jx|5UK_DF|+uZolQQgMQK&FM`x zIhq=Ttackj>5c~0#3@-Lr^k{M;qf0(aT36ytNw)+{g;PA#*qy3Kq{^rpLso@l4NL5%R&)+s&^rL z!Z^-VUi7ceNnb>@pz)-19i2@D?X-)gwT$MhFI~%?Qbp1%-&hpVvId8NOG(_+8?Ujdv?0u>lM0e;mdI@KJ1S1?E)^#l#>ev#eKv~)R(Dw%P)T^(1k(3JCi=cqaq8OOsF2~WDD^1c z)g)wPPjnSmc>ncY=py2TFskYYR5f%q<%#~=al$vMNMbLv5-%c7xENDtQaOKAdxZ@r zF8OPKf@FuK>8}Bt@F{?)kpep{EEYy4$9_|B>IuquOTFjK=z^ z8u1-bi0Xe(aXHwimF78m|1A|Vo0997pz3NX@S#Go!vxco!Z|X1qd$gt^7)bP$x{E73-b8=FY6M3vp~!0rot z@fY^F#Qz?iH~!h@1uQj;+J90!%~bIuUZi-`^(X(Yh$pn#rX~l_z!$my<&mF@R>flm z@znpaCNv+cOJ@A*1@m{Ngmq*#WiWqnR>-weIc&{0E~+;gC|{OeJWrLnLjy`uuPAYT zt`cw#%hYk5Rg~<1W7Krn3tUM}EhDtT(iRIWCuwkrQ9-iZ44-0#;}omnl$39r-0-9* zv|-6b6b&L}2XShUy1`#w^ z9z$U7CfK{A?YIE!!WXCvZNUkjjl(_yt`gWfEbhEVHQR)x6}bZN8KO5Zfo?WBeFW^$ zmQq}t84OlMioE*pw$zzD&(o)@usgcEs$kIu}o=GQ*Nlx(7+kwj*3J zH<%LBpBumpH@eBPe|%H-sAs#K5n^2+E+u4F4yI*?nUD?typCnoNmtTJ1m! zEHmvFW3klIGMXDtX&J+1abr2yLnD)*kpzt*X!J&I0+$W6m7zar&WP|!Nyr;v)#Nnugc;`f?e*+$+e;haPu1_XaQHLie?Hyc{QSmP1(Eo zXuy7FP-T(H;;02Bb5~GMgj>d4#$8U(G=ioRG=rf0jofnXN&p30qs%18ML`w(lf2pe zLFKbo^^#TdvpdY7vdK0F@Won7%uU>_jq>F-Zmr4}4?*5=zT93o_Lcg4S&X&tESb((jN{Gx)gB`4Kl^(wcYf@)CiZ*d0z)FFb(2%1Yl1z^v_l-(bc zJ#_qw!>~~ne0NAaV6uhkW-`@HOPy{W<34B<#}nL#Dvsp@RfOSq^SiITU{G?h6j~*O^by0)i?DTDXz>nmYraz9FcJphXna;(t^(&#b+d`SlI3Ta%rt zWU|Rhc>|wcM%e9dJc6CiYR0;A5u@Ew81Odnm}i+YJkP^EO)^1*(zT2r*voAS-QGFF zU+f9eap?UK9V>5~R%J;_g3-qUA1%PXh!U^o4SduT*fBX+9)NvR2)Yd7$mUgI4E%A& z45B|`dMUptmo@)WpNH-gLp#{QdO$?80Nm_WWiwlofEv@{Zjn!e@YGy)YjMAbcPZfd zU38n8Qd&tfmvn>SnEo;F+w>vl!436l2S;d0x=^o5r@d7))HmrUZL^t@LvK<%O#?(= z6>KiX8~Nt2nRwmyVhYPP!0i^ww$QL;E3j}1=(@uaHo)_(`1XyN4c~$92*QKyvz8Os z(ho!jTh~#u2`qabjRI-e=w78}OOgXTm(@aw347} z2)cG7--qw3TFrF?t*Wt_e=Z8zn`enjymn_jkHS0n0hEL!-pMEP5W?L+(2WG$M9}Ju z{6KyXux1EBHxt;Q5Lk1|KWVLdzRdjW$ndMC!9IqH^MdU!KqN`v%ECpR$!Ae|M)ITh z(LA7h8$oLcT1U|B8~L&PIG_iDh&u?nlhSk7KS|H-6NO1~8go?PX0fa9qR zOZjQMi)w8{0T5rnyMYuhLF);srlf43TDy1id#h9WcbZn^gnd^*Yt1$XI5b%3LOp-2 zv*+jVWsL%!%Li1o-9*sl8nsmdk>zdowx~C@@s<1%%I<}H6~BmIOwd+>?jdL!LHBOt zmqHfr3=f`gJ3;qRQ1}0%>^}X#QyOP;7zm;ENBysvP6ceXWN=h$7Gpe-~v zcO-#UB%A4Ft{ z+(G`GMnN6rkEx)ZCg_5cAw)v=0D+2@}Cj}L-un7 z?IY-Uf?n9fpW;u0B);GwP@Qk1gtSZT(nVqt)me1En!& zqL?!pBSCKxw4Z`{tHx&@FL`qG8}wT?m4S_8XqH|&fx9W|X) z91jw7C>+PH+O6JEPrWs98X7e;=+`xUG!Qjt;t4uJ(AyN$J1UOHR%&k4!xp|a8jR2x z0kF|w1r#l{x~{QmoQ=Xw*7R3VJVwyFVJNEO zt|P7{6vu2G-0=U8->bSAtsz)b3 zS6ZL3cW9~`W$XscMitag1pQnGYV)ze?^``spRxC99%vNQgPMm_P`?uNTNtQ!em^#) zzX~dB0Mb0Jd6I%^XpGf7rFj~R{aJ$kAm~pD>YNeH% zP8&>V>Vi1UOPbdk1^kBQO#u8B!H8fCfHA8At_(zf@qS)alH!Y%$*$R)46fK*oA=PX zt$}kX8Zp=RHOCdwF;B3jj`Zv`_kQ){Co1V-i2%(>&F77R`a<)i3Q9+?5C&@PBK^MY zHL|VCduYDX{7gYLl%du9qWKkwh0S{$+gyQrX4|%@ToE1993~n^S}clqELLmylvCSW z+qyA~wQaO*0djkSTM`^iA-7U7zHe+?_Jfds0Iz3;*qzP@l0XA$eTOziOHXyscGY&% z#%kjTZbNWeg4+??extUBwkH7XO>hT-J5r#Xnv7xo%USo`UyrBFks&;szLLH&a1gN73jwLvbLhY^!b)D_9JqH!2%A^Tu1SU)P#6UY`o1ox+K2dI)eb^pWu?_sKFQ_@%vuhOZagT{xo;gD)z}-UdAc6-|xKILvc=*h={?BKeR5b#=Pp1ya3>E>?yqfun_CD=H6ljA?cv$-g z0Nq7!3c;xqXqw7|_p=lJxCJJS@Yy6-m&v4*g)G$SYR6ga9__R0JZL1OMMlxY2+V^Z zHv)+fNRQkO^C0a$0RDm&CP6O}JdA>eV-=y;MZ@?x`O6ZofgX~aG?!?DDdZGLjG4es z)%m8^wFer-{Gj#_06#)-Ccz^q=us->?=1Guh=DlI24F2V3(da54i=P(Iv??#7LG+| zI26@>r2QD+o+KDR(t;LN;-%du@(w(3Vk<=ScAD0;!rCK>uaaG`by4%=|mEd#W7s+t=X(rJIuD)W~Hjo_S4oxk85f^+LYWv{u-H~F`E zMxfK`8lAuB3_6&x3TwEM!BeOG$Pr(Sn(VSG6OUZnN&*Mgecv-3Neo5WJY+B^2<| z8twVC+otgV*kp%DTFE3r#vqw4DzMf%F5OPu69Bkj``fMC1Aw0-n7{!U6!2vf@b2Tj zckU`dDo>Ma4ft{0KHbX{+lE|??iJmu0Q7Z&uON6i1$w1|ZT8xkiyf{RN*XwcW;kF& zti>?9u$z@aR8p-=)E(3{ns?J3)v0+m41@3r03Mo}9-XqJ;OhEX@S#r4yXijGeWE+5 zQ}S;38iKDS_&S1DZPK06LEcUGh3-p&uP68hitddB-_&Hx`ah9()2Vs4`!6By2B%fR zX%*!@Z!pGH>WP7`!i)T#;CcD9P<;%H5$gHpJ-n!78?2K#?9K+rVcWp;bg-8yMHN3cD9tTU2|Nte{i-zx6_2eP3k%7y7V7S=1y*LQ6P| zSkMawAxdZ_7=`8noB*?y;B^GwPVgNB-%0RY1mC?yh!$E2t%Wv1TeyNL*m{Di3EoQZ zJp^x4e%(ejIj-&`6!iq&grIT`GTpBV);__ZyKaARzOiGyX7r?7S~rGjCY(xH?{Uyg z&!WtxheRj%3k!qvV5P22wxS17HVCN}A8)BAL2cEoKBS0N3eMe|Xrz)xff<>az*guk z^kQ063q1swBW)mfW3|v*fb(=V5xf~r@6IixMe-S*ny+?7drN1P7b!}nhs>clC)nSon`WTC$>Ko}?t5(W!H2;NTceFWc6FgWrD z2!4>@hqeeQLaLA^qzl8~Y8b%}6Z{Clj}rVC!H+AyKK}m;kP0w1#M=o%t|~wXWI=#C zsQ@7m1p&g0WXpM?YtAi?9onZxK%B8l2uQvFCC&8$9FMeny-+~#-bk-AOSSqv|D)g9 zsLAAWSn~BKT#3 zU)d9^-;Dx!|B{@b+DUwVaCRx9+vrq28g2 zk%s!*DLi&wpN|Vq5PXQ>!_eor*rCgNDed!(E$UORlJhj2zbHII@H=w%L&84cdEo^{ z5?&Nu5?&TwnNmCaO(_p8|D76g`f$8E!S51$jNqdLpZIT_x>%=_iOPbkyAR&)2$BAV z@D{bvH--HKzen)<)xrVcAi>88{y^?KQB|Ias<0cR9u8k`Algv|E#a5|TTyn3(9rXh zY=iKg@IK?dP&4QS1bzO?AsRjqPDC7UDSRxPqBi%5a8meG_>AC>3I2rOlLUXdQ8+Dp zE_@+C{0;ZNBlvrQfB)ZXbKeO+P@4lXPOTSyB=~ewHuo#Fx!(jR8hlRh**cp$C$db7 z4I(2V5fl6c!N8ucHi#T^M${1eHFf%D>KWfOYKm|exN^4jC0n9rX1FDaQDTdRFlotj z6I&7djoggjZ&j0A{PYD(QtSXGDRw0IhcJ^AyNEHu3gH!kegkv7phWD~U!cnG#xv_$BtXcv>17VAX^ z!GEq7odlnwjE3V%v*1iVbzvX)&_=-x5;K?Lk07E z!C}R|Sw2|$2uHxHx7CBqGlP?S0f>-;@Kr)|_=C^@0{%k1of2>t!71y?sq(cqRUjFz z5?^s;zOhv}fH5#&7t=MQ^?HP@7u*4FIXq~2-uZ)ObAl<~IM_3<+@l=39)I5R{=-tN zwxkSuQoJ?QW{$U|rKH8Dn#@V@sTnC2dwP1R)t2s@sDAx2Q9W-lPyGSaNP9?nGepQ~ zZ4mRtnWBrZ%?R6^uq`);ZqXxp3EPUW?Frj4BDN8g%_#|M{2$mJKvZ^SBy5X+V(%_d z*+P-9(f{S$0hOpqoG&hf5nEg!RuZ-~VcS%TRpKJTwk2#kP~Y77K2Lek#3HY6R#AEE z(5n?s!Nd-|a%+UMxlCMM56D#t5GW>Yfl>eIi00RbtD0yYQjyi-tyD#B7T1Wk5VkX6 zyAU>JgLs>`R$NEeu7n*-SSX9+8%<#3DX@w2JlJJ_g15{cC{Od3z+stmTj%VG68h1Q zYX8~ZStaynP*~Mb@0GD-%0Z%FDD@uY_{xjDN^l~sM`t#P)#3(mqqs@jOjxk{-h_=O zteLR(+F?MvM})JkH;CKBd&TX9jU{XxVY_b-?-zH74-mEoVS5s`7e&2Cz0M*qg-?|H z0iY`1*thA1sc_0-wzmwvcY;$*^NqcmZmssA?CcOb6zU7~kDH0T}_CPF%UatObLX-@U`wRjX@eY~P_{ zkDh()P~zyCJZMbG!@6<5MA>azO0WyHCEcz1mCN`(dcJl?94! zKa*`kd_tlu%95<#V76FggB%6JA?$e57Ld!KSmtKt2H}L?+LvMAQ2|p#!|uj}UdZse z=qbT)=yy3}v4UYunyC;ejta~JEyVr<*AI}5a%+ms;FNaNLx#%Dv0+2fW;tKf1qv_0|(95KFz5t^VU5vGDgjTk)uYB$x{Va3VfTaUV0U#`joxn!NF9I z&H`?$n+d=hEQ;gZj${pk`hl+f&#W}^pOLE{0_;fgfJu@v0;3{#2QII>zoe%iMvbk`p z#;BSXF-&tfC$6j*gLaj`;nBkvO~M4;a{aE=q_OxG>~Dmr`%uC(5)7QKUx0x=(y`|oO&m99BxK_ptcfn8+V@a^YK)#xOA4{A3XaAHG zS5Um^pDyrEADojt3VtR4{+D}P>GawO*AKZ}!?J6xKcDBDm<88E83uPND^HyO*CXM& zpkhvL3S9St>+OYsj9j=L4A<`zRg9q5HiltaFD%NL1lOJ6dSq!q)>ydi57$NRU|Jqr z_k!!{B5x*@6Yz|E#aEu01J}?W`*pxSfwqSv9XHV9O&_M-=L+ZeM^PNQ!Tm>q^RnrE z1?PoDX%tWBi#sygHF6wWg9GBe_ZAPQ?EwzozN~y4g$cj&>7~V4wBMm{y~Z0<=!M_; zBjrUoRAv^2(R3>hhj!p3Q>m@LnvSM;2zBf~$%H zeNKBhUDJyn-tZ`WsqaxLRov15=Tc@NJfpZNlyhx36K92g1Gv%LAkL)p7JwF&OuTY` zpmHzNYaQj3w$rt}&IMeRtXl_qCIVym?PIb z{W24?-T3%RN-qkx4|9)AJE(tgQDN!z?aRt$Y+m%6x2*0dm4o-ntRJ(OW&KPKn7%Y^ zG;KG1XF6Wj!t}Q3E7M`qdU)~$dlS2p-OE1CKEb}m#K3P)u+OlMD_7guJ@EIz+V>(g zT(zS}4X66%uF+^pV|k5Eh3kG8g$lny+@kG6lA2v(so}au`5Ue=RALv0QMg1SJ%TD7 z#p4>PFQRz_~YWbnsIK_k7JJqm| zU#Rn9Q{ZVx6DWN}pa%iPXSr(VJ)g#y2r8*Z^MzX#GJs{OJ*hq+)MtpViiSj3Rxb49 zW99=M0pKgO_EPXAF%fO3C#GHqG!ji!WY~ZuaGg0bmkFL}EEB_}aCUBJ%{BE_1K}_A zRjT)nr~5N-gSm9hN&Q$j1$0KF@QZr1hOrN~46mlYrl)3@rl$g1p-z*o83Erx#AwX) zz9vyK60VbJt8$33VZ33|{AHB^I<=0W8xMQo8(en+)ZR^I7~N>hMB6aTcjJ{<2(^CA zT@je4-s9*Go)ICQie}ous2U5Sbv#g�-Eja~Q+`W0@Rg3Nr)fC;~|afU}Dj!YpT2 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 diff --git a/TKRubberIndicator.xcodeproj/xcuserdata/Tbxark.xcuserdatad/xcschemes/TKRubberIndicator.xcscheme b/TKRubberIndicator.xcodeproj/xcuserdata/Tbxark.xcuserdatad/xcschemes/TKRubberIndicator.xcscheme index d20a99e..96ab6c7 100755 --- a/TKRubberIndicator.xcodeproj/xcuserdata/Tbxark.xcuserdatad/xcschemes/TKRubberIndicator.xcscheme +++ b/TKRubberIndicator.xcodeproj/xcuserdata/Tbxark.xcuserdatad/xcschemes/TKRubberIndicator.xcscheme @@ -26,6 +26,7 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + language = "" shouldUseLaunchSchemeArgsEnv = "YES"> @@ -45,6 +46,7 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + language = "" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" diff --git a/TKRubberIndicator/ViewController.swift b/TKRubberIndicator/ViewController.swift index 0298bd2..490a249 100755 --- a/TKRubberIndicator/ViewController.swift +++ b/TKRubberIndicator/ViewController.swift @@ -32,7 +32,7 @@ class ViewController: UIViewController { @IBAction func pageCountChange(_ sender: UISegmentedControl) { page.numberOfpage = sender.selectedSegmentIndex + 3 } - func targetActionValueChange(_ page:TKRubberPageControl){ + @objc func targetActionValueChange(_ page:TKRubberPageControl){ print("Target-Action : Page is \(page.currentIndex)") } diff --git a/TKRubberPageControl/TKRubberPageControl.swift b/TKRubberPageControl/TKRubberPageControl.swift index 60235dd..179bb1e 100755 --- a/TKRubberPageControl/TKRubberPageControl.swift +++ b/TKRubberPageControl/TKRubberPageControl.swift @@ -14,7 +14,7 @@ import UIKit private enum TKMoveDirection{ case left case right - func toBool() -> Bool{ + func toLeft() -> Bool{ switch self{ case .left: return true @@ -88,21 +88,21 @@ open class TKRubberPageControl : UIControl { } // 手势 - fileprivate var indexTap : UITapGestureRecognizer? + private var indexTap : UITapGestureRecognizer? // 所有图层 - fileprivate var smallBubbles = [TKBubbleCell]() - fileprivate var backgroundLayer = CAShapeLayer() - fileprivate var mainBubble = CAShapeLayer() - fileprivate var backLineLayer = CAShapeLayer() + private var smallBubbles = [TKBubbleCell]() + private var backgroundLayer = CAShapeLayer() + private var mainBubble = CAShapeLayer() + private var backLineLayer = CAShapeLayer() // 大球缩放比例 - fileprivate let bubbleScale : CGFloat = 1/3.0 + private let bubbleScale : CGFloat = 1/3.0 // 存储计算用的 - fileprivate var xPointbegin : CGFloat = 0 - fileprivate var xPointEnd : CGFloat = 0 - fileprivate var yPointbegin : CGFloat = 0 - fileprivate var yPointEnd : CGFloat = 0 + private var xPointbegin : CGFloat = 0 + private var xPointEnd : CGFloat = 0 + private var yPointbegin : CGFloat = 0 + private var yPointEnd : CGFloat = 0 public init(frame: CGRect, count: Int, config: TKRubberPageControlConfig = TKRubberPageControlConfig()) { @@ -118,7 +118,7 @@ open class TKRubberPageControl : UIControl { setUpView() } - fileprivate func setUpView(){ + private func setUpView(){ // 一些奇怪的位置计算 @@ -202,7 +202,7 @@ open class TKRubberPageControl : UIControl { // 手势事件 - @objc fileprivate func tapValueChange(_ ges: UITapGestureRecognizer){ + @objc private func tapValueChange(_ ges: UITapGestureRecognizer){ let point = ges.location(in: self) if point.y > yPointbegin && point.y < yPointEnd && point.x > xPointbegin && point.x < xPointEnd{ let index = Int(point.x - xPointbegin) / Int(styleConfig.smallBubbleMoveRadius) @@ -211,7 +211,7 @@ open class TKRubberPageControl : UIControl { } // Index值变化 - fileprivate func changIndexToValue(_ valueIndex: Int){ + private func changIndexToValue(_ valueIndex: Int){ var index = valueIndex if index >= numberOfpage { index = numberOfpage - 1 } if index < 0 { index = 0 } @@ -222,7 +222,7 @@ open class TKRubberPageControl : UIControl { // 小球动画 for index in range{ - let smallBubbleIndex = (direction.toBool()) ? (index - 1) : (index) + let smallBubbleIndex = (direction.toLeft()) ? (index - 1) : (index) let smallBubble = smallBubbles[smallBubbleIndex] smallBubble.positionChange(direction, radius: styleConfig.smallBubbleMoveRadius / 2, @@ -268,11 +268,11 @@ open class TKRubberPageControl : UIControl { // MARK: - Small Bubble private class TKBubbleCell: CAShapeLayer, CAAnimationDelegate { - fileprivate var bubbleLayer = CAShapeLayer() - fileprivate let bubbleScale : CGFloat = 0.5 - fileprivate var lastDirection : TKMoveDirection! - fileprivate var styleConfig : TKRubberPageControlConfig - fileprivate var cachePosition = CGPoint.zero + var bubbleLayer = CAShapeLayer() + let bubbleScale : CGFloat = 0.5 + var lastDirection : TKMoveDirection! + var styleConfig : TKRubberPageControlConfig + var cachePosition = CGPoint.zero override init(layer: Any) { styleConfig = TKRubberPageControlConfig() @@ -293,7 +293,7 @@ private class TKBubbleCell: CAShapeLayer, CAAnimationDelegate { setupLayer() } - fileprivate func setupLayer(){ + private func setupLayer(){ frame = CGRect(x: 0, y: 0, width: styleConfig.smallBubbleSize, height: styleConfig.smallBubbleSize) bubbleLayer.path = UIBezierPath(ovalIn: bounds).cgPath @@ -305,13 +305,13 @@ private class TKBubbleCell: CAShapeLayer, CAAnimationDelegate { } // beginTime 本来是留给小球轮播用的, 但是效果不好就没用了 - internal func positionChange(_ direction: TKMoveDirection, radius: CGFloat, duration: CFTimeInterval, beginTime: CFTimeInterval){ + func positionChange(_ direction: TKMoveDirection, radius: CGFloat, duration: CFTimeInterval, beginTime: CFTimeInterval){ - let toLeft = direction.toBool() + let toLeft = direction.toLeft() let movePath = UIBezierPath() var center = CGPoint.zero - let startAngle = toLeft ? 0 : CGFloat(M_PI) - let endAngle = toLeft ? CGFloat(M_PI) : 0 + let startAngle = toLeft ? 0 : CGFloat.pi + let endAngle = toLeft ? CGFloat.pi : 0 center.x += radius * (toLeft ? -1 : 1) lastDirection = direction @@ -368,7 +368,7 @@ private class TKBubbleCell: CAShapeLayer, CAAnimationDelegate { CATransaction.setAnimationDuration(0) CATransaction.setDisableActions(true) var point = cachePosition - point.x += (styleConfig.smallBubbleSize + styleConfig.bubbleXOffsetSpace) * CGFloat(lastDirection.toBool() ? -1 : 1) + point.x += (styleConfig.smallBubbleSize + styleConfig.bubbleXOffsetSpace) * CGFloat(lastDirection.toLeft() ? -1 : 1) position = point opacity = 1 CATransaction.commit()