From 7b3a27aea97785f185e900b46a3285fbef5f7553 Mon Sep 17 00:00:00 2001 From: Ramon Gilabert Date: Wed, 25 Nov 2015 16:39:51 +0100 Subject: [PATCH] Adds some publicity --- .../UserInterfaceState.xcuserstate | Bin 29727 -> 30093 bytes Source/WhisperFactory.swift | 14 ++++++++++++-- Source/WhisperView.swift | 8 ++++---- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate index d24ff20e27e721ff825b66ae9dace7352e5463ef..706039e6187704f2471ca2753b4ea82b32a56ed6 100644 GIT binary patch delta 16099 zcmZ`<2S8KT*MIjWZ-f!T3LC;+2?WAak%R=o9tj&{2`Y-BfP3U!XVq%eSFKg6GMshq zx~+R_-MiLmZEbCB>tCz3{ceaT>DQJD$r-W@qqZ2_>Oo&JSCnHzY{M2 z5AXpAC_n>iAOv>6*#O*u2M7isAQVV}41|Fw5C>908b}8jAQNPPY>)%0K@I2&YC#?7 z2l|5npdK`UiC_|#45omoU>f)UOb0W-Oz;0tgFdhAz+* zy1@t-2^BC3M#C5w3*%rs>;aWf1+_30>YyIx!va_W2f+q77!HAra3~xGn_x3EKo%l6 z5l(`W;S@L(&Vh5`C-5`46t=;Y2Dlb}4mZOsa0lEC_rSgIOL!EXgs0$Dcnw~MH{eb9 z2!012!|&k_@F(~i{2ji6fAeS_!xQjqd3HQ|o)gc5=gITsh4Q34884a_!;9r5^3r%Y zyaHYcuMe-9SHtVa8^mkmHSK{{2Tn6{JZ>b`49Pz_)qyi^MBz#K21M*w) zA^C{>j(kl1PCh69N4}tV6rUm~in62ZDF@1t5>rl;Gv!D5Qvp;UrJ$myXex$EqSTaz zN~ZEC9i^x8sVb_PG7P4MP>s}3Y8*A5nm`#SmO|7-YBu!|HHTV4eMT*%mQkNm>!|hA z25L98huTZ+qxMq=sDsoQ>MV7RI#1oAZc}%tyVMWV6Y2%^lKO*sMN>3QGqixVpe<=D z+L{if!)ZAkMMu-|bPu{Wok*)`4V_A-8R#rJo7T~Kx`-~O%jrIJHC;pZqx;i?=mxrp zZl*`lsfu2mypl8z@{V_eCUQ92eJLnbkN_ri=iQZ1{pm);y=tJ}|`Z#@pK1Y8= zU!$+nH|Trx1Nt%jJ^cgy3;jF&2mOkE%>agEEEr41im_wFOoZP3}G6Xq0BI*iD_n9m{H6)hGh^lk(tVT$joBq zGV_>^nfc78%ra&<)5;AdovIHqhnO#!Gt61$9CMzz#@uJVVIDBwG7p(Y%y-N)=2zx7 z=6B{V=5GNZ00K*amB3nHD{vI}3jzdzf*?V#Kqin2A_S3w7=cQVEJzWg3$g_{0=*z# zP%J1B^xiwHl7XU+Ni(8PGiT)|H`bl? zU_;pD>{=|op54F(m!)Zv^Q&tzt83~SxM7Sv7a?%r<}j_ceJ~@rw!WpYN!3(WT`6+l zs^T2n1tQ`SAs{RWOQMpfCIVWCD%P`=sA0Wu>vBgIInj@(ZzK8>16Tw+3XjQu8lZeR`+4`*EE!8y*b*iSO>e21QBqD~0Gqo|5 zm{uvW?-bw`*xBfasofiyPRu0&RuMCZnZ$?0EMhkC5iy4iWu>f)4P(PuIUBKxm`8BL z$HaVM0r3g3kd0&$StXmtmb10&Og6Yud$_=9*wye8hTI#$o-vjrW*UxYs(tN>sOu{kAd88&E^ zs}on~8pQqV6l4b&U_scm0s&jp3M|=T9DTodxkLdQAR+>mFK2__;sbl&_)bpDma_g` z3>V;PlH|_0dd34!;EU}5UO)o8fe+h@c>8ZC*vB zf>KZh$_YQ?53VvT>~MAj>(==byfxBY0SsW^`>_RsiANhn_FxET1Vh0v&;*)63m6VY zfRSJn7!AgNv0xk+4<=wWmL18CVn?%M*s<(5c04K;q@CjII^yxzIDOdy+6UV`4?1$_ub~gJFPLw$-!7{MC zbI9942RoNt*g5Qr*u~hTy}Vqwsa||9oS$T+x6_c zR<7~y1|WIy1T(XBA^ZI0ejg6>?g(# zd+>(^Y;f+sNgn~n-nDd`{q%hlodTy#QS>eh4e#PGGCul!9G(Xk-ywX(E_sh|1zdY) z?RECE_sMh%+%YotvY)hqyX?~UjQik$k?{??thLi+43U8;7(sHF5*vEV-{8 z>Ga3o2Q1b(&wwXvD;wNd9l%qfz8(AwegV(eHg*NO`rTXueg`kQPY~cG_=9a{JFr`~ z`1tC;Ul4R>LkM~7N_G|NZ$9JsDyMwiIi0-qG-RNqnVuDfUDF90>g(zXZJ`4m2xtfG z+0WT^ZJl{wjQ?QH;Oocr_4VZ1eJlDwcNl<6F7$w&&n%& zowGH!L9oEDw4r)*~Z$QD%cm+!aCRwd;P zX76L`UfFye0$bo{!ma}jha=!fIEp>Zo?*|j=Q`jRI2LAIR;7s@-oCRkSsa&F^PH>C8%-&@$ zvF_X=%h)71kBDrC9Q+v0XRol=*&Db|a3TDZu*7yQhD%D*YU_ry)c32eYbr<^Qd>6) z8+?_$CIX#P9$W^ObD36Nyf)a%rCa$Fzg69feYS-C1pDmTTQrF4CMMl9lFYIduESQY zha2EVxT&nRvG4G~xV-{hW=Tu^V7!2+9z2x2&EDZISoP<_t#BK+JX=h*!R#;vx&!^TAuo}S?`;~*brzh#B*>V&aO#LA6}%;?B>Wdfdt7x2so&%m?r z96ZlHV!vY_v)@N_z>DxJpn{j#AJ|{;%=0T7T%1|guf>@5CA#|l13EvIW_CtyR%2}) zC$x8t=nAM?@M|OJZFmRXh41##Zk;!4xp*ie^J-_TOmWNfahrRVTPSIvPh+27vQ9QYcqt>7E@ zC;L15;$6Mr5j}X|PC7o)&(_OC|bnmn^ajSP%gl z1gLIl%1h^En9>vhD+Fj$l6J--FBc~%FOR3==@DQM5FlXjk32P{WmoF{|NP@s81oO| zr65kg%KywjW3I7;nen{-*nBO~2W}$zARsh$(1yj!W1J(r2Am_j1l(g**qKPYp}b+0 zqCl=u=*!84B+Y9g;@*Gfo6?on!W+&t2m|@N5jb5NgaO<>AR@5p1_qc*Y6LTi3og%peKUkj3Y1Se)f0Y+Twp5*acsDpXaFV0)y?l5$_s_ z2>5Z&LOh-O#l%EMR?E99J?K=rV6ODoq!h$e2YR?y$JIp0W8`L9KbZtVjHqsPb+Pz= zGybn8zSIc7Ee;ZNx9Ek57uE@06Vop$N?vEC{Kh08#{zDgWw2#8Wj-+RB8|!})p3z^ z{qRDrTYvbJQGlxq?(PJ>rAaHsi0BqqTN4wZ=vNzOrYGvuyJ)WGXwvJ^X==5iZ&XxV zyqT7(NuZZWAfj(=M2*5sz{@1i+bF;-3F+<#zMqMw#5_;u>YCcxei3H6!A3s!G{mec zVJ0Pw5zr-05f>Fz9b=}Y=+vqTHPebSX{BN z@$p8WjsKYcJp$tp7~jT!!v7J02?$`PbMxiVyx;i0b7$o~Bm&w=h7^z%2uwv_8Ui1* z!v~}_DP(^}U^)W$$cK9x;mbuudULjs-f5k40qHJm|;8)!IJ~&+_?v?6gj@% z>qp2V@#-m79`|nbM7om-B4DFPOnSh2t|L-nO@@19yI~y5KA+Q|_aJCA+ zzGMoiB~!^X1a=~D0D;2@oI>Cn0$(9;1A#jT+(+Oc0@!U&5WwdC4}m`r_!B{ZAcLS4 zf+7U%5EPrcA=~7J*_EPF4n(DKHxzc=iY}=)vFC8V#P#IXM`^qBicP$E+{J_#E+N`O z{5~MbJ|^DBm7-kEHbH^e!T@z+Lt|5BeRE4#^T_&sE#2amtTBl%s1)UQiE}^4lAK43 zP4^c2o5U7!i7^@7TWc`U7gdThSiJ{#Gsdzzdzgv6q*9dJi5?bf-yL;?iM^B);(pAC z6?Ru0YvL`h6lHcZ%&NOOYZ7VWgmL}5t4=Y|J1Rwa*t34z#<;NVYBNmimDsZrow|AM zBNKgfr7fu9Ku?#gZSkp~yW+O`z|^5**pHL%yl5PEG||Iwf;?;7 zB>Z!`NS-6lW2K7-97N!dQRz!I*jKd&?-!?RZ20&6;@jN-d5yenwB-{u;}vlEiWs%JaWkqr4~yZp{aQn+V)8D&EGeO-k~Y2T`*BR0^ZQu~GyA zcM-T}RQeh#T}}#+$5OriQz?P!jg^!L;8p1ZqtdrnDL@@0PoXmYQz?_m!b&*^JVM|* zqtaunG)C=fD4_7N;Xj;F*5!;J-a7-w!7D%g<$Y0aN1Upm`u}IE1E_l3>L3L0-1C#M z)u)|-^t$gExAD4S;}I_BtZ|eNqwo@2>e3;{gczjaU}sZpi@`5l4h zMhH^?kL9jwoaB?J4~%X9TeMNrsTn547YMxUQuIo8mCvQ{I^o}AhWdnBhz(wZz$*k^ z8Ct{!?iswF)b(LEtY0{>Dm>z)Cxk1LPa2ZN`3WqBc`osI3U%8(toQ zd<4l3YCE-~(>zEaNOzfsPi44iDNgc3)Up3mJWid!t(`(pfS`r3HA~#uxfCDy1?tLw zDqW?nVWk@gS|cblD%oHqiPq0>kNVcA^sl+_@a^zJ+kXuIkO^hpUBmw)_3S@e{gwI+ zxB47GdjuVftvYrN|K3mAPds~A(mDKxwPN{enlM7Vq5h=)qW(tE2|;HBT@ZBbpaBgD ze;T{Y4MBG!gaAKI7pqy6asI*<;cgAv5YN(7S;Oh+&W!F&Wu5UfD3FM(!aZiX-fh9 zu!yQ#@uyAu2pGW4)yHt7)2+MnOj`&T#68Q1;m)UbpFwGD=i~rGxToow?mC$!x)jr6 zI2)a{nVoqiW|$Gss~#XH~nf36Ov_^;l^#QnrN>o@#Q1gL13;*JTeMTvOM?x+B;d!2|>o z-;SLNkEIcZvc1T5dLliEGh`xeF(I|!C`0ex)*x{qL)InYD;kqM{|g5@S4W3YQFpU^+O2YQNN zWf#yhBhar1R+$6+kA7hSszDIf4paBqb?(YHv~eT!HUx2%s(lN@Kn%p-x?X1n#Lx_5 z0_u-oKNFCOQ|fJ%){MbrpKjX(|v4m1aHW?W1_4G0c00?pOym7a{`J%~4g zL%Klxj3E99HkyM3Ga)9BVF=>q)+cTFE562f_(3stYK^2&6@Dv^h`)lW77Pi{Kax^giV!A$g1*V=*|q#7JV^eKi zQ(bLN%|Lt~*^GCw@Pp3dN@g@O1|RO@bL6*|_Bkd&d|ltcj5XfgbFoEUmgDixmYIMc z-q~{1MZNqcF_X>q*vvF$y0N>s$jokKW+3(Tg|M)7jOQ| zMrISUnb|`4A-EjhE8zLG6~Q(H+Y#)*-~GAe#mmboMRxT=2jJ>unN>PS^myedj1i;mDl%c3IG$+Ebl6pbt;B}Ee-nGzEtkB==J z6&F*4LoDnBt#jaF6~4;OD+7YalN2NkuWzXB8pr1h zK7;xHO}=7YGj9;wf#6OAcNz6XCIDRzN%w)|HkQ#U0TfXG0wSOVj6i_kZUpxrxEF&Y z{$c{@OGx}7A^A!mBrF9s0@2nNWsT6VuQTWbb^`l8?_Q>8s#~htG0B05E5t94@VB>y z3&a8seD%-V5I755m|Frj0iF%9$M76-5IYUQLkNDklDPvH3nT(>d^?B(X#;x|!NUk1 z#kYc2jc)Y8bG8aUW*Sl7GFr!3RN8SbDh!4YY*eT~YP^Rt-s^R4M%_2xzJ}ltlZ9b| zaFa20ZGtf4rGY5Fv9@}&q`E~C-y=F+lA9&^q4QWtpdjj732PRzL8kAqMEz=5FNhcP z5cCxE5+n$E^Y*d#5j=_DX#~$8cn&W*@yvx!h%#_kye~rnjj0Ts>N@cVe9z;5)5!y) zyUS;p(a-<;xr?C4#JPFYqs+#%^z$?6_i-Iaab%DO6x}}Z<1VgwGK13*fO4fr&B%hGa$iMIdNn89Z z(gSa5z461yAS#rS;b)M8s8Q53ysw%`&BCu9=TaOspX#7iQmd)8_}$|MywBM}Z8K1Z zsqgS2yoer+-yd$GPtlj?tN4xKP5i>}DV|&ZX84RXCkg8&I8 z3#JM_5G)a_5E#}9)(JKUHVO6#z7!l0921-toE4lGTol|B{3`fO@Wz6)u(NQo@UsZE z2(^$|L|Q~y#8|{xs4UVgN-U}@>MaZwQ!O})Hj566l@_Zl)>^Ey*kG~A;()~=i^CR2 zEsk59v^Z^X*5bUyPnN*a+cL$n)^d{NO3SU52Q9y}JYspwV0pswl;s)A8wpwqs(Q32RR;!0rKUwpwt*wRDB5Q@U(pqm_ zU|nQgVqIq4$GXzG+PbfGo%JZ|G1lX(Cs?!A6Rjs(PqqHQdWQ9f)~l>{Sf8@KYyFdu z6uJnbh3Ud-;Xt8bkZ`bYgm98@hH#GXQ{f`v65$HrO5tkZX5kj$HsLaXT zb>U6nZQ)(vcf#+5PlP`Se-=KoVQl0!Nj7;l6*kp2eQo;L46qq!GtOqZ%?z8FHnVIN z*?eZR%%;tz!)B$;R-0`$+iiB*oU^%Q^R3Mzo5wak*!*bo+~$SB<`0|KHhGIw<;5bVPJfbV+nYbWLqZyFcwI`*8aRdxd?peXM=FeNX!Y`$T({ zz1lw6UTdFbpJAV6pJShAueUF-FS74vKiqz@J!ju$zrlW={RR7b_D}8qbg*)8a|m&W zcSv<8a_HwU+~GrqPaRe|tae!Iu+CwF!zPC<4hI|#IUII4>TulQq`~2|!&!%K9qk=s z9Sa=?I1YCl$uKwm*Y{#Q;ugG&pBRlyyAGx@rL6~ z$48F8IsVV_rQ>VIKOO%TTZyg3La|63D2@`xisQw-#J$Bzah5n&tP>ZAi^L`3e&TxZ zAn_3KP;rykAf70mEH+FNPZ!S=w~053w}`iicZ$Cd?-3snpBA4LpBG;gUlM;UeklG< z{Jr?8_!sf7;@_QUCy|qflaG_1Q-D*blgugHDZ(kyDb=aKsnn_5slutRQ=Le67QmM$#cnfDRe1uDRb%LGR0+{ z%Y2tlTo$=3aarop?y|{cr^^>EdtCOp9C113a>C`5%NduKt|HeU*9g}r*BIA0*JRgx z*Fx7~*HYJV*9zAv*BV#DFxO_+;jSZHN4t)79q(#zMXs}57rAbCJ?Z+;jpt_L=I<8i z*3&J)EzwQorgqD8%XZ6k)4Aol6}k;`Tj;jZ?VQ^+w+C)NxkGnHcR%-7cfEUody#vI zdzpJ5_mA8cx-WBYb#HfH;l9d!oBILxqwdGuPr9FWKkI(g{ki)q4;O<+fJcx=h=@zPW1>ExN@sr78~M4oFscX}T1Jnebb z^StLp&zqiKdp`7h>iNv`H_zu@R$eY%K3;xa0bW5~AzlivXs=kWc(0yb30^5)xn5;n z&0eh6bg!9Sv%Eg?n(MX5%do_2sn>F^Hm?q^FTL(bpu|n$C-IjAN}?pOl6XlkNpFc# zk}s*2)JpnE>Lr6DgC!#*V zd=h-pd>VX4`Hb-y@5A~`@>%G!*k`HFa-TMz4xjZt+kAHV?DpB`bHL|}&pDq9K41CV z^SSTyz~`aQuRhOxUicXP@Fjiid>wqnzRtc8zEQq0zVW_2eKo#X-*n$h-vVEQ?_}Q% zzB_&I_o50L_{aFi`}gus^iT57@z?nm_!s+^`B(T?`}Z~YFYv$M|0=*YATeNI zz{r4=0c!%*1#Ar160kjBSHPZt{Q-vpjszSJI2CX<;6lKqfU5yF0&WM~3-~7BVZh@+ zr$E<0k3dPFZ(u-RaG*3WJTNjaIxsG;BP|c5Qh+Ph;xWrh%zKABqt;0{~l(kIfF(m$lHq;F&b znT5bn5wY@Uph&6l;w+GQQGm9nj}ZL;mMow6gc;|AF&*;&~I*;lfAviq_JvPWUP z!qUQYVFh8uVP#(JZyQ``LMsj1H+@jW5audCxk1*lfnzbE5mEU z`-cw;d8^6g>MPJ8h$VQ$M9$2zlXmFe-r+<9Lo7}QZAJH z%BAvfd_8K2k|)b^AXo)}(6C)-?Oo^BmF+XBq#Nvph5z8aiM{JDP9I-9ZBGM_+GtxWKFETJPEK(k+ zh>VGhi!6y86Zu)>%E&d5>moNq?u^_OxjXW!$a@N*L1C+~SBMoZ3U`Hi;7E%t5J$5WmHm>CQ2K1BI-)iwWu3Wx1+vg`@?Ou0#eckIpLO_Bd zAvz&8p+~~Jgk=e>3GE3h6JGWvd(*uIy{!^!5*rgoC5}y;kcbi|C(cTolgK5`Ph6O| zC~ML9t^Q~9y-6Xhc1 zXG+6zIGGbui)Drrd4f}~|htCF@Q?MpgnNIIN!Ea_y@S4mfrt|#40x|4J->2cDpNpI8w zwVm2g?W}fFd#VG~A!?aATpg*7QYWa>)H-#gdVqS6dWd?MxH+r&royf zNMyHHTnUKP!EKd0{+61jqo21Rq=4;Ef_1Y%waP27VSnUMuH0=!SEbT{H!#wTB+RwDBw41d1 zw8yk3wP&>FwO?s(Y42+9YaeJIX&-B!Y5z*4Q!P@hQ$?xvsqU#>sXnQGse!4%sgbF@ zQj=44sb#4Zsnw~qsr^%jrZ%UJNF9|rHg$aJ!qfw)XH%c2{*`8t=8)!{)+;SBEh#NI zEj2A8EjukQEkCU&t<;d#C#@>2Z`y=3lr}kSTH1`XS!r|9xU>anpQbHITb9p1Ct~cjlWc zL6&8fb(SbAH>*!pWma`oZPv=Hty$Z%c4qC)CbF%wMcMY*;%t{}x9r$#WwtsyB|9~{ zB)ciQC3|G{nC$V{`?8N^pU-}p{XEAZCnP5}r$ zS?8wn)Jb%~I;k#P7okhiX>?j$x-LsMNB602rEZOGoo=IUi*B24pYEXUu-zipZ}s2lzt_Jq=-=r7&WHJAzBWHMzfXQue&76l`StmO@>}vp=8wrAmp?22qx^aK z^Ya(xU(dgv|1|$u{_puO@?Yh@DIg1&0?PvH0?z_Tfp0-TL2$vKf|deQFu7n_!Hj}g z1s@eGELdEyv|xF`=7OySI|{xi*joq-Eeo9s-3mPmy$k&c0}2g_!sx=-!XAYS3fl{} z6mBovRk){cf8n9RBZbEcuNK}Yyj^&&@SDPig^vrL6#i617ugpD6h#$ji%N?67Y!{k z6rrNYMYD=Jiq;n$DLPwpq3BZ4m7?#91;yfGr()+~*W$q9kYZV}yjW2jU92t6E!Gzo z7MB#471tKm7q=86L-EAoNySr&=M~Q{URb=icxmzS;tj>Si;ovyFTPcLxA=bXx5eKT z|4{r>@h>HygkM6HFeR2H!V=pOhZ1p#bBRxhtR$tRPf1hBw31~dyGqWM3QHYJ-Ae;X z6{S5&6H1k(>eBSmtkT?4eQ81I2c_+$drOa&UMRg(dbRXM>FrXld!_eFpO!u^eOdat z^sh3qj487$6PAg};>-G%ab-)mtY$aE_hmnqy(#CFQ{{qkt8)8tak)#md%0(MV0lP+ zOu4!|y*#Ttw_IOdTHdF;s=RM`UHOpm;pG#`r&c_vcv|tIlB~3p`ISYLC6#5BeJUqbuByCP`MQc_Rh3mWR1K*bR@G89vT97#_$sz)Qq`2Ic~u`*EvWjm>UP!lRZpsZs`{ns&#J$x zK{dZRySl8pPjzK=P4$}U9o4(4cUSMLajglg39bpP39Fe=v!tfAW|iqc6GGEpL5=Be J*YBD&{|Edu4>-`TFcLO|upxmArlMpJ!rnVd2!e`R#65DKI_j<(cdd$2XRTJP z)v8siZQWa2XYH`=ZL4+E{|yl(pTFN9yhwQNIp=-OJ@-84-h1wyaR)5B31$g7#k>;B zr`^K28{OcM+1e!YV4{f_LNpUYiDATWVgxag7)5+U%p?{Pi-={!=fpH(6|s)^l9)kk zB(@M+iEoLW#2#WlagaDloFvW?7l}*6Z^ZA!UE&^bpLjq#0VJRR4H&=!4!{vO0cYR? ze1RYE2LT`u1OX8U2B9Dt$Ur-6ZjhJ2H$}_;3sep90G^I zNpKEa0awAV;0Cw}UVxY26?hH)18*P!0W>>97w8K4&<%P)Z|DyLU?7Z#2`~{R!DN^M zJHgH{6?TDLp&II7Cd`5Pun2aCHP8rap$YbaePKV?1c$*%@MAa`PJvV5G&mhDh0EY_ z*aBC;m9Q0l4p+goa1Y!I_rdSses}=>0Dpu(!GmUa2p)z<;8A!C9)~C3Nq7pLhG*a( z@K1Oh{snKqoA5q-0RM*n!2jSI4#A-~P8@fRHz$xI<|sHyPCO@plgLTpBy&1*R2(%& z!_jiGI0c*vP9>*`W8&0tdT{!3`f-{$Lpj4Z!#PtpQ#sQ((>XIZGdZ7dEW_X$^Y`4t z+#}qh+_T(s-1FRv+-uz5xW996bMJ8Pa_@2PbDwaZabJ^wgrpPcOuCS+B%kyoy+}Qo zL*|l&WD!|LmXp<_fi#k}WIfqHHj;hF0pvh(2-!@IAV-p8$#LXI~pX5^}kjY#~1jNZt4(qm^wlorGB9ZOKCZ+pcCmNx-*?ht7tW?qciAiI)^Tx3+Yn2%uH9&)pQMQq38VG9HXKoEOcL@?v>$ zJQ**Zm&Vib(s`M@TwWfp$a05NgEEVh`iQJYCCFsiO8w{SH+r;OnVc*UNfYD8N<^dO z35obYE>k2~4$_vadNc)1MYCDJVSzI$VF4e-AyfCPbe*ogv3X#Vx~airT*qW4gHLKDSon?q=c65nTeJejF0&Y!6O_9N1_|ilL%i+bSG*E zBT-A3h&rMNQBO1=Kje=BP#_9IA{30oC}b_si|9>+5(W6TAJLx}K!l-C)CtvNbK+0~ zG9zT|QguJm$bmzfOPd-RjC|ocEAs}{HyBHrO#|vpP4(TgEZ=#L4#iemO-^s98``T^ zLt97A5~GPR#8_$iAluAm_Ck}iqrmdVunR3 z&I`g^$$Wsq`NTQm6Ji$Tn@!9iEW})59xT|ulQTC20_8wNBt_H1luD$5#B-!KA2qZlMH@;xnk1AMr| zYGRG$g?|ud1+muh++W=IR(3u1P%DbXUXd6odN&Rk)X8tdIg zd_!y}%!c}bJ%;wj%FBv#tC}18Hw{|;es_z!F3V=ZE@HQ(MlK{*5Z@8W z*8g~?iFhJ`*h}oQcm+zh#P_(_D=n!5jOAKLoI4(jpNa4m;ymiy zLi~bKanN`7iBl1miL2J;E2v8g@hj?zOr?3I#sTeN`3G@>a9>IMNn9uXLTN~a)GLXb z*l)Ly2K%iJm06DZm`aI>0Es!;X+ z1SyKnvIb>)bae>6w@o0WE#M6Q&w#UqmZd2$#SGF3N1!9jKu>&AkzW#9XByIAz~4;` z{Y=e`!y0h7)FP#=SJ@z^EWZQ?=?aidB-`5ZK)#XhkzbNGwAobGui<@{SAslir)|9| z#6t&)P!Hr{g5>$a|)D!hWy-{N; z=mxrj8el|y&>%DhjYX!)+=iab<&6!)F(wYil0p3%+aB9ej5SeK=eA`hYc{GXZtT^& zjoPlJC+LgSgn(Y4H)sTXP+!y!^+y9*i7=u73?M@Bh{vIUIN_NrtwCcN!7xIx{9WXM zkzh0qXfO&5ZUJLZ6T(T^Exo+-oef#d4gH7M`i{W(6@UdFp&@7l8r`mbBA86LuK<(4 z$EX<%T>++msc0A)j$`Z;FWCI9YayzMy$S12yWDIr*G_I8n2$!HQK;;F4?|SV*V<%k zBlIa)QuA(n)J;vMkt@NcL?V&QhwY%tK#R3E%h9+Nq5yXrm@F!hpBbzItBLUC%aN&_ zaUJ-=%D5h}Enoxs=>OI2udLnP47Q;0Xwv&`Zv#8*%>NebL=(_NZ2r5+BSbZ=u+4nS zpkO)~>;?PnBo2Td(8p*pDl_t3u}sJLBt+G1Z=0koXM48Kd*BE-_HML}qiM)w8<|s9 z6HkLPXgd1jy@}_+1v`Zo!6h^U%|vB|A*z{e@b3oW8u;UXSg&K&S*R>T)dh3r;=gv! z-2#trssgvc9dH-i1NXrL@DR;G7Bm;lL-WxBv~V?e44#0e;BW8`cm|%MMQ8L1N4EuwxPFl=X+WB z&e6p%2u9)60~EnvD25?06o$cY7y%(Li$vDz3Yfl~Y(2W9wE zfeqMzzC@ew_g82${@j9%neKei4AY=$IojA3t55^AIB&kqB_$2bD{)IYk&LqrerOvs znDLe!uV-Ku7{45iwzcPWXfJ5{zuh^-u)^w`5?Bh$U^)64ZA0In?X9p9+g0rg4QK~8 zXD8Zajb>{|l{EBg=+WFzZ{fO1EUTT}EKghn(d}S$u>PI98ql|>tewysHokS(H?D#8 zus#ni91X|7v1kw4i}s=K(SCGb6*dxq8vHpP z)L=V*z`3sk{eeGCmP$8~&L%*Tl(Z(9th@_qkGG%g)Bw4&d_U^GkRO_KLW z==i9R$z+xBzrYLdBD#(P{4aC^-9)!m!OQRpyo$%;8eS6LMi0>=JRX1JKa=H{r;l9#S(n9@ zBtfv{FV7;McKBQHjx{iDqdP6|F1l-b-^}nKe2h~Re1z_`z$fTFGTARC+txeq8GJ#6 zuYk{q_2>bL#s9$P_@4*JRQUhy69;fO?MgXZ^!Qyga%c|Es@81P%W*(Y-lckuGshKE zu%_4+4j(;zPw?Oftb`RPx}{Bh`{cm!;rP8%;*b7$uOx^gvI}`m2qzl5m=nqg{1vDPLr@|03r<&8w-wr{4cfNPD{F4V>zc-fA=VX5yHtP9ARGvs0i1y>aABQ+>x#Bl zx$OnE?C}y=mU)Rmxn*{0n5BDN0Ny-!T9{C^pq>RjES$;0*(_Yf!tYtQABSyC=)bPx zSTLD|-Ygtu&4Mz^>oETj#FpP80xZ)bcpe>SS8cRVO!M>W z5wGl-n3$k2$vTSvVP&ygjfmpX~pz0CD+Mii84E>du>vMk# zCCA5`6758lRzX|4DT{6XkZk=XPn6yJjz^vB~AO*^wmiHMhq) zH;bEXmp!<7+!1p`>;jvHo~0`HxZWXWT3p#iUeNjIo!A>CQLi^MBvYlEO|B78efklth*5x$WxBz;I< z(vS2f1IR$jUkVYPnx?Q|8VhDvJd`PpRt^~{Cl#d9QmhO$u;6PJ>|nue793y!9+aaj zIKzUUS#XI3zp~&D7GSU4V!=ZeJYm5z7QAF3WFf^u2NpW9kZg=EkR00)b()RbioM-=PKw^EgTh%h(ki1H zsI~CB`fM4Vk_kF8%(F49!3>%TsyGez@`rm>z6k6&F@2rw(L%IvfS+A*3maxY;0S% zICZT7=56FoYo+Rc>xSemayJo1?qR_;7JOqZ;%`T$5cSTNbw$Vfsw%D3uY@G!*m7GL zto>E}fjs;{up{JA40fCa-?F$?g2C`U)e1H`y!iW+!FFZH_f^Pt(6i(P3`(9O&yzos zI8}bf0&Ese#QR#wi{vGnmEW^q|641q1x|}x?Irn(yz@b8?vnSg&;u6yz=9vGLOJS;1!aI*viliutrtot67z=PGPq5%* zE9F2r+Dtpeg3}#MTci<6gp}WhG*SLk01-w7vEVEV&RK=dTl2UkOcF*#e^4NX!kY{# zmIc@`7pwvou|T{wToO;Ed{Ceh)fo$PVZmhfYf0k6ov&=~{GabTj|cokXvx{#@oxu~GE(&))Yw4v#2S0E;4c>3 zuxh+%ideyICk>j_f;X|Nkj;fcgPz`iX@c7ILu=B(WxqUMxFCo&G~@URxplrCv}ksaGs?W1%|>Jy_`3O8rN@ zA;M_DLIDefRtPU_xHTO-&kT)nqq1`(KQAd@_&}9%MC_mey*kXww9Llgk2w+p2M%cX084_6 z1y?`w5-p3e9Xm`GbSE24WaOu{O&0tT+Hx=3xkKis(`+nw>sy>;sVQ>s>Zm^5M#N{F zwz=9W|Ded(jwj2;6K=(tTqN*fKIQ@*$T zVXmF+-EAzfxa;bUqII@*Sw~T0nUkH_y=*)RBVYT@H4pQ=J^Il7@XD9&%fk2;x<3mO zaJ2a4i&ca1qMUAGVIp3X(?e~Ga-x79PLH5R+Kz~ehBo%-n>%n|-$GNbhWw%Z>l&I+ z91D|Kn8d;q>ljA@`Fh;jqsu7iTogZ-Wi~#KcXkR*E^Ago!@RU=*d>a zQ&^a4uXqMMlOAcs@5;h1HvB}(ngTzSg~o-__72Qvp{gBdkrik$3)S{OOX+1cAT0|u z?LaAoe%e-g)q9}TEY!6Ft+N8HXJLjt&_;Tb4Jea^dJNRj`}eY)EawZ|RA1BIyvN+m z!t8d;omR|UEX=XT+)MAXVdk+g*J_+CO8vAy(g)uI9b#cYJJ3-p&@mPk+5?@UPuqZs zSy2-iTP!f}D0~*A_f&XKiu`EE_g-Lslr(z*K%xv3AGFmGh&eB8d@iLh#8{SYBHn-t* z%nbZwyjIy&^xdgpiEk$^CZ8$93YY>G4sT&_P>r<9?o7EY!;G-R)^)3Bm#Jb*_!xt! zW(-U>raM!^7#TcDqgXhag=1JamWAV3Xl5Z=&D1eHn0lsx>B;nBdb5ya;dmC}%rJ?C zAG2^e3uoZebgz6&XcIo^9>6r$3~Z`zXlkf0sOy7|d4}LkH~gsW^obe947bdv@F7Q7 zPn|65D}o$H;q5hpRZc(~E$1py&4^*`3INOm2G?d<7_4q`3xm~7X*)z}7%>RneQBt- zo&sm3+s=WRY0Qik2AeaLh0}^+ZRcI-%&Zj+{D7KShyMU26hWlGjDjD4>0q%Jd#JT za4QSHX5luxh)a9ec3gn(X^FxhAv(=-Bpi88Jm)Rrx($TpZ`#6$=gQ-Ee|Kz}ZfZ8I z#7%BQayh<(f}h?xljp(n#m6qpd7gkLWPag!^YEe#cYg;9zr`M4;Z7FrTE$!>R`LRP zf%r-k_U;-K!@}Jx+=FkO#8_inj3Z8sueA(oY#v!`>1Uj6j=%;*@}jJlN33_3tb5a@ z%~zcwS@@mJx)`3sW=O*dUX1lN5x;a`y=kP#)GShVQYMHB^Z2*%$?MzTmA?IM%RxLj z7~euTBlz}|mzMy>uK^rh5-*vT!s|r(Fa-+EZe(QP0T%wqLL3r!pNUrixaOCGNBn*5 zf@do*!ynq$UmKHX3$CX`zh~jTJ;E5;Q7p%noeuur^&VcKjpcC1n#P($H;cT+gUc)B zm04Qqyv!HyUD3PbQ}PYo?>bV>_-?2tC8T^PKYRnUit0%XrH12MpQG`GPcy|*xpj6^3l-Xu{a}wuarkE+kw#)FKv%^-0Z4TQVzI8a`aM|Gx2lE3*cgH|Sk)zl#)G^#K z(lOdG&9T_gA2HLr_;^~=g!VW&gIVi zoQFCucmCY@r1LH3J7(v5&JUa)Ilpjz?fk|CxH!1PyQH}EaOvkV$7O-bZkNL@$6QXh zoOU_ua^B@XS4USDSH7!`7>RboAPH}B@5#^28WmcNVt1OF%fA^s8mG5!huZ8tZ!AUC~Rp<8#i8n@nVgWblt zjdxqbA{oyW6*JKe-)pJK}cC?V{Udx2tZ~-0rzOaC_wT z#O;l{le>#M-`(9k*gf05!t8Ez@9W;*eW3eb_fhW1eWLqJ_g44y?pxizao^#-)BTM5 zS@+-EZ@b@hzwiFg{jvK?_t)-kJb(wsgY0nP(SIjc2-N zhG&jvo@aq)k*CqK$#b;l1kc%?^F0@OF7{mJ+2Xm<^K;LQp4&b5d7kwA+4F+uU!J!- z?|9z#eCYXDKnXkqo&tfuOAsoE5JU+if>?n}kS@p*6bniP<$_8br$MB&H6DZ**O z#lj`RrNZUH6~b2GD&ZR8I^jX#W#KEYU@w(d4=>hhrk8nv*CMY^y*~3==C#Iao!1v$ zUwUow+U#}Q>w!1$=6eTti@e3&VcrqmQQn=sGrhCCv%Pb@dw5Usws^1dUgN#a`wQK4?@QiSynpq6;luL@@R9qdd@6nV`Aqit z%xA05ZlCXb_WB$$`<(Z=;`4{kU7veC4}6~c{Oj}5m+MRV(!P9OH(w85k#Cf5jIY!; z&R6c+$v4%vtFOve?Qi;KzV-0e_kUo&>@`w?I)~T%abfD6lqgVBomG8G%az*9U$Zcqs6fz&`_D z1~EZ`Ag>^wAito1prD}Opx7W;kRm8PC^0BGs8djCP)Sfj(1f5ZK|crm8FVA)R?yv` z`#}#yP~<9d7kP@jL_Q)vQG_U7lp^XZ>LSvJ(nT4fOi`AoR%Grk8YF5G4HXR+jTB81 zO%Y8K%@oZN%@HjVtq`?}R*Tk(){C}_c8Ye3_KLn29T1%oofVxIT@YOoT@l?D-4Wdt z-50$KW`Z4poq}D0`N8hNp25MvA;Dq65y4TxlHk~2S#U{kpWsQsOM>?W-w1vf{3!TI z@GCJ8bH%inXBKxBYsJ;#UgAFDe&T`RCULWPtayU>WARk+4Dl!8CE^zGO7Z97b>a=; zP2$bsAH>JSm&Dh^zl;AA-xA*yKM+3>zX@SN1R=g5{vm-OAtB)*Q6VuQT|;t03PVal z%0mnx-9wBarVw*TOUR2*I#d|y6Y3ut6e9#fPcG(!=y&*lPn{}6sK{7Crm@KfPu z!+#FH7{N0~I7PTdxJL*gyd(S~0waPWLL(v~q9ddcvIu2FVnj+rYD8LuCPEjH8Ico_ z7f~J2EutpE6fr5n5-~4gLB!&SJrPGEjz^q~I1}+al8mGyd67<$^2n}{sz^Y_f5 znj1AgYGKr;QG26~MV*K`6?Hc1-)JhDiFSx~j#fmcMXRH=(HYTwqen!KiXIbfj&6zXs z+?TwRypp_@ypcLdouw{PzBE7@C=HSZOJk+xIH^pkkfuphQngeoEtD2Xi>0MfleA9S zL)sv1k`9qJONU9vOD9MtNauh==U`(hu)`NW0CMa9L$#m33wl;*h9 zICWfloIWlqt~|~V*FDY{S0C3au1{RQxLI+F;#S42kJ}KpF>Y(zwzwT}JL3+-U5NWV z?t0wKxZ80rWu%OeIm%pQZn9poL9(&3k7N^NlVvkxvt$<8JlPW2O4)YV0ogIxJ=s&a zr#xDoBu|#7$UDn3B#qR^}-Sl_kn@WtCakO=(otDI1i% zm3@^1l!KMc%Hhh9%1O$}%Bjj3%G=6k%72wFmH)-p#P^NwA3rd@DgH?UkpL6833NhL zLeGTW34Id!C+tl)mT)5BRKnTBn8f77PKl|BX^B%3=O->qT%7n>;-86+5}zdgo%lRS zm6VrMkW`dZnzSIPHEC6nc}>##q!-C_GB4RN*(JF-nN1#_JTZB4^5x`P$#;_PB|l6V zoH8y2rF@h!vD2+i|8#oZ=|!j4soK=S)Z*0A)QZ%lsq0fWq;5>zocf{*-G$f1v5QNW zqAoREYP-~RY3Q=M%i%6ZyBzOws%uDBSyx5Z_^wH5Gtw5PtxWqoZFSn(wDsn+t!dw+ zeVeu`ZBN?1w8Lp<(k`amNPC#}IPGcLKWWcZK*d$jDxS(o<)ZRZg{opzomJ^7y((Lk zrz%ucsk*6*DwC>S)lZP&=tz)Lv>|b$~iZEmnuBrRqd= znmSiqrmj#|sSWDxYI9F@qq?7ZfO@cch7wMz)N`0z6OJA%n(^u*Z z`Wk&NeII>){Xl(_zF9w3KUHth&(|-~FVQd4uhFm9f2rT3-=hCo|DFDz{*?Zz-h4xU zTYpdgQ2#{#O8+JkW^yy>OkQSaW=>{RCYw1mbAIOX%ng|bGmm5*&pefRHuLAqi9ao0 znwvF0Yhl)>S(mbIX5G%ZoAn?&E<4qn-8Ea4t<9d8Jtuo^_WbNc*%z~KWZ%lZlYKu& zp3^l)m7~eg=7w?&jRjd6cWjP0Lm1YI8GkC+E(~U68vdcS-K$ z+*`SKa_{9n%v0p0<*D@nJDqnn?|R;U`9!{% zlTYRI^0V@b^9}i<^4a|5`P=gM=l__0DF0~wiTqRf7xS;=U(5eJ|4IJe`OouT=KojF zwLo7`T2N6?UC_OtwxF({Z^3|q!39GKCKOC6m{Ksk;FE$A1-}$rFSuE7r{I3Uqk<;| zuL|B2!a{DLpwO$(w=kekR9IKow{S$^=)!U4Lbh;1;iSS(3g;BgD_l^xrf^;1hQdvS zTMC~RzAkboaxUT*c@znYyo-X1LW?4bqKY~dr52?XX^M13lZ$2-EiGy(YAsq_w65rj zqOXg#7ws(CU39$YWYL+T^Fx%1(dlmO7 z?q6*FviO_g1I0fTA1*#te6sj-@ulLc#lIE*QT(*{pW=UuUlqS8QI%wsl$TVMbSp8I z)Roki^e-7yGNfc^$)u9WCDTe~mdq|WQ*ycFR>|Fx2PKb7{w{e|N|bU+sZyrYr_`@B zur#3@n#?sBDUza{BBg&l1_+=ht z!ZM#Szp~J>h_dK1Nm-Y&v@%VZt}L@`X4!(W*0R-Q>&iBiZ7SPbwx?`g+5WO0%f;n! z}@6^6c`w^1||x^1AYd^4{fr%LkMXE^jU$UOuwiQogKwbNSx#Gv(LIpOn9< zaIA2y;8&P^Dr6NY6@?X572PU~6{d=z74s@qRIIFMtyopDrD9vfj*49sdn)!-oT<26 z@oUBJ71t|nR6MNsyOOAMu5_t%t#qpltPHLUt&FIQu9Q@Es?<~#RMuAZsO(wUSlO>~ zU}aO~(8>{&Q!1xd&a9kOX{nrFxu|kU<!CxHMweL z)x4@@RbNzXsoGYxqiR>x{;D6V4pkkkI$jN`{i_qIyH;ma=T;X~7gv{6S5{Y7_o^OH zJ-E8LdU*A?YPNbp^~cpysyA0(GdLLp27g1OA;FMpNHb^*Izz6Zz))-`GgKIA4Rwaz zhM|Tr2D8EZkzt}?y5SSU9K$@r0>g5{O2bCOF2jDqkA_2rqlPnv^M(tC%Z96l8;1La zXNEU5^)L+mnzc1w)NHKTT=R9!_L?7R4%Qs5IaYJB=5)>3n)5X; zjUr>VvDrA*IMF!MINP|`*kW8|++o~lJZ3y^ykNX!yi#ZU%lORrukn@fO)ab?YnfWd zT9;aWZ9r{MZE$U9ZLiwq+F`XLYDd>juAN#tz4nvZ3$=gM-mJY{d(RYa$}r`aifnaA Q2yNfIa@%+Nr>W%s1LF?q-2eap diff --git a/Source/WhisperFactory.swift b/Source/WhisperFactory.swift index b024c17..38b9b8c 100644 --- a/Source/WhisperFactory.swift +++ b/Source/WhisperFactory.swift @@ -99,6 +99,11 @@ class WhisperFactory: NSObject { self.whisperView.frame.size.height = WhisperView.Dimensions.height for subview in self.whisperView.transformViews { subview.frame.origin.y = 0 + + if subview == self.whisperView.complementImageView { + subview.frame.origin.y = (WhisperView.Dimensions.height - WhisperView.Dimensions.imageSize) / 2 + } + subview.alpha = 1 } }) @@ -111,6 +116,11 @@ class WhisperFactory: NSObject { self.whisperView.frame.size.height = WhisperView.Dimensions.height for subview in self.whisperView.transformViews { subview.frame.origin.y = 0 + + if subview == self.whisperView.complementImageView { + subview.frame.origin.y = (WhisperView.Dimensions.height - WhisperView.Dimensions.imageSize) / 2 + } + subview.alpha = 1 } }, completion: { _ in @@ -191,8 +201,8 @@ class WhisperFactory: NSObject { edgeInsetHeight = down ? WhisperView.Dimensions.height : -WhisperView.Dimensions.height UIView.animateWithDuration(AnimationTiming.movement, animations: { - self.performControllerMove(visibleController) - }) + self.performControllerMove(visibleController) + }) } func performControllerMove(viewController: UIViewController) { diff --git a/Source/WhisperView.swift b/Source/WhisperView.swift index b8048bf..95db8d3 100644 --- a/Source/WhisperView.swift +++ b/Source/WhisperView.swift @@ -16,7 +16,7 @@ public class WhisperView: UIView { lazy private(set) var transformViews: [UIView] = [self.titleLabel, self.complementImageView] - lazy var titleLabel: UILabel = { + public lazy var titleLabel: UILabel = { let label = UILabel() label.textAlignment = .Center label.textColor = UIColor.whiteColor() @@ -60,6 +60,7 @@ public class WhisperView: UIView { titleLabel.sizeToFit() setupFrames() + clipsToBounds = true } public required init?(coder aDecoder: NSCoder) { @@ -80,11 +81,10 @@ extension WhisperView { height: frame.height) complementImageView.frame = CGRect( - x: titleLabel.frame.origin.y - Dimensions.imageSize - Dimensions.loaderTitleOffset, - y: (frame.height - Dimensions.imageSize) / 2, + x: titleLabel.frame.origin.x - Dimensions.imageSize - Dimensions.loaderTitleOffset, + y: (Dimensions.height - Dimensions.imageSize) / 2, width: Dimensions.imageSize, height: Dimensions.imageSize) - } else { titleLabel.frame = CGRect( x: (frame.width - titleLabel.frame.width) / 2,