From ec31ea0bc99da5eefa08a807961e249157bf1ed8 Mon Sep 17 00:00:00 2001 From: David Hart Date: Sun, 18 Dec 2016 22:06:07 +0100 Subject: [PATCH] rename properties and methods in Swift to remove the yk_ prefix --- YogaKit/UIView+YogaKit.h | 48 +++++++++--------- .../YogaKit/YogaKit.xcodeproj/project.pbxproj | 10 ++++ .../UserInterfaceState.xcuserstate | Bin 24187 -> 27531 bytes .../YogaKitSample/SwiftViewController.swift | 41 +++++++++++++++ .../YogaKit/YogaKitSample/ViewController.h | 1 - 5 files changed, 75 insertions(+), 25 deletions(-) create mode 100644 YogaKit/YogaKit/YogaKitSample/SwiftViewController.swift diff --git a/YogaKit/UIView+YogaKit.h b/YogaKit/UIView+YogaKit.h index 9d6b1f27..d6f0b8bf 100644 --- a/YogaKit/UIView+YogaKit.h +++ b/YogaKit/UIView+YogaKit.h @@ -15,25 +15,25 @@ /** The property that decides if we should include this view when calculating layout. Defaults to YES. */ -@property (nonatomic, setter=yk_setIncludeInLayout:) BOOL yk_includeInLayout; +@property (nonatomic, setter=yk_setIncludeInLayout:) BOOL yk_includeInLayout NS_SWIFT_NAME(includeInLayout); /** The property that decides during layout/sizing whether or not yk_* properties should be applied. Defaults to NO. */ -@property (nonatomic, setter=yk_setUsesYoga:) BOOL yk_usesYoga; +@property (nonatomic, setter=yk_setUsesYoga:) BOOL yk_usesYoga NS_SWIFT_NAME(usesYoga); -@property (nonatomic, setter=yk_setDirection:) YKDirection yk_direction; -@property (nonatomic, setter=yk_setFlexDirection:) YKFlexDirection yk_flexDirection; -@property (nonatomic, setter=yk_setJustifyContent:) YKJustify yk_justifyContent; -@property (nonatomic, setter=yk_setAlignContent:) YKAlign yk_alignContent; -@property (nonatomic, setter=yk_setAlignItems:) YKAlign yk_alignItems; -@property (nonatomic, setter=yk_setAlignSelf:) YKAlign yk_alignSelf; -@property (nonatomic, setter=yk_setPositionType:) YKPositionType yk_positionType; -@property (nonatomic, setter=yk_setFlexWrap:) YKWrap yk_flexWrap; +@property (nonatomic, setter=yk_setDirection:) YKDirection yk_direction NS_SWIFT_NAME(layoutDirection); +@property (nonatomic, setter=yk_setFlexDirection:) YKFlexDirection yk_flexDirection NS_SWIFT_NAME(layoutFlexDirection); +@property (nonatomic, setter=yk_setJustifyContent:) YKJustify yk_justifyContent NS_SWIFT_NAME(layoutJustifyContent); +@property (nonatomic, setter=yk_setAlignContent:) YKAlign yk_alignContent NS_SWIFT_NAME(layoutAlignContent); +@property (nonatomic, setter=yk_setAlignItems:) YKAlign yk_alignItems NS_SWIFT_NAME(layoutAlignItems); +@property (nonatomic, setter=yk_setAlignSelf:) YKAlign yk_alignSelf NS_SWIFT_NAME(layoutAlignSelf); +@property (nonatomic, setter=yk_setPositionType:) YKPositionType yk_positionType NS_SWIFT_NAME(layoutPositionType); +@property (nonatomic, setter=yk_setFlexWrap:) YKWrap yk_flexWrap NS_SWIFT_NAME(layoutFlexWrap); -@property (nonatomic, setter=yk_setFlexGrow:) CGFloat yk_flexGrow; -@property (nonatomic, setter=yk_setFlexShrink:) CGFloat yk_flexShrink; -@property (nonatomic, setter=yk_setFlexBasis:) CGFloat yk_flexBasis; +@property (nonatomic, setter=yk_setFlexGrow:) CGFloat yk_flexGrow NS_SWIFT_NAME(layoutFlexGrow); +@property (nonatomic, setter=yk_setFlexShrink:) CGFloat yk_flexShrink NS_SWIFT_NAME(layoutFlexShrink); +@property (nonatomic, setter=yk_setFlexBasis:) CGFloat yk_flexBasis NS_SWIFT_NAME(layoutFlexBasis); - (void)yk_positionForEdge:(YKEdge)edge; - (void)yk_setPosition:(CGFloat)position forEdge:(YKEdge)edge; @@ -42,34 +42,34 @@ - (void)yk_paddingForEdge:(YKEdge)edge; - (void)yk_setPadding:(CGFloat)padding forEdge:(YKEdge)edge; -@property (nonatomic, setter=yk_setWidth:) CGFloat yk_width; -@property (nonatomic, setter=yk_setHeight:) CGFloat yk_height; -@property (nonatomic, setter=yk_setMinWidth:) CGFloat yk_minWidth; -@property (nonatomic, setter=yk_setMinHeight:) CGFloat yk_minHeight; -@property (nonatomic, setter=yk_setMaxWidth:) CGFloat yk_maxWidth; -@property (nonatomic, setter=yk_setMaxHeight:) CGFloat yk_maxHeight; +@property (nonatomic, setter=yk_setWidth:) CGFloat yk_width NS_SWIFT_NAME(layoutWidth); +@property (nonatomic, setter=yk_setHeight:) CGFloat yk_height NS_SWIFT_NAME(layoutHeight); +@property (nonatomic, setter=yk_setMinWidth:) CGFloat yk_minWidth NS_SWIFT_NAME(layoutMinWidth); +@property (nonatomic, setter=yk_setMinHeight:) CGFloat yk_minHeight NS_SWIFT_NAME(layoutMinHeight); +@property (nonatomic, setter=yk_setMaxWidth:) CGFloat yk_maxWidth NS_SWIFT_NAME(layoutMaxWidth); +@property (nonatomic, setter=yk_setMaxHeight:) CGFloat yk_maxHeight NS_SWIFT_NAME(layoutMaxHeight); // Yoga specific properties, not compatible with flexbox specification -@property (nonatomic, setter=yk_setAspectRatio:) CGFloat yk_aspectRatio; +@property (nonatomic, setter=yk_setAspectRatio:) CGFloat yk_aspectRatio NS_SWIFT_NAME(layoutAspectRatio); /** Get the resolved direction of this node. This won't be YGDirectionInherit */ -@property (nonatomic, readonly) CGFloat yk_resolvedDirection; +@property (nonatomic, readonly) CGFloat yk_resolvedDirection NS_SWIFT_NAME(layoutResolvedDirection); /** Perform a layout calculation and update the frames of the views in the hierarchy with the results */ -- (void)yk_applyLayout; +- (void)yk_applyLayout NS_SWIFT_NAME(applyLayout()); /** Returns the size of the view if no constraints were given. This could equivalent to calling [self sizeThatFits:CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX)]; */ -@property (nonatomic, readonly) CGSize yk_intrinsicSize; +@property (nonatomic, readonly) CGSize yk_intrinsicSize NS_SWIFT_NAME(layoutIntrinsicSize); /** Returns the number of children that are using Flexbox. */ -@property (nonatomic, readonly) NSUInteger yk_numberOfChildren; +@property (nonatomic, readonly) NSUInteger yk_numberOfChildren NS_SWIFT_NAME(layoutNumberOfChildren); @end diff --git a/YogaKit/YogaKit/YogaKit.xcodeproj/project.pbxproj b/YogaKit/YogaKit/YogaKit.xcodeproj/project.pbxproj index 011a3824..a3eb674e 100644 --- a/YogaKit/YogaKit/YogaKit.xcodeproj/project.pbxproj +++ b/YogaKit/YogaKit/YogaKit.xcodeproj/project.pbxproj @@ -24,6 +24,7 @@ 63EE08501E06EECB00EE5F9A /* Yoga.h in Headers */ = {isa = PBXBuildFile; fileRef = 13687D631DF8778F00E7C260 /* Yoga.h */; }; 63EE08511E06EECB00EE5F9A /* UIView+YogaKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 13687D691DF8778F00E7C260 /* UIView+YogaKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; 63EE08531E06F3D100EE5F9A /* YKEnums.h in Headers */ = {isa = PBXBuildFile; fileRef = 63EE08521E06F3D100EE5F9A /* YKEnums.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 63EE08551E072EF800EE5F9A /* SwiftViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63EE08541E072EF800EE5F9A /* SwiftViewController.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -72,6 +73,7 @@ 63EE083F1E06ED3D00EE5F9A /* YogaKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YogaKit.h; sourceTree = ""; }; 63EE08401E06ED3D00EE5F9A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 63EE08521E06F3D100EE5F9A /* YKEnums.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = YKEnums.h; path = ../../YKEnums.h; sourceTree = ""; }; + 63EE08541E072EF800EE5F9A /* SwiftViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwiftViewController.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -121,6 +123,7 @@ 13687D4A1DF8748400E7C260 /* AppDelegate.m */, 13687D4C1DF8748400E7C260 /* ViewController.h */, 13687D4D1DF8748400E7C260 /* ViewController.m */, + 63EE08541E072EF800EE5F9A /* SwiftViewController.swift */, 13687D521DF8748400E7C260 /* Assets.xcassets */, 13687D571DF8748400E7C260 /* Info.plist */, 13687D461DF8748400E7C260 /* Supporting Files */, @@ -238,6 +241,7 @@ TargetAttributes = { 13687D421DF8748300E7C260 = { CreatedOnToolsVersion = 8.1; + LastSwiftMigration = 0820; ProvisioningStyle = Automatic; }; 63EE083C1E06ED3D00EE5F9A = { @@ -288,6 +292,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 63EE08551E072EF800EE5F9A /* SwiftViewController.swift in Sources */, 13687D4E1DF8748400E7C260 /* ViewController.m in Sources */, 13687D4B1DF8748400E7C260 /* AppDelegate.m in Sources */, 13687D481DF8748400E7C260 /* main.m in Sources */, @@ -409,10 +414,13 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; INFOPLIST_FILE = YogaKitSample/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.facebook.YogaKitSample; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -420,10 +428,12 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; INFOPLIST_FILE = YogaKitSample/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.facebook.YogaKitSample; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; }; name = Release; }; diff --git a/YogaKit/YogaKit/YogaKit.xcodeproj/project.xcworkspace/xcuserdata/david.xcuserdatad/UserInterfaceState.xcuserstate b/YogaKit/YogaKit/YogaKit.xcodeproj/project.xcworkspace/xcuserdata/david.xcuserdatad/UserInterfaceState.xcuserstate index a338638b9bc1097d2c7c479e8bb6f41b64c5f9d7..daec9dbcd36a9da7cc3f181201a4fa0f0275100b 100644 GIT binary patch delta 11438 zcmcI~cU+U#_kZs5+-E=_gbWgy2_%6?0wE!RM26yoY=(@g6a^JUv4DGo>!^D^RqLv& zuDWNfb$40!YTa7*p0!qMt-mJ(*XP^c@AuE=tFM=E&->hS?m73|bI-YtFSmp7r@)jD zyc^w}Nz7KkwZT}|^(}GCQ-=@02jWBVVfb)-1U?oYhfl(1;B)Z>_?P%{d^Nri{~F(c z@5aBwf5s2tC-7hKGx$~fCVmUQhu_B^<4^E^@Yj$70mL8;1ECm(KnaY3GMEKh!d9>~ zYy;cEb}$>}Kr6ICJ9I!NbU`;PfbC(S2Yv)Qz>i@$>;ZeiUhosx7Y>9&A%dgeSU3?* zg)`yja1mS#zl2NRQn(DRglpj@xEcNce}q55eeh?vA0B{5;4knjyaKPnYw$X}0UyAJ z@DY4W-~=QHf+Q${Cj1D0f=3955F(t2AfkvEB9`#P6FMS^&=YAyI*~zS63vMgL~A0O zuoE4LPDCm3F;PZzBdUlxVhAymm`Y41W)WWy^NA(IGGZmMme@#aCB7lH5#JL(5I++8 ziL=Bx;yiJIxJXg z$kt>VGKaL1PSQo@lLcfkSweOqOUW)|IoX}8Bzuv)$r`ej>`x9Lhmb=_L=GoEB}bDC z`58H#oIx%k7n5I-OUU))267|0iQG-@A@`Eskw?g*JzGls--+sJ%y;@)Ff&$HHDf=&7;1c=2Hu(Rn%%~4Yi5dOl_g|QwOMn)FJ9Hb%Z)f z9ixs@C#aLuFVwHpDe5wHg}UmXu2J`>XVjn6bLs{47xj|*nqdU`GH(rNwt~hCJ%hi_R!8(o1 zkg7`=N*4__n$1i&f0d`Id7ql)R z5ueQ2fKS1vvMUS6`{UD@DKSx!pn49C0EPhf1U?i0oE0_;pN-F9evDCh_$)a90p4+Z z9!viMpI_+6ODHd^E6ehl9(bIS%rW8%@kJdSdG@|_Wu2=kTCw0_mb93Y+TM}p9r>7+ z;7dPptbr+_GA_!lJuVRKM%$_y) zx_2h7M-GN5E$yL_pYRB4-i46Q6^C=&fyg@cAt{B;ROao$sS7Qg6? zu5?2XX{DATZ&>@Vem(o^Ym2SAfP}%`6d1W{|kSK z|BZkO0WAVf1U_Pxs&?l<91^T+z|#8qg^)Eew$U-r4|oUG-$3yA4iKEg z#xtCZfUBN&5>Df6?H4hK93Z= zS@N~e@U0zvNUDH0ltfpH<9TTL_ zQNiV2?JE!{uIIgxwhFHHt+*j8z;$pvvt1)27Q+p2BeP9Y(rydf!BH)RU&F2N8@LUA z3%4WC5rIw!lp^pk0&H^aycF()yWnoP2kwR6Aztt2e|?!P5w^d)f0{h@XQO*%*fBA$xSYA<%sh zyaazkpb~)|%%Oy$u$%DCf8clFJp`%{=*2WoOt3$Je{odH;P3D$`~yCNf5PYR1p<8# z_yhs=ZmC6}4uQT1^jijB!oT4w_z!$daG(K!{s;^}U?2j65EzQUFgB!_Zxe5}Cb&ev z2R0Ew1pkd&**k*}z6;?-#}g8w32QYWMPTqkg1!BQuwmLJn~)Lm4<#uG<@=K2*exX3 z^IZR401+BOOC-P<2#i2rI0A?b8>UZ2a$`o4F#D1ON&}I?h7FNS7zy?Ok3@jIz&>3} zq!MO=J;b9C7=yrA=5^9Xo-D5l_I!?e8zn>=qV0#P$|0;D5*$PU8zzJke@eLVXGESi z!A)$)ag!Qy92@h>r9^w8kSHRGi4x)?1g0P`6#;hD^AXs9z-DilXp6cq8?;TBC;Dlg z&P2I4F1)Fas6b#^V_Xp3*|;Doi5>_r2z>T7E{I-4pZ9ayyVO_T{*BZ75(D060Vjz; z-t;%!oBpQR-cNtTFb~0=<>fE|DxsFmfpIVqs$fh*%1dg5v30*T9sG0;ei zBgPXGh>64`Z?w!r-dy)N0<#cc@1uDLe8C3H+YCfZBbX0;ID?q^-c|<@vvKYsm`AXu zJOhE*%+%!Y;044Y)+fH?Ml42PF0(T^!n&MT@u8$u#M@Kt4Zn5X9bJ#Wg7<@F6S0}t z;td*B%pwF9vO)9i#)?;dOYCY)GsMm}Y39qt#BMmB*o(lDhBUL3Szyf0`N=DN9|FtX z#mfPLJ<>~wgTx`?FmZ%9N*qIAIRb3z`3ixR2&_V2^-|&lagt+g_{#!o5Lm|;OxHx0 zfoCCc1%b8ogO78#*brm%0;Nsf?CwM2vG+(lLSW-U;t2wq z*yTksmQchElM!Sj8AZxSIRcjuxQf6{1nwg65P{zj_!EJb2)srZ zhA;wQG{OQ9#z&Y4VG@LeAuI}EF$iNTf%l4EQspZ;wwCf!*rLN2lF;jYG~S19V=|k4 zMeBTn?M#`yT>xqHjdqsuzhI`CMa*sU4BFzO?PeyK6UANL7nJEk_Of%+7@IvHfNbTX zd|%3M*;wraF&$KX%>ML1I@^c+$jV9MI(&nDrF;XcD2}N%`!gLg1L-^;eLwTKSqE;B zZ*Z`bZ)}tXnI7pvZbu*ea4Em|troW4^5pfe>{{2pvZ8;>>fUuV)m2p$H3_v|+WU*{ z?3;YFG}v#_o4UVOb$Q>a3bynwuI^UmZA}WYy<$omhnZcf%6fOxmREGG>|Ift-l}z0 zL0hGvRg%g_?^;vVtD=8(4c$}Qhb^&d)0y+;dQl_Ty`e^V55Sdr9m~+UV|H)0$Ldv4 zURhRGQTtYN=f0Iy<%z8-I`{3St?bjinpIfYt8W$Cnbo}E$t&yCr>Y{s$JtN5s;abXx2k>P_@4jw6)~60quzMD(|^Ywttx6N`&E?ZRrjsw!fxDvR8y%b z`M>M(4^=cqQeW1+jXrM-r~l#cGUkEV^}phB_L-muTaJFP=Z)*?*R|FgepO`yeaiyg z`0rf#|8ll>16hgXeczKfu&h^=%6rcGmUXL0_dOK&eB6?4&25c9LcDE4_`&DX7RNM+(O{C7r(=N+)53} z&Ez&8!?)yimVqrT*wXyIm*D}^r@0FMp8VN|?+9jGW>ECpz6ps>mrwK%q*f$MF7;KovtZxy<%xf7L=oLmHjPg-0XN5zm zDV6A*m87GRI7*7e{SfBQ;uyEl+?8KF3GyjRG8u=K4AvVB8kt$gR{yP<#s(sc=VcD^ zF( zt2LDA-!c}jqXss>gQ&qQJQQK!2#fH-k<7l9arg*oj2F%rOO0dU2?&!ROzwrF8*P+k z#0h;i8d8&nel*x%G_p48l1y(GFpZkopy6|B7As;7!W0NodPS(1KU*jvwUAos#WR;t z%YAmmAxzEUZ#MYBAUAfg!7XO}JE?1_^&G)MY8}Gj7g8G#reVyjRk>eNyE%g8)K=;n zY8&+}wVm2Q?WA@gECFGO2-6`f31NDKu^XF=FynG+4@beS>3ix2>PPA)4!bZ@eS>dO z5SEHCGr}wz*S8J>%G1<&wmzrMP-m%g2unj)I>Is*Qx~X*det#anRb(n{?aJY0cI?ellTUXhuq9G|Q zsr#cEVZ{xvEOZ8)>3gxQSVU)VQaj~WmzNEcmDS1gdW+5&jP+=EZKYeX4G$-<9`p7) zY#T?n1)i_yc62u0o9$QpNs@NZPU1E33SpfP_A&cD-q4b$*goVK!a5_2eS~3~mR;-? zgSW5bbo++nkCir7@PXWqe1x+9D6O>(*Y5wPw5C7yP42=<%jQ=21{LpaBtK6nKgf}1 ztr%EQ-lC>UceaYEIYw8~Jqq&b*c!MVaA-~wPBbT;W8_#kne4NPn208tvTqb=>_@1U z>}RMP!bUg<7tx=XM9d++B32P=h;_sUViU22{p|D;@iTFNZ8DD#$JlQ27vdCggLRCV z97N6~x3X8oeGmDJd_le>Ur{6#%zodAX20*~sC3Ffxu{(Bn@)SGh$^8vP@Sl1_M1*E z)tBl|4WtHBL)mXTh?>ZL%UMHRq#m;$U<|a4E~P)Fd(rjuaC#*DDLsZBM^B(9(NpMY z^b&d*y@Fmzucp`1>*lF6)f;2&fpt&GRU=?%`^cD;dj1o)| zOc6{Id?uJ7m@il;SS(l~SSIkS5d0*#CZvQip<38fs1cflX~GO)3t>xPYhkglv#^`6 zQrJ`2OE^gA5hCFT;TYjK;RN9%;auTb;a1@u;bGwk;V;5d!t=t5!rz2fg!hDh2>%fU zibNv0NFh>*)S`HiR@6e|5IIFIQLd;|)LB$6>L#ib^%QwTV?3gXqRFDEB1W`8v_!N_ zv_iB-v`(}^v`Ms6^pohM=#1!`=z{2q=$hz;=$7a&F)rqdg<`Q-Dh?HgiSIs?c$x{%ONmC8e$4*AJQeHPe@HjT}Z!>0U?7zhJ=g_86Pq+WOB&V z5GG`L$jp#6Av;2jg#0dvmb8#KByLHbq`jm_QX;9643rF!43i+q2+1hPM9FN)Ldjyu z63H^j8p%4z2FWJL7RlF=A0!tfcO>^E4<%0|Pd$=nQd~+(X(?A4C=HT^OQWQ6sY0rf z#z~FRRH;RpF3ps-kUFGpX`Zybv`AVa?I!Imt(5kZ4vC&0fS<*SudD8jP zh0?{+CDQHEozmUXz0&WcKT7vW_e&2-4@-|qk4sNVUpA39u{Y`3WKfeYo1AEJC)DE~ z8WWly+A*|8XjN$6(6OOYLca`M8@fI8htT7pCqsV?Jso;E^ls?=&=+A?m?$hPOc9n8 zW(rFUvxH@awFqk&);i1CGO=XkEWkkP-0TF{DhC~dDsE-&PF*#yt1QRhm zVrImwh&d7SB6dgo8u27j8kruMAK5YTw zY`$!v>`U2F*>c%>*;d&$*>>4Z*>2e(kL`v@~Lu0zDWM1e5rhe ze3g8ye1m+m{A>AP`Ca+*=%DDV==|vF=poS~qDMuKjvgC5C7Owz5j`tAG15=P|T5-V=*Tceu@x9 z6GgZpN)fG4D4Hv>6*h%a;Z}523{;Fze5x3u7^|3|n5>wqSf|*l_+IgoV!z^q;+*25 z;Nl|$uL z<*PcX%2eg5PgDa`gH^*+NHs<^UNuQIRmG?ls1~WdR4r3^p2mV$JeG*1V@qPY#a71l zjO`t}Id*UCf!M>b$6`;$o{Ie~_G;{n*xRx9VjsjciEA6zFK$WPhPcgfU&n2W+Yz@b zZeQG?xTA3=;(m#{5_dE1cHG^#M{&Q$J&Sv;4p%GHdUcB0tZt@muFg`oR<~8V)E(8s z)JQ#2Jz70ZJ<+3{qGr@H)U(uc)$`Sh)JxRM)hpEp)koCF)xW4utIw$~sxParsc)+9 zsPC&Esee~LQ@>EZY^rXW+q75HDNR>4{jurgrhmsv;`Q8BZ?8L1hi8LjzDGhH)7^SNe;W~pYGW`$;p=4;JX%{I+Xnths|H3u}OHD@$u zHRmi9aLPOOX3nRF#OPZwPuU0>Y*-C$k4ZiMbr-5A|i z-89`Q-8Z^@x&ykyx?{SNx>LHdx(m8{x`(b3ereX+iWzDhq(KS)1VKU6{W7!7HLOhcBTwV|!SVJI*R zFibPdHY_$QHLNhKG;B3|W7uZcZur@--*CWi$Z*zh({RUd-|)!ryWyGPMKYP}mmH8B zlq^UVCrgt>Bri|in|vhsc=E|)&#C0I$>)==C*MiFpZqBKN%CtWG?GTz7--}h zg+{S4+8Aq88{>^SquyvVrWl(W?Z!^VGGn>1o3V$nm$8qr*4WQD+BnWQ(KyA(7-tw~ z8Rr`38y6ba7}pxt88;Yr8Fw4^7{4ejttrQ3Gj%k5Z0cg_YN|A?Gks(F(R9dk)O5o1tLcL2H`7(q z4b!cZz!Y_gKE;@lnqo<5o06YWm{O9`G3DcwE-778YE$~93``lEGBm}Lf>K7LtVsDG zk#WOYrS>2b)`lWa3>OKj_HJ8eJNezqO39kLyfOci4B?_t?L)AG9B_AGe>hpR%8^U$Nh_zi?m<=pY@m!`~rv zggBZw!W@wfnM3W+J2D;Z961h~!{Kmw9L0_fj#5XNqukNeQSBJ$_|!4kG1b91raNXj z7C06=mO7R@RytNYwm5b>4meIbE<3I|t~+izZabbh{%|~Z{N;G%cudCvLH<<1Sx zUCw>Z{mz5V!_K45GtTqQOU}#AYt9?aht3x++{Je_afP`eTv0B$tEo%t(z*05qbtSL z+?C@haCLU|boFvoyFPK%x`wzsuHmkcuFZ@7zDSe|8^qA8{XZpKxDr-^vBK(p+tB zR&GgdZSL6I{kg|-Pv>6AeVF?!_eJjCxv%rcJiokvJWo(wa9%6+KM4-VLwOVOCg)Ad zo1XW1-kiL7d0*wN&)byub>6nTJ$c{f{gk&q?_k~^`7!y<{G$BQ{BHSm`GfO^<)i$O z`Q!5^Ing474rTi=TkMds?zyhkk zzaX$cR3Iq`Er{?GL>0spBo?F=&MRC{xVms#;f})Hh2ItaSom|{!NN0z=L;_uUM{>= zc%$%E;hmzOqU54ZMPrJl7R@SJRJ5dMP0{9}ZACv99W45#=ycK9qVq-9i~cHlRm>^I zi^*cY;(+3yVnMOESXvxf99yg|jxSCq?pZvbcu?_>Vo&k8;#9dy~R2-%q-y@8_F;OQ!!HxQ16^ delta 9488 zcmZu#2UwHW*U!y+?|VZ6Aqx^9gb-}yQpc%psngVV)D`L{>MHd!^$T^A`knfNdP@BXxsZZ7sE4W00MlSPG{Ov+3A3OH zW;&I}Jzy``7Y>9&;V3v7PK58nNpLcp z0;j?ma1LAm7s54gEnEjbg6rW1xDjrF+ump~+|}nt|q^`Dh7Rik6|(XboD6HlRIdFWQIpqtDO*bP#=sj-YSQ z33L{HkA6VsXf93Dm=@5Hw1^hdF?1{)Pbbhxw3^n^Iyx;#r_))qiMG-<+Ce+%Lb{0d z&|bQf4$$Rv1>KT(Y@&2bRT*+J%WCh9!XE6-=`q$%5Fd-S-~R?MG*4sIA#H z`&eH4(dOK23*#59mr626zSFf|<=~#Z`AmT=<;Hgu-MWfWnM$#e*{Nx6>d(>FQhlj@1ONi4T513_kN`x0u)5nR;N}Q`hcg=Z zsA1Kd>PiB*%(N6YZ&dgLGM<#2L{0>U&k;~#sUSyRL%l};T|-q9fJ4*7F`W%@j7v+a zCvYq^)I#Y6t#6f& z)z-11B^*cFX01YB;X%u&QjmlvEfVpjdUlqzyl~Yz*GOEc@Om&M_)(nrS?(#3CNZa5KDlf zjygacq&_Dgo`5z4OniOs4u`iZrmLtaGbq)`{BEI{8+y6mo3LEoRn(l7n_0Pv>5v-9 zI~A74G5u4Uo6b<@Ir^249)zb*jRkuxXy>H-ze*W&%vsDUX2z)3(J0r>&W!gNL*Yo#^bbFPEPW3pn}}E2_J-cqwr~cUbaL;Di3x1p(NU zO*U*oKv4}WBcPbcw3KAPmhg?&$F+fNUl+889l`?UrZFS<_Up>tu+Qs)evqY#(9#+K z4hOLShl2@dQY}0UhjAJ>TQ~wZ9FCw4!;$TWRQ0Xu9y%!munTHRKnww`Qrvs#+Y6V` zvX_yJfz>RQ;aK<{3=#z>C!m6WW_6Ijad12V%?W5hKue}$W=Gw$&}`EQc%xeQ(t0MG z^>RJz*@q0A%bd^DQ1jsYIawXNi{J{5z8)@yOW;zt3@(Qs63~`_HwkD*Kzjl@5YVw6 z*1%d=2Uo&Xu%3WU1au~#Cjq?(c$a_)4a>6PL8nb{^XqwNfLlY@9$r1D25uvu%gco9 zV6hE%!d(P(C7{Q@*oJ%IXDoQ(KFFTew+N`Lg$Lk40=f~pPg0l9lXfVuZCyfS@=Et0iJ{B;ROPE6VQi%cL?Z90L$NOvIne&m*8di zBfJ8Cf>&WI0W6shB7oheAp{I3U<8X@2AF^K!#nWq>v7$O4_@Yz<#YJ>KdipY_@D53 z2x!j;7+M4WB48K`w9+yP!PguijCij&LIQT{P$U5(UjYh=Mj|AJBMBHoz-R(SvGC|B zYVi*XW$R*5Jc|q@M+y{2z*qvpfr^J z`ie49*6RW@az}iS~ zmPWqIB*4~4c7`?R9jHM4P=7Q44Mc-NIGNQ*XR`^IL%>`D<`b}hg$i3o!gU7?L&INB z;Yc*6)y48STgS%G^dFg6An)okYAvWvt zs=G1mEeU~XX!`3@%tZg5a2An>3GFnywneW3X#rY@7KMPclz=4!EM|ekmaS4|bB;KD zIja4KUr-JChhCP|p*lDYts-D~BfWeW+D8o|%8g@SuCeL5&>ZacuJ{j48xecn>(M5( z8GVelpa%2_0j#@P0_q4@NdW7rz8-BupK{6?f7cSQnt-*;$lRZ0pMzix`htKp)uT^x z1l%#)vFI=}$WbLb8d4l1VBLR;Z&^iG)ypKEM5oy#p;H8`uR-4tu;IUTRy*y%^XN{f z%t_D%bP-)bm(h>t3i=6MML(lo&^7ccx{hw3-_T8T3*9DQGXYx&VAs8kfb9hABw#lI zdkJ6}=>P%jwc!u}UlDMG0Cq{=5b!MlCqvHfqTkUybRRuH578s^7(GFMpr`0h^sFs< zj{ZU~(BCwNfYSt=CEz>(mkGE^z^??{B!DgP_X&7Jz*7RA6E25vA>r}}S3tPYge!UN zfCA+$cmM~WYGUh#Z8|JTK74xB&$Gn%X;H8B1dzj>+ zPCP^SV;?iCX$dbg{P7ucsi|H1-*uR_gyjd>K~CmuUX&m=Ecl|U$j-7@7PGBLDkuoc zzU(UUHr~6I%qHH#@G-gVHlvfg#9c5FHBY)-MO_zlgU%wt@G~;X% z#cL7P9cLpAM9^)*Unl;}B2^SC=nxj3dYQ%J1vEc=r0LFdH)c>-jHEl=gQE*^01LA- z)vZGnVp($~q~Duh3JL! zvXFhja{5Eoo;`6t6YxvO{#w|ceGpw*`rm^n{2qGM!D@Pa!jh@-G1JV1(N>;U$u2MCwT4&YME z&&^Yryk?0}SVy>saOsc~Gxin+%80W=R(fp4md539BM6uO%5t9kcp2xl3tdVrj$GzQ zv-F5a!i@?!5Hi=x(wLOyjY;5&2v^)_#+Kl%?OaQtWcn(YacqX2O zXA`c0aMK7ky$&;YE}loYM#3#6+#Dvl)qs{uKyVdaikIQ#_(Qyca5D(kO1Qa%n@_mK z|5j^UhgXLjuEeWwJ>g~&ZWiI1>hK!87Ox}RY{E4Yt|i3KdZx0Sin-ltT(ALu`oB!J z;~k+j*a+9ou7QPstFe%CI4#v}Ji~hT?eR|m!29v%|I7Xhd{xkZ_AwC&j;qopk4@bzF|R z@s*8#pcXVZ+Vtd>y?lJ)3-~Hq3fVMV!k2M9zJh;hOooea-E2Mx*F(78dc20S7GJ}^ za@KOzvbm{dO3o z1^%1IVXNS6beRXKer#pDNVrW2x14aBHC8+Q$xt!mwqRQxjm2;ayVw8GJ1?@4HMwQ~ zl#nQ%I4r1O1xV{f@?q+z>qdQ^dWph2jb?Y>Pw z?>Bbfrn5b`W#~gxgX+*Kwgter zPXEDnyJ#%MTC8VVTG3-rKxhywSX|ykL+=c;k5!d6Rfkc++?v@MiKB z^BQ=c@xJF>f3e+>UUel>p_e**t~{&xOn{IB>&_{aF)@W16>3h1Z@P}1U&?A3wj9#3dRb80wNeMm?l^#SSi>j*euv0_(X6|@MokbGA7a( zX^ZR{*&}jh@Dmo z>@OTB94nkIoFSYgoFkkooG)A`Tr6BG{7AS#xJmf2utB(0_^EJ*@R0DN@OCtaPK?fv zE{$#<{dV+#=t0p#qK8F~h^~$v7d;{R{piWjQ=?Z!AB#RG;)(>K7*VW9ElLyRi1I}( zL~jH|twn7`?L-|!-9>#weMS9614V;HK@ky+7flq+5zQ6N7cCU660H`k6@4UX5bYNo z5PdE>BswpKVzD?*tP`h-)5J!xO`In#76-&##8u+{;z8me;$h+$;w9ph;(GBK@jCH( z@mBGt;vM2$;yvPh;;+O%if@V^Nw{qOB~g-SiC7|)C?zV1TB4C?C3=ZZQYo1rSthBM ztd^{mY?JJe?2_!2?3WynoRM6X{4BX9xi0xl@!kJ4HPUs`z0#x7V?pWH(&N$#(#z5- z(x0W*q}Qd-Wk|-CMaqOSkt|WBk!fXmnNgN0Gs(=de3?(yQr1@1PS!!zRaPnME~}D_ zkX6e*kj;|Kk}Wt!5a zEL0XN1Ikv)cFOL`fy%+kp~~UPppqyjD(5KYDHkXgE0-#lD>o^(C_hndQ~sd5rhK4$ zq?xx|Z!mlLn36fHyN!OF^ zCEZVYnDkfD3pGa_q2{Y2)p2U2S`}0$t5eiEb(Y$$&Q&|r`RYP-Q+0E7OLZ%CJ9P(j zCv_L~AoVEqB=vOl4D~GaJoN(gBJ~pWTJ;w7KK1A7L+Y>8U#pL+PpD6+uc;p-bCY2* zoy<$-Cr2g=lSRo%$;rtn$@=89OG zEnh3uCTk5^lh&d21+`7IZM0pqBed^n7ic$VcWU=&_iGPo4{5*Bp3t7wp4I-Ky`#OS zeV~1)eWLwShjkIUNL{o}p-a%IbVi*;XV*D&`8tozuM6nPbQQV|x=y+-x=P(f-7ei8 z-9Fs`y-c61Ptoi22K@m282v>3Wc@V#4E=2VV*N6GaD~23U$0-IKa~nnvs1gK_Dvm- zIw*B$>WI{lspC>7rA|%#Aa!Qy($t#Ny3|#v>rywQZcg2jdM5R9>aEm!sSi>grT&@v zJoRq_Fz^j>gTs(-C^EPWK0~RYsiDHq!qCdl*3jP2$RcMW&^uHBGBZt4>>zwk_>M+O2e)u1POUZ8sMWq&K90lD;kdVEX6jU!;GTemebZ`nmLr=|86b zWQ;T>8k39}#!O?DG22*ZEHV}w-Nt6d=EfGrH;loq##_q;}#zDrx#-T=H9A_MF zoM@b5WQ=o-^Nn@JmBv-Z)yB=n2IDs4cH?2=DdQRA55^0|%f{=*N5<#IzcaWQC?hf> zIzy5XlOfMgW#}>j8Qn7aWDLm|o-s0GbjIY2DH&5Urf1B{*qX6B<3h&$%*f2ROnqir zW=1g6lxfMdXF4+dnSso*%x0M_Gh1iAnb|&bT;_(%3t9XuXIAg5;aMZH-pv}7H7RRq z*7U5IS#z@HW-ZIA&03YUCTm^Rr&+tR_GKN&`ZDWC*4J6bvo2=+ZjzZ2P3b0+$zrmb z@=S#$m&s%Dn#xUYn}(RinI@Vho2Hp&m}Z-Tb4?3O^`^C^^`=dxEvBue?WSF(J*MwX z53-Z93$owL9-O@-drkJ*>~-1evv*|g%-)r~C;L$L;p}7C-(;W9zLb3>`{(Rmvu~KC zX02Iowwi5byE)hFGyBaY=771SxwZLCb9-|ib3gMy^APiJ^I`Kz^JVij^9}PY^Ih}f zp!uo!x%qDku<$I=7K^3a(%RD5@|LB$rOGncGQ={}GTbuWGQl#@GRZR6Qe#t*Y0>tpL{8)+M58*LkFd*3$AHp4dC#@JTbw%E4X zw%c~u_S*K_PS{S_ezaY&{bc*ucF%U-_Q3YY_QDSA&`#Us_IP`uT^+Qi*!$Rr*sJZ6 z>{IO@*k{=n*caQE*;m+W?O)oj+HcwK+V9&R=71bwjyOk_BhQJ?Nz75_Waeb&Saa+- zxjD|9{G7s^?m5An`kZ4qw{pd~@wth)>Re5(F*h@JYA%yIKX*~?lH8TK^$yA*a!4Jq zjyQ+Xp>lW~WsYD^$56)-$8txFW2IxYW1VAzW3!{dvCXl=vD>lFalr9~<15Ee$2X1> zjz1jF950-}37y!2~^@qnwkRQ=HSB zGn{*!N1b0gk2_E14auv{8<#gBZ&Kd5ykGNfDu1#c9zDVSNXv|xF`ih{a=vjsmFTr0Ru6<#R3TqG$~b#QfZRk?b(-f{JF4Rj55jdo3R&2TMo zt#sA9*0|QW*1NX4w!3z@_PF-D4!DlGzH?o2-3+=Ox*og!aQ*3e?nZ8&Ti}jzi`)`- zf?MY{xeMHWcd5IHyUbnTZtHIE?&R*`u5@>I_jM0<2i?=%^V|#Ei`+}x%iQ(uweI!q zjqZ=#4es6UFWe{H=iL|Gm)%#~SKYVVcis2h58Y4PPd!{uq$kFs@fbas9+SuH30ge` zo??&3RS>@T}+3oql^QGso z=cwmv&l%4To(rB!o-3ZKo?D*BUdkKk6?#QpiC5-L^s2onUY*zAP4`;81zx}R4R1$p zXKz<;rMJ7cuXliVuy?3;M9@3ZJI*`ZJKtO9UGLrK-R#}s{lvS+yWe}z`-S%_?-B1Q z??vx*?<4OEAIHb_K_Bgl_DOs(KDjU6r}XK3S-yOq&sX9L_?r64eQkX0d>wtAeQ)`? z`QGup>l^2r>09Vq>|5$v?pxto>s#;J4pYO2mj4ycEcg1(r_lxgW-|xN$ zzQ?{le9wG;`Dwq*ul8s9v;9_oj^F9e_c!ss>F?nm=6}~e+W(%P_$T-$`KS6n@Gtk* z`0MIl`8WDM_BZ&q`uF*d_^4?%%rDIEjrPE89()p!}N|%<_mDZQ8 zEnQ!_vGi;J1Tn=0d+z8wX+zmVqJPkY#{M{r7n(&*5o5Ys|%f^+>EL&Rk zVOee2sb@&ydt7PP!Uxjs;H>w zP|>NPOGRbH@`{ftHrOgQRcxuaUh$~nNyXEO=gox8q|M^O%^WT_{GX=||9| diff --git a/YogaKit/YogaKit/YogaKitSample/SwiftViewController.swift b/YogaKit/YogaKit/YogaKitSample/SwiftViewController.swift new file mode 100644 index 00000000..40c032ef --- /dev/null +++ b/YogaKit/YogaKit/YogaKitSample/SwiftViewController.swift @@ -0,0 +1,41 @@ +// +// SwiftViewController.swift +// YogaKit +// +// Created by David Hart on 18.12.16. +// Copyright © 2016 facebook. All rights reserved. +// + +import UIKit +import YogaKit + +class SwiftViewController : UIViewController { + override func viewDidLoad() { + let root = view! + root.backgroundColor = .red + root.usesYoga = true + root.layoutWidth = view.bounds.size.width + root.layoutHeight = view.bounds.size.height + root.layoutAlignItems = .center + root.layoutJustifyContent = .center + + let child1 = UIView() + child1.backgroundColor = .blue + child1.usesYoga = true + child1.layoutWidth = 100 + child1.layoutHeight = 100 + + let child2 = UIView() + child2.backgroundColor = .green + child2.frame = CGRect(origin: .zero, size: CGSize(width: 200, height: 100)) + + let child3 = UIView() + child3.backgroundColor = .yellow + child3.frame = CGRect(origin: .zero, size: CGSize(width: 100, height: 100)) + + child2.addSubview(child3) + root.addSubview(child1) + root.addSubview(child2) + root.applyLayout() + } +} diff --git a/YogaKit/YogaKit/YogaKitSample/ViewController.h b/YogaKit/YogaKit/YogaKitSample/ViewController.h index f5642871..e9c49504 100644 --- a/YogaKit/YogaKit/YogaKitSample/ViewController.h +++ b/YogaKit/YogaKit/YogaKitSample/ViewController.h @@ -10,6 +10,5 @@ @interface ViewController : UIViewController - @end