From f107bb4571e249b70b36f2ca320145c42be39297 Mon Sep 17 00:00:00 2001 From: TBXark Date: Sun, 24 Sep 2017 02:01:54 +0800 Subject: [PATCH] support swift 4.0 --- README.md | 12 ++++--- SwitcherCollection.xcodeproj/project.pbxproj | 30 ++++++++++++++---- .../UserInterfaceState.xcuserstate | Bin 32134 -> 24676 bytes .../xcschemes/TKSwitcherCollection.xcscheme | 4 ++- .../xcschemes/SwitcherCollection.xcscheme | 4 ++- SwitcherCollection/ViewController.swift | 2 +- TKSwitcherCollection/TKBaseSwitcher.swift | 2 +- TKSwitcherCollection/TKSimpleSwitch.swift | 2 +- TKSwitcherCollection/TKSmileSwitch.swift | 2 +- 9 files changed, 40 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index a46712c..a4aa71d 100644 --- 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/TKSwitcherCollection/master/LICENSE) -[![CocoaPods](http://img.shields.io/cocoapods/v/TKSwitcherCollection.svg?style=flat)](http://cocoapods.org/?q= TKSwitcherCollection) -[![CocoaPods](http://img.shields.io/cocoapods/p/TKSwitcherCollection.svg?style=flat)](http://cocoapods.org/?q= TKSwitcherCollection) +[![CocoaPods](http://img.shields.io/cocoapods/v/TKSwitcherCollection.svg?style=flat)](http://cocoapods.org/?q=TKSwitcherCollection) +[![CocoaPods](http://img.shields.io/cocoapods/p/TKSwitcherCollection.svg?style=flat)](http://cocoapods.org/?q=TKSwitcherCollection) [![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/) @@ -12,8 +12,8 @@ ## Requirements - iOS 8.0+ -- Xcode 8.0 -- Swift 3.0 +- Xcode 9.0 +- Swift 4.0 ## Installation @@ -39,7 +39,7 @@ Create a `Cartfile` that lists the framework and run `carthage update`. Follow t github "tbxark/TKSwitcherCollection" ``` #### Manually -1. Download and drop ```SwitchCollection/Classes``` in your project. +1. Download and drop ```TKSwitcherCollection``` in your project. 2. Congratulations! ## Usage example @@ -54,6 +54,8 @@ github "tbxark/TKSwitcherCollection" ## Release History +* 1.4.0 + support swift 4.0 * 1.3.1 support swift 3.0 * 1.0.3 diff --git a/SwitcherCollection.xcodeproj/project.pbxproj b/SwitcherCollection.xcodeproj/project.pbxproj index 80ca17e..8c7e7f5 100644 --- a/SwitcherCollection.xcodeproj/project.pbxproj +++ b/SwitcherCollection.xcodeproj/project.pbxproj @@ -190,18 +190,18 @@ attributes = { CLASSPREFIX = TK; LastSwiftUpdateCheck = 0710; - LastUpgradeCheck = 0800; + LastUpgradeCheck = 0900; ORGANIZATIONNAME = TBXark; TargetAttributes = { 6A555E961BDCA58700FC36E6 = { CreatedOnToolsVersion = 7.1; DevelopmentTeam = 858CBVXSWP; - LastSwiftMigration = 0800; + LastSwiftMigration = 0900; }; 6A9104111D53A8740009451B = { CreatedOnToolsVersion = 7.3.1; DevelopmentTeam = 858CBVXSWP; - LastSwiftMigration = 0820; + LastSwiftMigration = 0900; }; }; }; @@ -305,14 +305,20 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -351,14 +357,20 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -394,7 +406,8 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.TBXark.SwitcherCollection; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_VERSION = 4.0; }; name = Debug; }; @@ -409,7 +422,8 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.TBXark.SwitcherCollection; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_VERSION = 4.0; }; name = Release; }; @@ -433,7 +447,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 = ""; @@ -459,7 +474,8 @@ PRODUCT_BUNDLE_IDENTIFIER = com.TBXark.TKSwitcherCollection; 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/SwitcherCollection.xcodeproj/project.xcworkspace/xcuserdata/Tbxark.xcuserdatad/UserInterfaceState.xcuserstate b/SwitcherCollection.xcodeproj/project.xcworkspace/xcuserdata/Tbxark.xcuserdatad/UserInterfaceState.xcuserstate index d6afae89971ea7392f7a5215d7f39e150f537eb6..11d23f23c28c4bbc5dbacc4f682978ed73f11373 100644 GIT binary patch literal 24676 zcmeHvcU+TK_xQcf0GSDpuptS1hJ=+cRJP(kBmu;Q0RluuFbOJ-`aITJSGDd|troQI zYNxC2YPHo`cb9Fo)>b?1u(po&cWy!u)V|;M_xXO`|6cM5xzBUgx%ZrV&bjB_bE;Yz z4Q7i%aUNkrAsR7=MGov~_RO%b@p_ZlU~C>1W~>^kueO*g!gQwUdIP-HhFOd)o(Ru; zak~dTjvP@hu^3aL>M8iI<^P*j36NQ+8Q87fD^&}dYN zYEUyWq82m`nUEQcM;zkOQ)m`igchSEXeru`UO}&-*U;LWNRcR5%q+$*BY?kxHVHsT3-eQc>Ad4%MG3qJ~f!>`awYBdC$o z7)nR!DFZc@YN5>31ZpBRgL;aZNj*)?qLxrgsb$o1>N#p9)lPL#8>yG6ozyPsF!eTd zjC!9sOI@NqqdupuQ#Yt@sb8pjG)4EKU1=dLqQ$fy9ZZMN5p)clMQ77FbS|Ao=hFpr zKe|6%NDrk;=vsO#-9Q`Z7TQ9$(rxr4`U!d({Ukkuo<+~5SJJEK7wFaW8u~@Lo$jF5 z(p%`Q^vm=%dOQ6JeVBfmK0+U*-=UAu$LV+J_vo|qIr=<(fxbw8NZ+8prN5)Ur+=V- zq<^As(m&IG(s$^)^gYI%5iml=gYjg%7!f08yqRD|!blkz6T*ZtVN5uqV$@6;lg?x? znM`k{57U?F$Mk0knE}i|W)L%&sbt15I;M)LW@;EcQ_IvbMy7=s$Cwy1V_{}8PcyTa z*~}bfE;EmLhMCVSW0o_|G0!tAn3c>bW*f7ed4+kEd5w9Ud4qYA*}?2*4loCqL(F03 zICGMDpZS>ig!z=Y#C*nl&V0q(V18wOV{S2jvxsF_XV!)FVnwW&^=5t8Kvv2|u#s#O zo5}WO`>=i4EH<0XVRP9$HlHnE`?3AmLRQ0S*;2NQ9nIFW26imlz&5f?>;!fq+r~~} zXRuGPGufxvh3q1BF}sXi&u(BhvYXh=>^AmQ_BHl(b|<@!J;WX<4Qp;~Y&?gYkTY^Y zu1J79%ZoJf27Q}(IQ(|5=CZKrMxEK*f!vTgM{#rq5+V# zid2;9iOJiNsU+L} zxyCr5vPe^+H(QJ*T~(uAW6@dkc{+=3G%0A!FEHtv^p!%tt`}OPv9U^LDm0fF%m%1a zDeTj|RjsZn*Vt?^85B z>1mZhZ|y+M1cRlzUT?}JQvjnfHp}ZPg`V9fsdMUuVTt*v*~tZo+41U>TxEQ6PGVww znkqLZK0B`nUkGYDHKCpI~6>b+;akxXqp3FO_05BH zZN^qhX=!1e#$qxw*TK~E%+eSp={Z+IxUgP;da@H0YIS^yQk4>~R4EhV70KDj@oJ?y zDN&V}TacKn9x<7qAx@g6P)vo9#mh(cY_KCf;G9A!NK8rwIxf=KCf^1|4;q*B%soJuyh1ZHT2`bfEiB9f{1uu9>kQ46LSd1nz+f_4 zpk#}&xkhgqQKZQw+^fjC=!IQP*=EZO*&0h*qkgc?+)yd>vUk+AY76ta##z+bR0ULr zIhu2D;wUHJPYmZQ6mYCZd^6}Z9)v%^!c7ECrUdzD7Tw-_U(5!rs^y z^a~k|0Ieb&j{ps#4macRpgBB=p91Y+Hl7Rm!^`+EK7!xD$MH}2E`=xon>981Uz!xCXA7n*ixaL>zc$n+c!LHCys)3?Kr`HZ%iW0K?JL8z&U$#vAH% zkW(p)@6Nw^aOYBsq0wMz%QoqC8eqJZGJ}4Ct%a$@$Z@56XmZDWui#n*sj; zejh?M6I*n^0&51tNE&Sd&P>#xPBo_l;0Gy23YtttQ-Pt;q9@`jznQG;8k>;rIZSvD zV-JKXWG&?yn_5hIvsqsQT2^&~m1|o&AerWzHf>uA;oeZ1C=R+7CuStPXSro#nE*94@rPP*Y-QgKi$DGYze?(I~W7xXLojT^)bm5J1JD(8cY)jFc;nJdh#RR$~BYb}7P5w);o7z}9F)#+^$ zbr;=lNB6kFT=6I9Z;UX;6sD02W-yB#up{n;ov;%s$IjRVyJ9!^x{t8;Qd%+yrVBW> z$pS+He6}_<+XO9WQTpbZM_zhV*Xv9=Sb3%rU2~m&ke&$r#!gtRx*b%3SGKx?49$95 za}|W5pr57|XxQH0gKVI`hZ;6kb49{DA?Ah%XK~2G^Os6teJ#v?dO|`%sTmZ?1Z~ws zov9%Kn0f;kIT8l9^)pzCO-5n?Nq8I@|M8`vsRec_RwY|*Cb+f|FZRHon)v{u)#@i& z?Ao#&Eo-qC77>#ErvktUq3XlcY|CN>_U<6;(~3Xri>hDbB0zXPp3W+ThRDH{#f6bl zgIQXmhb0e$p|44o7B}j3X1%l(zL9yxR$vbD7DJ@eXp%-+6BeViPH&M~>h;p`y2e($ z)L1L6HkzP5yaY;;0(X+?#v2Va(rTTV;9ow};PrRsUnlKi366lxA(n#H6oNz1b2ywU z=Z0|=+;Cu&Bi7?c6pEwa8;j$(k-+|{;j8Cr2`!UNr=1B}<)IeT^-7@(UfZ~eeRdw@ zE<}cRvGyKqxKZs` z#f>HmfD|nwvt`aUcQ2ZOdxN~knOtQ%?!%2C!}GL}O!s}6z2O{O01^)8;yiSQ({WW? zHhF*#JdjUh@xQEIgp0f28p_plF%qoBr6}yh7p;@~Fe_CjO`U4*zXFfwYG5Q+_n?7F ztm_&^6<5zi+H2@>9b^Es+3mQVGd##>z)hq^BR96)3O)?{AGW0SrcAgMg>_&vws4JH zQwI^1R>250#a7WYq`9$ekY3lIugL+<(E!3nGOVO4hwMj*#4#D0y0!uKrl;U12$V$Y z!qYe-7in8T(?L{#20sHo#kFuI&eA0+@GLy<5lyEzlHvuR-nw(+h^8~nrhMDGSd5oH zQX>aytl)g1hMCluE45a!*I11^9cu)uWNk_+>I_ zTkuwHBG=Xdil7uKyAwWXq-(qGY}3fSVW2j3nP@$guppajbfy}jMU%p|EZ_`fHjB0GS<_n81f_>} zt0?q>8hQF!U2CJo+JmimY3Hj4289yB5Y0d@Hem^J#12rGDn7i?Y9Q#on$O`2gs9JR zPqpKV+)OfcVOzxLcK_!>|I{t{osUvaa! zIo#Z}_-mNW>)bq;!QF%+qI+~l7?)lHd!yz$YqDz#4?7T8H9gCAYQ7J@@2595=`E%< z+miSZlmh${_Y7BT2kIAm2Ze3GzvAEUE&MyajsL)Za`U+b+_T(5ZV|VbTe1P)#rN=i z+=v@t*NeHO+%j$>Hx@oSxSd?&NMNki9VgKkN7!JpLJL}~&A31m*PaLgeAw7HwtJ)%H0hwp0mRHBu>vdpi=o~2JN{Nu?2Fi_c zhn>5S@_^mD7q^^yj(eV4!L8(0aW8D3#FRJXgYsZo?@tAAtGPAYI>5|J+kT~7lCO}Xh*4Cu^RmV-NiZ!*g2s@6RfQVuZis#_Ei&y)Y|Jl$m3q)Hgj)s zn>fEpVM5n_um_phnv-|Qmagrg4ftGie=U_qUR7H%8&3M?S1kQxB`bR#v08a(_# zU!_(kV0CQeUKX-e&5kOjhT1l04;F;YC}}NQtTUK8s1l+!5{=~_%XIdL&QPV)VA$Gh z=U(o7MGXU@9n8H7#QO3-s1Sbxs4Q5iMq@Ybb?yxgRSL(}{$~{D$JnK9(@;fKKVJXs zplZnI|4}ujYAIMaLLnaSgsRPtNFnS zIY%`B$u?p)s+k%^%+gh$af8iLZqhe`z!|US5Vwna-8SfPlnFMwz?wR!ahFZ%qxi2`#I{wVL+3L|>QawDZQ<)O^y-9BM8#k9vkX#2x0| z=8h24Mjo{gRE`WFtfQT3N14uKARHa6PWlN}Eu%y?!KNEm3jKTLcFH78wUO8yq&+gN z)r}^QVC~#fVvlnoFls( zyS`*oOGh5GwsD^Nj{2VZ0f_%cApV=w&%kUX+)JOf=P$nZ=Jr`&}z0pVAb3w zT5LJKEha+~oIyO2#a)I)^AUITBG}A-gAQ&{zf-rNlOL%&aDsjpl@Eif3yn2!I8@f6 zga4Kh)wUf0p%0)fyTth?o-o2_GT8M&=;<=|CHHZ6;d7t*%O-rdFSt)^vcgJrG!2}e zW@wgn;6CLpai2ZJ`E88;oJ|-!hBeb3R@VIa{|{^KF$c6i%)%Wo)VQH??h1hZC5LQ~ zNeCCY36oZA-aZ%=%AxX>;F#C z&ILfn(kZYLq2uUyT23d>3R+1g(n)kOca8g+`-Z#D-Qd3EzT>{x$TaSNYcrA9V750# zK(Y$70A>2(KPb3qevPn7X|D;Zvn5MObfcCJ=>ruwuwuT;w z!Zy-cx|A-X%jscooHZOa1V3}Xa<{nK+@IWC?moA3BRz^9O;^%mXdPWeSJO4z-#m8b zaS)GVc$~rGfjl10Rv*#sJ%Z9*RHe4@4UKmKESVE#m~ z-2zSjQ~y(~{onbI8E^*~#^$9mU1Vm|IpbWdA*|LZ^2J7GTdh0uw4 zWW7!VXU~gZzfaGl=h4r=A@l-r49#Q2V>s=mcuez{;W5i&hYjR#n(T(@<#0g#JdYiD z+>7jodF;YtS045ez*7FZCAKrib@T@7mY818y~txH*b~#6xDFmWbDbu}|y?`jibJ?-PXh5`>&42=RLqA@uZa2>FP0 zHZTc{0YJ9vAa?D341vFy+iJrh*yHjDXY# z9&324<#9QWhw-?=`dIN_q!2Ea-N}xadZxjKm9YdXr35QY1S@5aVnzIEXjVw)nrRd+ zu(#04OeNSE&rDz@GHuKxW->E{$1wRLc|3~8qj_A(<1sweZD5{Yroocond!`v%nTk^ z@wnQ$WNLX_$K!e)!MqD*($H>&8L{ z^LYGB2PrW(8IPCq_&FYf^V>8?yZ)$~eKch*hlq2%ARK(e@X|n^^BDh7y4rB+hpv{4ddWpyD z*Rn&{VswVb8+d$}%O*TX0VwQgf9|wZ1C!IVHjz^p8+JANI%0Q*DJ0j9dsZ3JV!dq& zlkiBE)epqBy2?@YOYAVVf*sC|U_pu5$m4B1evQXFc)X{J8?cpZHGzB#t7EHpyotw~ zdAwyU(~H%!pwGZI4TR~-1oVhUI_m*xvB?0ZIpj)j?7uFU0~eq*dN?n#`4&X~>(aJ9 ztVfyENE%Kd=|7yMTP!A=?6OT2-wUy&1e2r5s(MX|1l->udBi=R7=}y}bR%LHk2K zkR2j1$8cpMP@so< ztR_9&nSUMu*iHd!gi`Z7m>a=`^tNOJ+46nrXxAz(gihe{6MWX_+%gVcb-Iaq)Fb3kuWM<6+j9st!C_FplI)6M6~m>Dm%u;G z2i$w*NT91Ww`3O=4K2m)A*V2SA3DL(Lel*qEo#t~%wa!>8Ec7ca&-=I9Ihv`{_W6 zNE79WQqX>gB2J3@-~Kfp9H?H<_66`_>}|vGir2sB&~+@Yt_1ZO=tSs@rJS@ zNM|8Lg|t|5N+3M|(p9YurP+{&K(ZvC`fnI>kA2a_%Ci3mA_SWH?{7hrSH)*1>5Azc9JiS?%b0LzD(7GJ~Vqcx$Q- z=};4Vr2s)3eEUJEX84+*gc&u!`#MNp>&hq3qz0+e0y#!h3nd$&p8c&9;!5Z{>yb8$ z@FlfKyVtGlR(JL%hyHSdUqY>rUk{!%&G27}2BXW?HxmKACV0+;x2=#@2kGv;Bmx~J zqGBtoHW)}g>E%XeFGi?QW9`dUkBrg=TQ0!dj3z-Ifz3K{u%;@&wyA)427@4;fx_CG z2}-n~cpOd|4@OSLcB8A;aR6)g(RZIO`y3yF`LaOEjW9wIfrG$c259a9+zp+z zAIzq;$7lUpqgq;)%^zAgdc755GIr^7Q>CH$g9SJL1=b#5%ieo@54;WOP8U{6sd1xI@`Tlx=N=P*@Xu31;=yIqe7i>i{2SnC(`eQ$ic@Kr!8MXX~Zg z3OF`puP>5boOkeDB;6|9ecalMb+#`syGEXKJvODb`C0##meK2{+|{={$R&8tKV9^D z5t<&Sct!EOVx3~E;#bAz4@xLLRQ#a0plFAj@8Ed$O?n@_8%_mJ!iAW{@Ouc35=m++ zy%#>OcGc@i;kI?ulfntTRd-S}8Kb3>rn=L9w-F*TU-sD|@I^(qI(vkLfu2$2f6z|Zh!Yk_dNH2uKBR7 zaRLWf?}WnaeBl8XtAJcPC6Mve109&GJWJO(-tOy*@I5I|#shvvIGUmRs)GAl4V^vN zc!Ir8`@C8yq+1J(5NW3wYD@q)NOT>t+M9uwNPCpAt$PBS5xjc{4j;1;Ao7Y5;;JZ^ zAz&lPW>T1}&NSgxneZXJ%ErCpAqqAa78vv8ByKZm>$>(oUmZTG(7I zkCP@Ulpx)R&P2)}^y^ToE`+^LR=1kQ+ukwcheghyPl+I4NibYqjRK4izyA!7nfagt z3<3ZD3N#wVQ4g3j!OTuUJUAiGMbDz8;PSf$ym>dFZ4j?$C)$e+p?A;;@F~53J_UJl z4H0+E-_c!+!FkdR{QUgD2`(JRLL4GB?t}9o0#OOBz+16JU6Ys8`5 z_z*-KIs@^AuHYLOye=TJ5V#~jG@%HH9i)bcK?5l*+|RC~#=&*p84ye0Ifx~&mD)ia zqE1j3sLOEm@)nI~7uuVa!5uj@MEMy)4~NJ;CWz%T2cigcK)jwk5ToZDeHr5M{0V2F zUJz|39m7k2$67(Fz1*n%uVJmFlPmV*(M#L*9>FpAXd#xYh;=? z*`vUrud%;7I5>C%epG z@`}rGmn$xRx_Y|CxaPW!bZvE=@4CVDpzFu3zq+}(MYv_T4R^D+&3D`6_O{#SZhyFY zxy#)P-D}*ZxvzBJ;eOWrM}d}5Uv#N7Jewa z<>BR_^cdpN#o3I417kNSTfAPUF` zs1BGD@LIqpfmC2jU`gQQz_o!V18)Td2lWeT33@*0?V#_2y@RuY#|AG6-XDBJ;w9-L zF-Vq34oJS0ily1oM(K0XBhs6)Kv{oTtE^piN_ICSGNd$QddT*W&qAF;)uFYaOF|Ea z-VBq34GxeL9AUNr|bCSsC*|EESs?YlwXz_DmcbmloF?*Ae$&ylZ@R{P_4S z@mJ*D@^HKlG#y`c(IjZv*qeW(_xi`Dbg$J5xf zoV00ad(-|*PffR^zn1<}Mtnv?#^#LcnUR_L%ypSpdx!Ma^=|KdxsSBZm_9G|x!hOQ zSJ$_r@0VF%a?VI$|L-0YXqZ*sqb{n`El`!DSOVPQ~Vb>XJMn*&q>rVcnV&~>0@;EI7?4vHCM z8nkCHHF&__#e**ug%>p!?Hq!J6b@ND#u8{PM7bVN-{lsPL~aRO}k=IJ|85`r)@m z#TP}}FAGdVeP18WrdNVeUGVij8 zV1s$GHLCTg)+^)tj9)qaj|pWHUZ3bOv3cUjwwSirZQo2PnDo+QW^(o9!&78a_$gPW zW>0N@0zXmp#Nlb7(`HP&2LAIKd1ti5)^neH=9 zGe3Mf-n(f zpMCz`iux57R_3hSzAA9l>{Yj4sCnV+>a5k<)&#AYyXMY|h8I6-@7KPgBcfy3T8Fjc z*M7aOY~8V!)GuvX@4tTT`uiK2H(cIWvhm0!)uv6G12-?<zc?a%1brt*2kkdwJKk z_-*amy|>SO1-;Vx%D1nMdG+FJ17AD*y888PZ-l?G>P@dV=j^~c+IHOBS-%?*o$#+&b8D@cTn`hpry3JpAd~!`?oB zWayDoM+Y7~{!YO=Zy(D(cHnsL<9pvte|PtL>i2e@NIkLRWXj1m-%ok}%~PqTc6^}v zVAtui(|gWjp4or4@7Y7=^3J_;zVQ5s3q=>sTr9o#(T5{Hy!=tkN7p}Y{P^cj#(#1b zuEn#L=6ojnY}x05pLcu_{l)gnsh9U%$-8p$OU;*`Uah|R-B;$X?p>SlwcFRrzL9*h z>3ZVzy*CPOoc?yix7WUF`R?xbGk@^-VbzaOKfdu()=wvI4!e2nXVcGr|1$4azh5`} zmi*h{TgA6N|Gnw=ySL~3;rGYJKh=L8yHkGWo4XV4Io^Bje)Ro4e+~TW(%(&g|IGz~ z>Bnq&C=QOfwFrzsBnS@VPMFxk+|$uk)Z-aSOr8R!8>{W7V=^&3Ju%H{6Y4UyK~xPA zj-!JE(-YW=9)1sZwjTmX+0 zYv>J#mAD(d1#uD&fEIEJeGD4N4bVRBL+A!42-x5TaS?-YD8xR@!Fdq(GN>O z{}_QsVQ}XL{bLb$^&W%xhNmF5;aSi-F5%B1vf)*H4S$1gKs-YkL@x}7!`Kw?dl(3@ z3dv>x+|o~_ z`_Nf*4n!P;NQ0t%q64BMqO+olqR&KMihdIPBKlj*h+V}3u}B;(juU5#H6Ry9*fcf@ z+kRpEJ^sX_I9I!od^rnVKI`Gg;CXfhTg9$oU$7n=yv5_aaCX4seLUX3p6NxEvh8dK zxJ1D%msAdH?+18%2t1>}GZuBeg07!KNw1-G-W*a%qP!EPsKe?qOX2CQ#7i&UAO zk|xa_Ed17X4D$wwmEs2Gb9*=;b{D&coY%s;b{6LBXy$4wf=$@cN74OF z6owoA6>!7998}CwTFV>(SKnK3zyD9T=YJpW`@;cl8}VLygxX=7f3DQ(OkpK>KQMd6 zq7*PN^##TBWBO|d6Zt1x<745Xo)d(K6he4N5vZso5bUv$X@>BQCJ5~~9`40F1>qfM zLukim;7-RvW-$bBe4n`iXN-eDO>JQ(I(_H#gVXQM*xA|H*ID8m;hf;y-?`Aa%-P`F z;N0YFbROqyc5Zc^;N0ds*?GS6v(Ag0mpCs2wQ_~?D(BVCFFJQPzvX<&`7aj_mq?c~ zmui>sE;C$ax-52C21@2imls^txV-MN*X5AQ+b&04j=7w7`PAhzmoGr|yzcU?%l9rn zy4-a6%hkm-*j3^h<*Ib;1IlQzYq@KM>j>9Tt~IW;uJx{CT^m6?eZut_*Cnp2Twij1 z%k{A92d)=gKXU!V^^)sV*K4ldxZZI6&dtS5;+Eq!#I4q?-fgT~qg%6Ei<=3Q*zs-? z-6pwBaa-)R)NQ%j^KL8MUT|CE*6y~}?IpJjpx|zCJL-1c?I+m$M!@E`(0!EqIQM7V zJKVRpZ*|}1zSDi5`(gKw-9K@^>i)I+b@y-Ge|5j(e$V|c0TNIGfj}hi7WfK+1QLNv z5GsfeL<_P6If5Yqt)NUWOfX7NDbNY31m#bFSwz zo(nt|dM@@{>e=DB&U3xzM$gTjTRpdVzT$bz^E)qpuQacLUc$M*g^~zk1#B`orsv*FBMw z$XVnfaubD#l%ix&swhpAA?hs}AQ~(hA}SGSMP;IDQLU(6)F5gS8AVe>(?q;zhG?c} zmZ)8{P4v3xP0>!#UeSKhLD6B+C!%{|Ct!K*Vh^#GSS$_}hl?YD`NfLk#p%ERbH(}M ze&Ql=vA9I61!h<&ZWNovt>OvdHZdojE}kKtDV`->C|)goNxVV4NxVh;n)nUz4)HGW z9`XC)i{h)|>*8<4--~}1|0=#EzU?jcR(a=nmwQ)ukMJJlUFog!uJ+b@*LfSfr+7c% z&3RAvp5Z;ydzSYc?|I(yy`S}7>%G_eJ?|^t-}_KL;XY|Tc|JpZv_54%6+R<;M)^GD zv&d(u&vKs?KC66I`>geO#b>9_ZlAY&_W2y~dB^9t&wD;6eg5zj`bPOGeUp7tebv7C zzFOZh-(kMPeMkC^_8sF}OBBmGAEjq$7UtMRM#tM?lVTcB6`F8bZ^m-^@XH~BaF zPxj~hr~A+FpY1=_{~7-U{!9JW`M>PH&Hoku*ZueU@AKd9f588||2O`>2RH?U2Sf%$ z2gC-%2P6dO0>%c63or+?222QO3z!+OFkpGW^8qUZUIGBdMjvO(1Dk*&d2mJWh~S#w+TeQFtThHV2hR)M6nrxHTJVp-KL!6B{FekvXo-WQm&92TEQyuK zB??KBBt@c5#0Gte0$;?3L`3?3Wyrye~N|IV-s!`B3t)yHqIk zl!~O@QmHgrnkwxr?F-w+T_Wt?ofY=&&6Y_V*qY`N@t z*?QSV*=E^R*&*1Bo|c`JotOO}`$_h*>{r<>*V}D2>CALhmfB_eh&FH)FHGNY+>C(g`r-d-l2Y>fuWL68Ek1wL#smD zLbrzQ5B)Ushp=8@;xPZPz_8#jI1~>!M$e-VwbsdRO%B=y#$oM1K_hY4qpOSE9d){wDg{=s%$+2@{pNV}oc2Vq-*yXV+U?aaK_MO;kaV~KQaiwvSU^~Aq?$x**al7K) ziaQv0IPPfNvABzIAIE(fcRlWQ+?}}l@hF~-cZhd_O@BaqaJ(!&EIu+mCO$r15uX@e z5kE10b^PJ@>vA`Fiab@GEAKBKARjC*k!$7U@(Ovqyg_b}kC#u7Pn5UGXUdn#pOdeY zua>vV*U2}?H_La+_sS2*56h3rkIPTUPsvZqZzp&sWG0MBn3=F8;atM`gewVOCtOeX zF5zavFA292ZYvxVP6`)=tHMp;t_V=XDB=|gMUo;_k*3I0^i>oohAOm*a>a1PD8(2> zwL-6$r`V!6qqwCEP-ZFXm1C6?lv9*XD0$^fq!~$1C(TZpn>0UZ zVbYSMWl8&zE+tdR5y^v+$0a|Xydrr+^48>S$*(5wNZysaCwXu3iR6>X?1!K!AsXJ5mr0z{Uka{TfTI!Ff zcU6>%Q8}o3sRSwym6ys}<*SmZVpQ=eg(^{%s~W5-R%ujastQ$=%BZraCa5ND!nTA*5{+M+tDI;HwibxSQ)$EwxpG>Bf>E7wS=>yYi)2F4+N?)A5EdBZPRq1QeJJQ#s zznZ=){jK!<>4(yfr=Lham3}7uT>8C?n2fTFQ5mL;X&Ey!W@pUHSdg(S+OTH@kx#YK!+a-5O?rV^S)(FA$Bi8t80yIGyiAJU=&@^b4Y7S_Q zYffuE)?CtD(|oV_S<7f0v;wWCR;2aThH4|UQQBCoT&vKgX*0Ebv{~9h?Evi{ZK<|i qJ67AMZPvDEOAU zLW@^E?TOD)a*Ct8DIdz0ilv5Aaa25&KqXR1l#)uOQmJ&xK$TJDR0UN@RZ-Pc4OL6k zQT0>1T5xNE4 zif%{uphwYi^cY%!9!D$DTC@&5fu2P#qTT3Cv z&|b7R?L&vqq4ZEXjE?pij|X(x>S&^jGv*`Um=F`gi&d`cDQkG{Z0)!!s_7E91r}7$3%$31cD|4Wni9 zn0%&yDP%@5W0`SG2~)}#m?p-|SePkHGtv&;@=C$o!rg?W{EgL#{IkNJQ(#(c

-q}0kS|@kStghA`6wp$`WLWGL=j%)5x^4 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 diff --git a/SwitcherCollection.xcodeproj/xcshareddata/xcschemes/TKSwitcherCollection.xcscheme b/SwitcherCollection.xcodeproj/xcshareddata/xcschemes/TKSwitcherCollection.xcscheme index 5323295..e9328ac 100644 --- a/SwitcherCollection.xcodeproj/xcshareddata/xcschemes/TKSwitcherCollection.xcscheme +++ b/SwitcherCollection.xcodeproj/xcshareddata/xcschemes/TKSwitcherCollection.xcscheme @@ -1,6 +1,6 @@ @@ -36,6 +37,7 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + language = "" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" diff --git a/SwitcherCollection.xcodeproj/xcuserdata/Tbxark.xcuserdatad/xcschemes/SwitcherCollection.xcscheme b/SwitcherCollection.xcodeproj/xcuserdata/Tbxark.xcuserdatad/xcschemes/SwitcherCollection.xcscheme index 041c57e..989ddcc 100644 --- a/SwitcherCollection.xcodeproj/xcuserdata/Tbxark.xcuserdatad/xcschemes/SwitcherCollection.xcscheme +++ b/SwitcherCollection.xcodeproj/xcuserdata/Tbxark.xcuserdatad/xcschemes/SwitcherCollection.xcscheme @@ -1,6 +1,6 @@ @@ -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/SwitcherCollection/ViewController.swift b/SwitcherCollection/ViewController.swift index 97105b7..e76677f 100644 --- a/SwitcherCollection/ViewController.swift +++ b/SwitcherCollection/ViewController.swift @@ -18,7 +18,7 @@ class ViewController: UIViewController { super.viewDidLoad() } - func animateSwitch(_ timer:Timer){ + @objc func animateSwitch(_ timer:Timer){ let switcher = switchArray[count] switcher.setOn(switcher.isOn, animate: true) count += 1 diff --git a/TKSwitcherCollection/TKBaseSwitcher.swift b/TKSwitcherCollection/TKBaseSwitcher.swift index 347dfa3..f278b64 100644 --- a/TKSwitcherCollection/TKBaseSwitcher.swift +++ b/TKSwitcherCollection/TKBaseSwitcher.swift @@ -76,7 +76,7 @@ open class TKBaseSwitch: UIControl { self.addGestureRecognizer(tap) } - internal func changeValue(){ + @objc internal func changeValue(){ on = !on valueChange?(!isOn) sendActions(for: UIControlEvents.valueChanged); diff --git a/TKSwitcherCollection/TKSimpleSwitch.swift b/TKSwitcherCollection/TKSimpleSwitch.swift index fc83ed3..be245a6 100644 --- a/TKSwitcherCollection/TKSimpleSwitch.swift +++ b/TKSwitcherCollection/TKSimpleSwitch.swift @@ -134,7 +134,7 @@ open class TKSimpleSwitch: TKBaseSwitch { // 旋转动画 if rotateWhenValueChange{ UIView.animate(withDuration: duration, animations: { () -> Void in - self.transform = self.transform.rotated(by: CGFloat(M_PI)) + self.transform = self.transform.rotated(by: CGFloat.pi) }) } diff --git a/TKSwitcherCollection/TKSmileSwitch.swift b/TKSwitcherCollection/TKSmileSwitch.swift index 3bc8a9e..9fbbe93 100644 --- a/TKSwitcherCollection/TKSmileSwitch.swift +++ b/TKSwitcherCollection/TKSmileSwitch.swift @@ -171,7 +171,7 @@ private class TKSmileFaceView : UIView { func rotation(_ duration:Double,count:Int,clockwise:Bool){ let rotationTransformAnim = CAKeyframeAnimation(keyPath:"transform.rotation.z") - rotationTransformAnim.values = [0,180 * CGFloat(M_PI/180) * CGFloat(count) * (clockwise ? 1 : -1)] + rotationTransformAnim.values = [0,180 * CGFloat.pi/180 * CGFloat(count) * (clockwise ? 1 : -1)] rotationTransformAnim.keyTimes = [0, 1] rotationTransformAnim.isRemovedOnCompletion = false rotationTransformAnim.duration = duration