#P*aOaZ>R#$T>VfLP>Y?g-^)U5#^(6IF^)&T#
z_3V&(u6mw&zIv(p3-xyOPW5i}UiCip0re^Mcj~k1AJmuBSJYRN*~uBn{^U23$0Wa(
zJR^B#^6ccf$@7xuCpRRoOkSP5HhF#WhUBl3Hz$9cd@}h;^6wg%CZOr1sn?9qjM9wN
zjMs!U(=_unjhaQ8C7NZL6`Bp2U77=$Lz*L+&@s(-n(sB|G(TuAYJS#S)4b5~v~gO2
zR;-n3le9W*hBixU)S9(cZL!v+^=SRtGHtoGy|$yav$js#UE5PTR69&NLOWVJP8-s`
zubr&@Ks!}CPy3m6m3FQ63++bjX6;t(4(&1R3GFHEciQi@=d~BKm$W}>e@{tFDGH@@
zO9`bcOxd4uJmo~nsg%b%sAse4inr5;T^o_Z?veCoy2%c(!5{+#+E&6?IRt!G;Aw0>y=(?+FDNSl)O
zQQF68E7EqRT}`{MLprvOr;F1GbqTseT}ZA|=`=c<&Y{cG73zv~Ep%?3PZ!Vybrrha
zx)Hiby7{`5y1lxyx`%q6K1H9cH|TTpdHQ^PGrd>u(+Bh|^)>p|`p)_;`fmC``l0%I
z{RsVN{aF3G`uFuy^wab+^fUE~^vm=s^q=e3>c7x$)Nj%s)}Pj2(f^{q9@5{`-_!r5
zf24nsj?)F{s`Qlfv~+!XcDgCul5R`)rB|hQOs`Atk=`r4fBL}m!RbTOr>3vX;ANy_
z8N)M1W=zTWEaR(;W0^6Tl1y`E
z^Gr{sKeH^eBC}Oy+sqD`oiamRGG}L=$b6o~$%@MoW+i0FvXoiLS=ua9mO0Cs<;a?!
z^;y=+tkqfTvL)Fm*~V;hwk_M4ouAz-+n-&U9n7xGZkgRGyG{1c><_XVv-f3R&VFWK
z8+e8|gU}#0NDLN3k-={$GgKI=4Yh`jhR%jMLk~kQLmxxEA#9ivGVCxMGMqA;F`P5}
zVED!GyWyeXk>QDvHVTbmqr{kKlo=I9y)o06Z8RFqMw`)LEHaiD-A1pm#@O1}*4V+=
z(b(D8&p6yT(m2{U);Qi6Hcm25HcmB0j2{_i8|NCA8`l}P7dx
z7t;;XZPPu|gB*2EMb6lqPjlAhe37#;XLHWhob5R$bAHJAG3RQ|FFDt99_2jGd1Ji8aZpux41ZttP9*YPaTE3#`qo{jD>td#%6OQf=k7H*Ig(hTBHj#@a$QVhhc%
zePUZ^TWniqTVdO1``WhMw#&B9cF=ajcFcCccF!)ctL@o#v)yKQ+6(PP_7c0>UT&|m
z53~=m54I1rkFk%p6Z_lt>GqlSIre$>1@`;)XAZU_)**0+9Z3#_L+#KwG8{HXg`1FDPy-{?}~Q`T?sC!E7_IhvbkEgN?k!$g{#Wd($&G$$<@`>&DGP@%Qe_F
z$~D0?#Wl+{*Y%03!L`Wsxofp+o$CwNM%O0SDc5s1*KKtdxIU>RB4{tnjS#eCgTb`P#G1v(vNNbJ+8p=O@oC&mGS_&jZizo)=!=gMeItFNePey&egF1N^iB3n@lEqh_s#Py_pSHs@E!0S@*VLV
z^Bwn{^Ih;=_FeJ)?EA%c&-cR5_DlR~zt*4TPxoi}ZGNXe-(To2^0)B6;hzxlPxWu~
z@9-b-pYdPy-}c}0|K@+>e;SAh&;d?>7l;c80*&p9QdPDRGMB|T-vU5
zKWrNCwmJKT#SvIC@
zd|9|`a@q8AcZx`GwK4#B!$k6^E0-{6p7eQ-o@
zbZ~6&-Qd52lY?`D4Z%ghCBfyvHNo}4FN2$cTY`In`+_Hemx9-V*Mql0!Mnjn!6(7z
z!I$NroLw#~msO6hB$X2@XI0LxTwJ-Xa(m^j%Dt8QD-Ts3tvp_NvGT{tpDM3aUa!1a
zdAss%m87bmsz=oaRWqyRS1qktQMJBmbJg~$qgCHlovr$z>SER9s_RuRtEp;K&93HE
z$5jif6RH!d<<+X{4o;s9i3kthM2h=`~-KmoTlxqfYH?NVbM
z)hZ&csaMG`?*0G7XutLM?>8?-?zy}7J;wD5k#H0o4adN-a2$LGdfis1*ss4O@&fnR0I`CMN>jbO3A2LDvnZ7
ziBt-eN@*z_l}Qg^-#U2DylbCP1RFFsG(E?)krl_
z!zfI>OZ|r$PrXOIPklg5pr%rvQ`4vxYChFUEug-ozN1!Bo2f0-R%#n{fclv_NS&t6
zP-m%g)D7w;b&I-9J)xdbp2(b|d2~ac=A`wy|6-q=&$bd4D5t)!D9~GcNRD|59
z6qTXws0XS*Ls0{2L``TI8jePwk!TbejmDs{XdHS6O+X)_iRdHbLtmmfXfA3-^H2+#
zkCvma(F*hp+JH8q@6jf-6YWC#&_Q$_{e~`}i|7)%hHjvn=oY$zUa&|OlZ99;R&X#Y
zgcZ)>v7%T4me}_kWD}iNwueSCxCj#^-VT^3!$kQ?FZv@)xMjPt^jOz1niRQCYswtg
zZHz&$Pmya)x|JUYeh8ro{G$tf_Jk*%dCWtYNb`0+%wRJ(%%hB!`OIIK$C$@4k&cNB
zOk{dHA7KQ&>O93f!{D_re`TJ=ga#AZ7BZB1&bt^BI&WS{ZJ&~+QJwm|8GD&|?d`G5
z-d?L#drjQK?n#1VGIu7G9H6)zylE=5=1f{5VHUuL@`d&zYi+8k&R7N4NbLm{qpJu
z4I5nN95%RjO+zJ@S5w#L{}YB+5A0vnP*vSj(@;`X*RRG=Q&-954tlL;L0xsde-14Q
zOm@`P)%=b3W|@Bq!>iwhtFOjH7MJECo7=|A@P)K>W*lbd83rH%;!3U{zr3`xW@J{Q
z8sr5H4fQlHj{KUwRl^1~$*UUrz4DTLc-5d`HS+qta=&Zjs=T7YLG@LhCY8Lps;;iS
zN#46gUR_@|yr!Y4rjNX-{`D~bpe9wP+Q6b}W^*$pB!Nb1pz%6{fClIo%6a4`-hJ}`
z9p@IWH83ob-U7e~On?q3D<&M6aQ(dnfUq6NrlXUbNq*t|*?X`BKMvJpdaWDYQX?75DWr?G0_DRT`|!O6WuXEqf}s`
z=ORWt7y^cZ2G9taz%cJ-OjKf0he-n_^Dx;5lQq8KiQ5u9;6DuIeBcEbyo-rmn5e=;
z@A+Uncn`df2|9vk>1JO=(jxuG;4{CTpMXy>(FYTKTfihR858|6G1_ZALeP1H;4n@T
zAz+%9;Vs8RO(nOVkK5MZ>li8aO;E>iW(DMQL|49+t2?~0YYu2-C>Maapc%{qEnq$-
zYB4bY69X|Z2or-BkaQjZi@;*A#Jk7a7ZY`usK>-muhn;s`;qUr0dl3~MF&fGuDv*ybIAiQ$+Sfr(MReklVz
zdls
z$5)#w=HCVPzpLK{~U2fQgp3+y+Af?iue3Pjd#rh(POoU$ef%_*y#{1;sR%PynN$5Q;D{
z0TUl$Vj?C!YK0Ogg)$g}iH|Wc4HMHbG0%4=Z6gmVVIu7qsKUf2^I#GtKJ|GrBpIoU
zmKK->>C@&jOicZIt3e$!(0c`DK>Ey>go(*5FcZ>;z!XgQd;=@_L$xfK%&FtHF5i!iZxAsh-DU?XgT!yp}W
zOEB>jCRSl$H73?z;s^hkmFiQZi&u8jMH1m&_^zKkjESZ5Anm?ougLqrPu>JbbH5xD
z-~E@okKt#2UOs{J7X2C%D_Y?^F!3!-UKjBUIP2|xnzt`s@wU>}L7!-Bf%5~w
z^C~C8g?<)ko!9=8#joH}xD0m0#0E^P$HY3CJ32l;xs1c-F6-m7yRHy;V9}+3Q{AeYkfGqIiMUAsXW2U`h~Z9jWB@d6jOrxYK2Hd5D=cLXvbW^#8pgOYo#odl~GL5$LjBxxbClGZ}^-YW&x^<>gMwn@cVbCdeHqnF>wnM
zxBdNpc&%|AHa?p1ENzI|Vn=#46
zB%r%V=sTR3XkADxr4bpM8Cw`z8QZ*Vz3sg1y;-f)GHQ7M4Plb?3hfn14?C@jyV~ZJ
zIXa!@Z*x{r>-~#(Hc%VsS(`A)#w5qTNN|AKWe=%)V|t9ynY8pJL#Hw7#&sQ|)tOBx
z^8aG|NbUNcw(X|&1hfgoWY~YTxv%N>Fm&=Omt|-*`f;2$jygmg^XpS}oH{|zJB7(`
zO!EBtM7(zOR&rFrD=Um9{kSe;=)eC|2z+rhN9C7bmqVLe1Vv>{*gKa5DXYD
z#iZ=NhCf<%qUYHe0XG=*Z>FJO6z-pvgLo){QH*FU<(O3XSB?$Xy__V6Z0#{dtI-+#
zmpy%k-w$TfKmCBjNFD%Dpja9t9+UJ>f*(W~09hYA9$x7&hSu3kE3M1W&>#k#kw*O6
znMjS&{U9EsL0TFl1CxoEO!9-MUuyzah?TS^CS8VqXK4K(I<5IF5Hrg1N5sEvHSRP4w3w`75w$Q2-1gGnuoLnn(+
zOAHT{qb>~IJk%MJ8S_wAOzM5vmbj9hs2_v37*(QPs0#H))u<1uL47fqiAf_SO_(%e
zvJEENVzM13+b>4_8S%811JNKf7}YUo9<#ig{mN!zG6$3Nm)w=BEFvP-gZ!m6@*<4h
z#biDv3ouzYAB{)vk#xitVY1ryr*){~V@AsY^a=VDeTF8X$(XcY(uGMkCTTUh|9!Tj
zsc42D?Q=8@O~<4alQvA+=cAeE3p5Lp4ontf(&<}nTb$5}7XRDGCFm=(6q6k>*$I;+
zzR`AZ!nbJkzl~gj)}nQoEX8CQCd+*r?261E(6)aWN%TS6(GI#cCA(mwCHDssod%Iw_fjZbO@cG
zYbe^zBj_laj*g+@udMBX$qL$FO!mZNQF4BB|F7n8j(+1u;?&;?Yi
zHNT((UE&R|Z5mbLd+D6)xlAi`1zqjzbf-1d4zBT^3^Oj4cD{?rs(^OCqw4`hYFg0m
z3{%h2`aV^oWC}Lujx5_rAm;UY&&`eJ^_JpblnHfsWdL
z9BkDAiX@5+%TuxUNfquPltx;{QN3Es~Q8y9rpb*5R
z6Ivva(r;~AL?;FMfvptP(%WhHLQ`W4_H1{Gix<#Eo(h%BWn|DGixjBN7fG3PS$SLS=M>h
z1=c0j71lM@b(ZHQ>o)68)?ci9L7brYp!A^jL8U>JLBoPR3|bbnIcQ(dp`ar{zXY8M
zIvsR2=zP#^b`)F8PGqOD)7e^fCfmer!*0heWZT(Y*p=)mb~U?(J&0Y$9>Q*5H?f=9
z>(~d`C)uajXW8f3x7g3vFE|Vi$pIXS!{V?xLXOzOk#b@<3Qim+furIiaWXl%oC?lR
z&L^CuoVA?&oKu{OoXec6oZmS&IQKXYIFC3_IL|mQf`!33!Oq~}!Jgm=!5;=s37!?a
zICy#Rw%}iaF9kmgi3s6`2ttG*;t*+wG9)=9H6%Sm8pipL*ql!LN%efP<`mE(ALlmp_@a02|XJY6c!q0
z4l4^A5!M{GJZyE?*03MLc7*K=I~aB>?ANeMVRyrxaG6|+%i^-R3T_(Lz%_Es+_v0Y
zZa%k=YvJ0sZf-fZ3%47$A9px+BzH7-tcUv!*UNpEJD%&~e$JiFoyncW{gOMEJC8e`
zdyspEdyRXYdy{*c`zQA=?sM+Ta3Y);4#QD+PvhjOZ27
zJEBj-(1@`S??#M|ct2u7#1|2>BNjw#kJue?E#iK}!-&TbPa~;FRwO@C5GjllM=B%J
zBilu0Mdn22Mz%(N7kM-Capcp;=bp%yd={U>58;RLmHZ5TCf~$w%Wu!m=J(?_@kj7S
z@yGJt;d}X?@Tc;p@n`VA;LqdF=P%$d;xFOlrhR2
z)i$bqRCbgzs$*11RB2RsRF|l3Q9Yu1Mh%P_5j7=hVbr#$^HDdW9t%i;2M8zuOTZRH
z2>1elKqwFkqym$mQZQKXxnPc9v0$ZOmtc=zpWuMtpy06JSHT6rCBYTJHNkbkL&0Og
zQ^E7-$Y@1$Ty#RTDq0tv9o->1FS;PQV{}DyWpq_^b@b-w{m~DEOd%8^VUUm~Bt
zp-?N#6?PU56@Kgyekzfg
zMtnegQhZVTr}(k>srb40rG${MCBc$V30K0CL`rlLm!v`Rkz}gmbIEi`t7MU6iDa4N
zYsoi~?UMbH!;+(tW0Dh+%aZGoo08j-yOR5ohmyxqBo#^Hq$yIfG)tNz&6O5Otx~&3
zS}g4>?IrCkt(P`Po1`P8qoiY`pGjv+=St^ETcr!7i>2R7cS!e0_el>(4@%ESFGw#*
zuSjo5Z%O}<-jP0)0a>^#N){~>$zo&*S)43EW|ZZ~ie*ljOV&x&Q&uIbmi3kOmkp3L
z%0|jY%f`yyk$ohaB%30eDw`?u%#wX6n=5OUEs?E}ZIo@2ZI*49{UqBZ+ao(7J1@H-
zyCwTWc1Lzsc0Yy@L&m@uRtzU5G=>|K5#x?&hyEiv0-w#WPwvnys#%)XeD
zF~7!~i8&YZTg;`HD>2t%Udlt|a(TYIQ9eaJSKcCTl`oPnkuQ~RlJAl4_sD;iAC@1L
zACvzkzb(Hne<*(}f2trAKtU;33brC#!BZqDG8JY;TSbAIdE51^!RjgC2S8P=5QXE&DQk+qo
zS6ozFQT(pBsd%b*5$j>ZlCdBb#RkQ4Vnbr(vAMCev7f|#6?-7|UhMPO7jcX@A}%ye
z94CuY#Kp&{;?!}eac$z-#bw8Jh|7yBjI+eq;s(TxkDC*>K5kds#kfD?9>zV1dmhh-
zNAc|V;P|lk@c5+oiue!WC&l~Xr^U~VZ;f9bzaf5W{Lc7e@wYq)+yrTYCLtpsGr^qD
zE+IQ1H=!WGl3-8hnb0etI-zeuZNk8Wx`d$#jS0gOMke?YS`yYI>`6G8a7PK13T39U
zSXr*@tn8+&R`yZ$Qw~u!Du*jaDzS2c@+0M^%E?NfvRS!6xmdYW`Hk{B=#4i$O
zC(cQ{nRq`bEGa5UlT?^gpVW}llr$n~RMNXi|4Di;X|^ZnM$)aM2T2c;o~W5>phoIQ
zwLmRYOVlxHg<7rFs`YB4x{bP>+NyS{JE}|6oz>mc73xZLgL;g5g8CEnXX?r7Y3iBk
z+3Gp!W$M-HZR(xs-RiySgX$ydW9k#?8|r(>L^72elpLHKo*a?PPZlH_k~=4_O+JwP
zYqIBh@~z}QlkX-!NPe9BEcs2yYx*>H_>Xy_Usk>75rtVKYm3lh$Z0c`m
z_Ovc(-O_rbRiH1)
zz9@ZF`r7mj>6_9wr*BO^lYTw@Zu*1t$LY_~UuswywkAZw)kJ9c8o4G#Q>YoN8L7dV
z@tO}bA8Mv*=4o0q^EC@J-)S~!Hfy$Oe$?#H?9?3A{GvIoIjK3VIj8web6s;w^M~e+
z=7rWnXqj3{%hIy70&T1|UaQn5YSr2l`p#z7w$o;7bF~H9B5k?0QrllUSX-|hs%_MI
zwOISEcD#17cA9pkcD8n&wpF`GyF|N2yH2}7yGh5;h3LX`;krm&UtObatj?o*SNEQ7
zf^M>Is&2aO3*DExxw<{N#~Fzkoje&mGpaKBWc14zkTEF3oAF`Brx}wore;jbn4hsY
zV`;|M87ni^WUSBFn6W$Kw4R|4(nsmVdYN9KSL&1WDf%?MQSZ=~>AUE=>nrqi`jPrE
z`ginLKVH8}e@K5;e^Gx$|GWOS{*L~h{(=6v0T_gactfh8*idR{GE6jhrW*m5{X{>$|K~S!=S^XQS-M?5OPMY;pGN>?PStvzKRolOxE9&r#+i<|OBQ
zm9sWyea^<5A9C5ATtTidSDY)$9g#ae_x;=nxgX`8$-SO?Gxv7xoxJvWwme6kGp|$L
zw7mIw3-T7_eU-1tZ=au?-yuIge|!F+{8Ra7^3UgA%)gTVNB&>=_wyg-KgoYqASlQx
za1=BZj4Sw{;M0Ox1+4`O3ln`xj0soLSgXxT0`f;l{!r3bz(+FWg^vu<%IXFNG%x
zPZi!Tk`$?nN{YG{)fNpadbjAKqECw^7fmgiUesJPzi466;-aNR%Zt_&Z7JGcbgbw^
z(W#=-MQ4ky7F{p8RrE*EUq$ykMb9nB!n4F!5-n;=iY3jWv6wCGEZLS0mV8U0#bxPY
zsj<{qhFBUbO_t#nkL6v(boT1rA$ms(d@*I3tCH(0;7?y&B%?zQf>9<&~|{%XB!{nPr~M%h?4wk_Be
zY7^K*HmNPf7Hf;QrP?xWc{Yd5Y3pb!v6b2?Y`tvNwi;W1+W=dm&1;)zn{I2iwb)v1
z3vG*S-+FATY-?@nZQt8|uR78+ZWoG*q7N?+t=AQ+Bey^*tgmD
z+E3Uo+ppPg*l*kK*zYj_r<XMCUr^C6Du#^Pcmi
zE7%p`igF2E5?7o{=}K~?xYArkm)Vu=a=6^Ca#vSZ4_CFTudCKI$W`YW;Tr9F&o#w0
z(>2>Q*VW=$;#%tZ+V!n#rE7!hN7vpGO-V*cyAoSTr;;uuH6;xt!%9Y$j464i1ec62
znOripWLnA0lG!D5N}5YNEhRfkZn~q~Ic}@Fle?R{!rj+B*xlg9?*F(yc7Nuc?Dn~5
zyT5g>a<6r7aBp&NasTN4$-UdX&;7Ieko&Cry!(Rta;c-VYiak=iqc-C%SzXmZYEo<|*4>cB<@j+1aw+$~%<1%e$2Klrvs^NHXxB^|~Es
JF&O2&{vY!I<}v^P
diff --git a/TabletDemo/TabletDemo/ConfigurableTableViewCell.swift b/TabletDemo/TabletDemo/ConfigurableTableViewCell.swift
index a83405f..07be0a2 100644
--- a/TabletDemo/TabletDemo/ConfigurableTableViewCell.swift
+++ b/TabletDemo/TabletDemo/ConfigurableTableViewCell.swift
@@ -29,6 +29,6 @@ class ConfigurableTableViewCell: UITableViewCell, ConfigurableCell {
@IBAction func buttonClicked(sender: UIButton) {
- Action(key: kConfigurableTableViewCellButtonClickedAction, sender: self).trigger()
+ Action(key: kConfigurableTableViewCellButtonClickedAction, sender: self).perform()
}
}
\ No newline at end of file
diff --git a/TabletDemo/TabletDemo/CustomTableActions.swift b/TabletDemo/TabletDemo/CustomTableActions.swift
index 3c55cd9..c586a75 100644
--- a/TabletDemo/TabletDemo/CustomTableActions.swift
+++ b/TabletDemo/TabletDemo/CustomTableActions.swift
@@ -8,3 +8,13 @@
import UIKit
import Foundation
+
+let kTableDirectorDidEndDisplayingCell = "enddisplaycell"
+
+extension TableDirector {
+
+ public func tableView(tableView: UITableView, didEndDisplayingCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
+
+ performAction(.custom(kTableDirectorDidEndDisplayingCell), cell: cell, indexPath: indexPath)
+ }
+}
\ No newline at end of file
diff --git a/TabletDemo/TabletDemo/ViewController.swift b/TabletDemo/TabletDemo/ViewController.swift
index 3638950..240941c 100644
--- a/TabletDemo/TabletDemo/ViewController.swift
+++ b/TabletDemo/TabletDemo/ViewController.swift
@@ -27,6 +27,10 @@ class ViewController: UIViewController {
return false
}
+ .action(kTableDirectorDidEndDisplayingCell) { data -> Void in
+
+ print("end display: \(data.indexPath)")
+ }
let configurableRowBuilder = TableConfigurableRowBuilder(items: ["5", "6", "7", "8"], estimatedRowHeight: 300)
.action(.click) { data -> Void in