From bc0443db026e145458e2d3121f2c6acf692e6818 Mon Sep 17 00:00:00 2001 From: Michael Schneider Date: Thu, 17 Nov 2016 15:50:16 -0800 Subject: [PATCH] =?UTF-8?q?Don=E2=80=99t=20floor=20space=20between=20items?= =?UTF-8?q?=20for=20ASStackLayoutJustifyContentSpaceBetween=20and=20ASStac?= =?UTF-8?q?kLayoutJustifyContentSpaceAround?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Private/ASStackPositionedLayout.mm | 5 +++-- .../ASStackLayoutSpecSnapshotTests.mm | 4 ++-- ...tifiedSpaceAroundWithRemainingSpace@2x.png | Bin 3436 -> 1829 bytes ...ifiedSpaceBetweenWithRemainingSpace@2x.png | Bin 2698 -> 2663 bytes 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/AsyncDisplayKit/Private/ASStackPositionedLayout.mm b/AsyncDisplayKit/Private/ASStackPositionedLayout.mm index c38cf797bf..1fdef8eb0b 100644 --- a/AsyncDisplayKit/Private/ASStackPositionedLayout.mm +++ b/AsyncDisplayKit/Private/ASStackPositionedLayout.mm @@ -118,12 +118,13 @@ ASStackPositionedLayout ASStackPositionedLayout::compute(const ASStackUnposition return stackedLayout(style, violation, unpositionedLayout, constrainedSize); } case ASStackLayoutJustifyContentSpaceBetween: { + // Spacing between the items, no spaces at the edges, evenly distributed const auto numOfSpacings = numOfItems - 1; - return stackedLayout(style, 0, std::floor(violation / numOfSpacings), std::fmod(violation, numOfSpacings), unpositionedLayout, constrainedSize); + return stackedLayout(style, 0, violation / numOfSpacings, 0, unpositionedLayout, constrainedSize); } case ASStackLayoutJustifyContentSpaceAround: { // Spacing between items are twice the spacing on the edges - CGFloat spacingUnit = std::floor(violation / (numOfItems * 2)); + CGFloat spacingUnit = violation / (numOfItems * 2); return stackedLayout(style, spacingUnit, spacingUnit * 2, 0, unpositionedLayout, constrainedSize); } } diff --git a/AsyncDisplayKitTests/ASStackLayoutSpecSnapshotTests.mm b/AsyncDisplayKitTests/ASStackLayoutSpecSnapshotTests.mm index a23edd0ff9..e82fbe7f12 100644 --- a/AsyncDisplayKitTests/ASStackLayoutSpecSnapshotTests.mm +++ b/AsyncDisplayKitTests/ASStackLayoutSpecSnapshotTests.mm @@ -340,14 +340,14 @@ static void setCGSizeToNode(CGSize size, ASDisplayNode *node) - (void)testJustifiedSpaceBetweenWithRemainingSpace { - // width 301px; height 0-300px; 1px remaining + // width 301px; height 0-300px; static ASSizeRange kSize = {{301, 0}, {301, 300}}; [self testStackLayoutSpecWithJustify:ASStackLayoutJustifyContentSpaceBetween flexFactor:0 sizeRange:kSize identifier:nil]; } - (void)testJustifiedSpaceAroundWithRemainingSpace { - // width 305px; height 0-300px; 5px remaining + // width 305px; height 0-300px; static ASSizeRange kSize = {{305, 0}, {305, 300}}; [self testStackLayoutSpecWithJustify:ASStackLayoutJustifyContentSpaceAround flexFactor:0 sizeRange:kSize identifier:nil]; } diff --git a/AsyncDisplayKitTests/ReferenceImages_64/ASStackLayoutSpecSnapshotTests/testJustifiedSpaceAroundWithRemainingSpace@2x.png b/AsyncDisplayKitTests/ReferenceImages_64/ASStackLayoutSpecSnapshotTests/testJustifiedSpaceAroundWithRemainingSpace@2x.png index 088b49a293a71e5fd13bab6d420226df07c89b77..6de6f28efcf342ea9102325b99f9fa9eae219720 100644 GIT binary patch literal 1829 zcmeAS@N?(olHy`uVBq!ia0y~yU`hhAQ#jawr0Rs2OF)Vx-O<;Pfnj4m_n$;oAYUQb zBgmJ5p-PQ`p`nF=;TKS-;RORjsR0ASs{{rHs~HRo;stYd1=;{5I14-?iy0WiR6&^0 zGf3qF0|R4ZW=KRygs+cPa(=E}VoH8es$NBI0Z=sqgH44MkeQoWlBiITo0C^;Rbi_H zR$&EXgM{^!6u?SKvTc2`vGn(R?ePfThypR(RG{oV8IHD6{GFJ1og|7IPt_5bS?zYG6Zc}Fb1 z;`#DVt@#gs=Fd3%e_Hz7@Afy3TfN-0_xy7uMkW>x0R@MK1F8x~-ZU^kxB{FU8#(Sp zLZuo6Hp5gos3;s!sz~Pq=>V#AI>QFm3}jAh5a@m|R~0PG!oguE4N<|u;lkvk(^NhU wYO=zSoKZ_ggKIQ(L2|)pJ^_~>v@2E)Fh-Pe9Wl-02Gv~*p00i_>zopr0EMEsnE(I) literal 3436 zcmeAS@N?(olHy`uVBq!ia0y~yU`hhAQ#jawr0Rs2OF)XTILO_JVcj{Imp~3@fk$L9 z1A~|<2s3&HseAwm%4E9uhX83NAO-;=Al87=KsMWwE*Ad@K)S%w#WAFU@y)D@U5^8J zoPYnfznd!g>q1c1CAGeHCugQ=GW+G8+@yQr&buk|Z@;bkUeC`i66;uCA!WPx<9_jf zC58pNf3NRs)GL*V=S^3w$lPOc{QT)nk}~|qlOsR!iQG$ZTGN{B9rUtDpc*K*@|C{C z^9l<&@hP=Dk)JOgb+}{UvB2#Ncj=kdCLRvfHY0ntXZJsOT@+XlA(*jYF2wTZp5ues-$hHJ~a8+Q~=aOl19g>9dg-HC>Pgc#Sd)en}u z=xSPgx-Ej&HC&Ug_lDN&>aAA6tWxHO4rF~=c-{I^$>bwE8MV74I;7b-uXJ2A{}=f~ zf!V3Ca2n5<-~Xm+xQ2_!#F`z+(%9uym~mu}$b0>x>-Q|-GRbRcjKBTz^Y6Zs9+!QE zj2C=;nWT^>qY|L}to7#iLpDEJfIc|3Shr42`TN>EK_#vSFQz)LXEv!no5&+3!wW%W_raLfGLs;^7I zE(lF^SzC>!cX8gY&4rF^EliJdENA@xc@^CU0_Vk(^zDMcArP1QwfdXn^oh%6tE4%+ zhR49^P3Kc9p9&f&h)Aq|`|*2n%6#-#C@GfO{L=c!8Fx6C!zbR=vOu$cW2o8ptWqan z7$%$kyzqJ{N(z#weLTNaKXgH%GS3`U=Fj`;RjtsxUa5I6zAL`65tIVfzy0#F_IS%8 zZLU5&=_FH;*rgUGNpUl3_0Ke)2m9bdM)&;VCu+6Vqo?9)yjeA6C&6CGF}~^d(FHXh ztUO!2)drk|9%OyWK8~J_x8}bIeccRl!78Ig*L+d*8opX)FAWKOi)g-Q^>wBgK2V&e ze&dQ(es@-4w za}i2F-nc0JebxQ>S{HT*vaQoP9CimS1R`E9i`%OQ%ExQ;)T922#0D0W+!R>7@P*dV zg@TK7e~3Z6zra=O+Q;u*C1}~;vysf_ zw`yN^o}aD@jz^8_=Zoe(OGh(d_Pqn)C)vT7@I;>I98~+GQ;XM!r9)D%uicj_v=n6c z>zF;ae2RmH!MRC|mG}1xp{Ai3(;xj^`eW*JND9cduC2RoD4Ds-Gl^}BT`bR$-e#7p zBYO;f$IW1$5As39mZRsBpX{3&j+%;d?=Co&K3xamh1)*cf^B-y@XhZtFg<3pT9kSy9@LruT|(y%{+4=jgJ3w%;#>s(Xg`qn}Q1j=Fce$ZtD!*4u#c(c`VQ|LS_)1f#^lV|ic|^#A|CcV|t2bx$s+?s+>}^NiL! oqczWH%`;l_jMh8}G^}}kCrF#_{N+>ttbrIjUHx3vIVCg!01&tt;s5{u diff --git a/AsyncDisplayKitTests/ReferenceImages_64/ASStackLayoutSpecSnapshotTests/testJustifiedSpaceBetweenWithRemainingSpace@2x.png b/AsyncDisplayKitTests/ReferenceImages_64/ASStackLayoutSpecSnapshotTests/testJustifiedSpaceBetweenWithRemainingSpace@2x.png index 4f859861308d9e5a2a4eecae946a7c42f1251250..8ee77c8de50b164bc3c8393bacdf62fd13ebf73c 100644 GIT binary patch literal 2663 zcmeHJ`%hYD7(O7np*77kcByrju7WeJnt6%EOQl9v(M&f*tT44xSF9&pI}Omu=A~PI z*t$+LtFBIgWc3C^7m+P^oohR*uGlCrs}=Ucq!9$VF*G8=zK?j4^EWJ#e0+!ZeCK(e z=e-@icqjL4pns@8f*^s6tc-jFA+o`B<@0{vyL3eKGS~>U`DfFSL3P*$_(8ssRa}c8 zM<{R+82RDPfHCZ1MjjLFM6lo|7OdCzcW~`{JY^SkAqdIB$T-8iO4wZHd~=L;D05ox z>0Q;+&Bdg{Q8i)qo*+Vr&-x*^%k6SG({4=VcFOq)I{Nqu?Nl35wH}1XH8)GEOA>1PNc4aaYy3j}yn+1Jx9^UXb=saAp_^^j z9kZVXAtxV=F2wIrn!)+^h!S6RGfT%6Fc5GcTCpie$$fR^tDR$a*qM)r@|hg-k}w=$ zOL)zUttb%%VXGjtNG@NnwIEeZx|fX0m#>QGUmsQO_UzQdTQP$X>O2VMirfk)1+X>b z#v@e|!=oZvDgi()anE^%C@mGgxdQX$uK@^j-aMcP2CR~V*La?4qNFVcKCX2*p3K5W zyHlp>8d96W;;OfE?0XPv@)uD`BE+igD|%`J^t`0>#qTeOIw7e6h0L}c^x(}3x8DHk z1%Nd{+4}dk7mKDEtp|_J0VNWLHB{)n2leE3aZ;zmI2HP`O2erb=)&I1nh|3zP8WY* zpq=!pxWJkc<5h6yH#uC0%G2F5Z7q@LQ5}#u^4D9~9Ty&Hw)yXc3X;!MzkmdkATBOI5Cgn7#? zJ}e0fS-Vz9Ze&G6Seb5>whmF|>;pfWL0rG*PsJM!19iLr>zxnb`Lzwr<2LMkRMC@S zEj%w(3=E;cxIC;-1nf8nX{{_TSKAYPG1%l@8for)lmwaS2w| z|6RB&hDG3x)J$h!?8_b6ML2Cgm<>y7SFX}bY_bh*<-NBR}zFKH5HfK%^bQi)r)^SrLZq}zxkJj2o65%aAk#6 z)0GE$e`Rm+lQf{m9zzUy3j4BCoD?F!T7W<9uj$GK;X&(+n$=cZc!Z^XQZ*<_NkZ~R zQcE^6!X~?X5X9pNy!06j3_dd)e3pZ;cQE!2#vbhdgR$p*tNky>-ih+we}+H)a~}Q? NWMt-M45pvI_8(!^#~c6v literal 2698 zcmeAS@N?(olHy`uVBq!ia0y~yV2T2=Q#jawWZaf{azKi)ILO_JVcj{Imp~3@fk$L9 z1A~|<2s3&HseAwm%4E9uhX83NAO-;=Al87=KsKxKc_*nY3=Ay)JzX3_Dj46~J((vR z$m0_D|G&RB=O%#!4yh?WIQil7gL|6$oD$rbqPjEQM)=8z`YHGrWz5eFn~~9GzTrcfkV2G8 zcG}afDsIL_qV5VlCb#O9a$ahESNPE6P#wMW>HkMNYI+WYvph06?AM*)n)`KMmcF_2 zhZzpDGPWH5{9{Uucw;Sxz*-9?7oho<@64Ozy&yK{(x>xlMJBFwQ1CO(+0r3)F)DG( ziHDMnCKogMpWlr9$gTw%jphKpUw4qG~|eQPUw&cpOJY4WuHJ*xzthAc9hCBTAbZ*Q3)tH@_Msc*;gBgEql0xKB~ZNSt6)(O&6j?H~obi%RN1fG^LWiGlXcmCVt5_P8aFyHUZiwQrY2KN2=b!r!v!+n40 zc-xPCs$k#ORL^_o{y-8GI}I6vYtwaKZx-d)((N1dPy5OgnIg_3nQgsdK+o)Cc24;% z;33@mt>T+ysK4U_LztH1XJ74pEs!BTd&{5eD|Ke72*JWw$h~#OHx;lgZz{LVYdw(9 z?JNJomB9{M9~S@Vq>{jLNwX+m6sPiXUVP)P;A?X0@y-7&wt|h;Fk7md ze`WbX0&G^O+G-J4fQ6l^5I7zP39!ZIZWasv0Qv(QEvE~j<~r=YvE=Fgs=X)QM*%fB z{sktMU1b^-zdu4WJodjMJqs3Eru|F$?%Y1Aru)Bd)#Rt4pd{(m4Gfai#~Q!Sa|OG} z^7Wm)%O^uqO4xIQtW&!{sWE?*?aq1ru+(T(FHrG#C&Yqc|NFOZ!P4*6-i7;Wz!vP| zn(}cb+yZ0whVocPumw98vF+L14zu7qL)O_XU<=kdSI&2aTd@4+-ltZO2rr%b;4Cjo zN08XDiupqj2G57t?aA9!Vty{1EXFRQOVxyGzN zX@Q!c#UzJ0X*V)v9#H!*QTP2#PN1>Va@4N0NL+)Z!L9EOOuShS%8M^sz&RGYPapoDid zJEpE2X5_WKj g-;5T7BcmWZIcwRcnpLN3fCVChr>mdKI;Vst0DB75@&Et;