From 5a61eba23e82c2d61d09e25b5e0792e89f31fa3d Mon Sep 17 00:00:00 2001 From: Max Sokolov Date: Wed, 20 Jan 2016 19:27:49 +0300 Subject: [PATCH 1/5] improved reusableIdentifier --- Tablet/Tablet.swift | 2 +- .../UserInterfaceState.xcuserstate | Bin 16686 -> 16237 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Tablet/Tablet.swift b/Tablet/Tablet.swift index 8b2c35e..3eadbfb 100644 --- a/Tablet/Tablet.swift +++ b/Tablet/Tablet.swift @@ -108,7 +108,7 @@ public extension ConfigurableCell where Self: UITableViewCell { static func reusableIdentifier() -> String { - return NSStringFromClass(self).componentsSeparatedByString(".").last ?? "" + return String(self.dynamicType).componentsSeparatedByString(".").last ?? "" } } diff --git a/TabletDemo/TabletDemo.xcodeproj/project.xcworkspace/xcuserdata/max.xcuserdatad/UserInterfaceState.xcuserstate b/TabletDemo/TabletDemo.xcodeproj/project.xcworkspace/xcuserdata/max.xcuserdatad/UserInterfaceState.xcuserstate index 0cc2ecd71002bfe193efabe7e5dc3b219ad26fea..b479369a341d4c40f02a0500c312b5d0f9324612 100644 GIT binary patch delta 8935 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 delta 9101 zcmZ`;2V7HE+dnHLA&^NzCM1j`kdR2iaupGAg9F7aqM%X{6j4#soa?H4#k~rM)~(fA zty=49U$yR9wbj~MYqhQ}S8LVpgoxt%_T&D3x%ZyuJkR;xXP?9U30o(^c`BU1OPsHX zftB;qlRd*hDHs9Dz(_C(j0WXk3>XV400$<5X<$0=f`woaSPYhf&0q`I3bujm;6tzj z>;xZygWwQ2432=K;B)W=_zyS%E`YDW6>uH=2yTE|;4ZiaegnUQC*Udg2LcEof&wUl zVkn0S7y^yZ1S32!5=OxWFdn*~8z#VH*c844Q(*>d3ERPJ*adclIj|edh5cY2%!h+v zF)V>)a2y;DC%~!jJva@{gUewhTn9J8t#Ak233tQ&@E|-2kHORMD|iK7h2O!O@Mri3 z{1ZNekKkhzfcQv&geVYsL?{T!kpgLu7Db_GWJY$>0L7zZ)D)$oHmC>ciF%>ls1NFk za?ub}godJGRDy<~GBgs6LGPhyXgZpK=AwCMK3arUpp|G1`T(s*8_*WC741MDqupo^ z`ULGo`_MUb9({!_ps&$IbO~KX-O59i|oJP;4ULvb-K!4-HM9*-wr52l#IQ}KIv8lHu# z@jCng-h?;f?f65y3xACF;(hotd=MYSpX1~B1U`+=;4Anl{tjQmcko?&58uZR@UQqc z{5yV*U*MMnkRTH5Az~sSQX(UAq9EbKNK7PxM3N{HP0Yka+$4b{k|dH$Qb z3-Xc&c!Ve8DS0ZMmZ#%|^NhSGUNkR;7t3?-oIJO82yO;by_@kwUJlKn**o22ElkLv z8FU(*OMjquXcWCqAJFVRZCYex^*yM$>^-SQH6u@*s%95PY2_? z<5e1OYQPjvFGlZ@*S~#U|AL~gfDi-%5$FvD0`msY2lNHGpdZKs{lNf`4+^M`>ZyT- z(Qs;{CK^E_H-Jnq7({{A>?#67K`|&{K%yDK40d&+!)Yn4pxF$D4?~NB{v!tsDtLuV z&m-UpSS3RF`kZ9wCxi@Iq7P5c1VfVE&9_yDX28^A`IM3ZSV+JUy9 z9cd?qPN3ct3wD9MKwbkr2D`x?@Ci+!4QV6VxCZP4`32XGO%)__akGWdq3(^j;N z?}M*`?-=WPrj;Lhw#hFjE-M^ZSWw!vO>urfIs2Ln+OjwEhoXWq$B5B|1IwgLwhzcp z;HG!II2>1lpS|nE5d&Vyx$TofTl?5@{A_hA+^?my^-+5IDJ=?ymV5>NV5|QL9)d^U zaj*Q60V9Vp2wgk3?@?Abv|vP8-q2yRJ>fxo?5l%bK}8A!>M zDq7@pY4M7)eaV14pKAOdpMw|PCK5XWFTL+doL-)`u?J!xf&@H<0pMY`tZYaByb%Sx z*uAu%h%t^Tpn!I!?Q7Yg5C(S5%4T4yp%A3_$AVxmTQMs;b7YxMD{m~Z1_t?Tao!g( zP{KS4N@-Ur&Xp=FDjN6?!}Os9jG%x3|b2Cx-uTMb*oHgqr@ zN{7`=ZVx*Ec{R+0S+tP8TMawHPIL$@ViC}SZ}N)t8V~Fad%ZQKH|#@;X$ehz^VyNj zCJqL^Kfg`-!vTF?TO_TtG;hor*dHW;l)6<5AWLACl{C9r*uEo5WhSUQT1X5fFaT<Lh2!XZ7vX%kfRVg#AzZ}B zv*1$JTPy=VdYgn~c_!1TbbP(ghb!Ppf9TUmbb>$Z{oYu`!X8$`HL!+yD5czgg}pz@ z>*BOt1iu=B+iF91;@hFy>FwC{N9kLL;U0#0DQl)4gCFS>_DNGIGng+tKJ|si9QKJ~ zzX1=y!?{umt3i=LS1|VkHartJKsq< zoo4$NIODV5S$K}lptIlD?*hE^mVqwAZ|F=qi>7vrY{qS`wMU)YYw-GiO})XU&Y`K1 z&5A1l%YXpXO}z#0`C{!h`~}{Dcj-JjpDv)@8h9T*fWN}u=t8=Io}p)1Tx^v@dNTz* z8^I^=1u(CJPvKwiZ}<%U1E14HbTM5*m(pc)`8xO#0T!y62qQvQ&}tU0QM87xWg@N% zLcL9e@m`%U%3CZncr&CjuTUth(+3Jh5+JWaV!E;lN$ILO-^8d)$RZG^9+zQT<{ zkcz1eDe3Ae6iVNx*>9!g+RBe~C>)sAAU!gG+q9Ba(bm2fcCi=VmEFX)OV`lUx+UX~!ykuURbZG0xlqFEd5Lu0n|Ue7mx27y8q*J6$1QpXHDd&ZrF9ib zqwC)gTA-Fb!g|`Gsuo;bq@%W|6H_&6huWh|l!ZE=j&vj4L^sndsdOvdwvK5zo4I!; z%0b$YQ_K<{D@cXKgIF#sV@1jvE$ZhD5^3s^F6xI0 zm?NM()E^B%`Se4&gYKjs)u4fB5QsvBbQk@YrQA=L6)%c5d(dz+q6(GL-E>bq#n;9I z8ihu)D*vj)WEYgJVI$=rg%uTb+);vNq7l_-7Me{D(9h@|Z@=J(ShN7PtwLUUhz_flT)<Oiy~B2RHPfRlrq)R-^Y(C90xF>3`^Pdg670K{aSC>jyrkU(lA_ z;$6m}tT~h7S9t|(tj#OOe0imNm%*$(%{MY-);1()RxRy-k5)Idvv%l9-%zeJtVzDF zd-TdBCQYt1n zJpGDZpkLFA^b);HzhUhwI);v;6YPExonpUdm^XY&uh6UP{vEx>e!pk-ipg+)`=pp@) z-lVr*Col8_{arsJ1)^u@A9{oS#H!D1S)>+2OzP7y4+qen=`BV+Aq&gGA}oH3EMeTg z__+OBg05wSMTKRBEJrXiyuye>a40ZWV*lcI5>}k^O?@(7%pKYyU!16dqN zvygt%qTzP6?btuL(r(`0Bbs{mCuqIDTKJ7{7VZMfYjFqM5qH9!aW;KHUvdy|5ONT$ z#a(d@?uNVL9vs9R7gM1DKvgKXYd4V{O)gRoSgT#B%niPTu<9B@!3OOjK!b3PH zWb;%pb{8IoN3w{RUA}vP|HC* z2g5jMS zH~_Epsgi@CZyITSXnj?0^wU`|b*k0%r!J+Uo+Y;V$vW?g@C;SG@sIrDhFoc@+Wvfw zTUnp{iJu&vE6u8v`p_t^FZF<*Y}%)sq6@e?9*rM(&7JKp^f;r02B`N`2< zX+n?sY^VI=mRxCiEt+|eYR_5xH8bM>Y{KwGdGNpo>N^?{hQ9U>iKoex2_2 z_qk1bu?-%}Q7*UJx4&bz6yNrsPV^u6$-lyVivMC_pK&megGoNP$#rloa~k*XZ82Q# zq$DOVIX;O=e=U$e62Jr!L@byP!r(OIU?UDT=3tW=!Y2ZdNdh_8l!Nd1q^A0@<}f`p zUaw2&%`*nKjsB!-~Zy zrh5acYLO&2jIXl+X-`PXOis~)}4brUI|-Z(RzB4Tptf2_ZbRPTqe=ihCS(jqaVd0K+pZ;*q>5CNHKc}vEcsS&(8Iw=9DMI} zQ6wLbO+Jb1$p*5KgCjXOii4xqkj-QZ*~-Ck4ziCQ>ucrA-n{rQ?{WJS&u+5s-&ppO zPssrej^p5X4o+a^X~tT7-(M$V*XAP&i}LF};wU-xZ~Vu}3GyWeDF-$7OJh=))<01A|2lpp(m-W9)LqC&SWFz^7+^N;mG!9N@s^Z`b z4$fRhHbVn>Kz?QC4a^YbG@paBIJQB{XBSgm1oO8vcH%Uuuxw0cZ& zk-vS1D893r+SIu@yQ~!lXZsQUL!SG=6jYOcKuX^(CHZ+{jCp0o`1nQ*lBIWQTO=N2 z?IsAO=vB+aeO_h+Ul53tkk!|eR~F3UF( z62^|QBiJ#vnI+9wVrNOPDM=-1B%K{%w_*p_?MP1+a z%6XG`vv>=6%XrniZM>trFL=jzCwM1$r+H_2=Xn=+7kQU?_dUE{dB5}i#`9XX!U&@#BL-;Dbny=;S`A&X3 z-_1|tC-WQf8}pm;Q~7E9bbb!Mgg>6YkpDh^7ymN<9{&mdsemUC2m%Gc0*OE-XeekY zXd`GR@MH-(3OWnA3GxL)1VaTSg5iR4!C1jK!2|&nY!)09Tov3D+!ovs+!OpI6bJ)_ zK|--mDwGRDgeqaQ&?1Zx+JtdJr!ZdV7A6Xt3$uiU!tugo!rj6n!f%8>3x5^cCBbdjdZVJRf*7@S%t=iWEhQETR~Z zO%x}}6%7`Zh=z+sh(?M=izbWaiWZ5Mh?a>~h}MfXigt?5i!O;C2jL)I5I;y5Bn>hI zg$J2}B7+=3je}YRbqdN3>KfE7XkpN*pq)W`f=&lr3P!>FU{`QPaB*-&@T6eR+~E1a z-rz;StAlHTHw5npJ{Ei?_;T=-;O~OJ4}KE-RLm2L#Zs|c93obU!^I|Xq&Qk^5yyyK z;wIu&;#_f&c%*o=c#OD0JYGCiJWV`9JWD)BJWsq;{H6GTgfEdwWDBVEKQL%ls1;OmbQ~-N;^tBOS?!1ONUEG zNz0{UrQ@X2rE{e7qzj}=q|2l$q^qPKNViKrl^&KJm3|@pQtCM+JtI9Qy&=6PeJ+#B z?6Ov}HnMiIOj!rnVA*h4xoooR1KCd5F4=C`C$fFAv$FHD3$lx{%d&4}H)MBY_hb)b zzsdfPy_7>amhibBSORD_HV@q}<8lR~D1EC^W`vN&XEh-Z1o%8=C|l_9%BepUu5W0Wb%w#shG zp32_JTxFhefO4dAqH>DzJ>?ALEae>KGUYnu7UeeOhsvGGy~_Q{1ImNS!^$Jd)5MdZHC3gm(o|WhPO5BGj;gyy z)l)S{^{%Q&RiYZM8lj@9*{Zp!`6{n!k!p!*nQEPCy=tRsvudkqyK0B(Bh>}fgHSM81ZYR>}oLiJ+xQuT86O7&6oP4z?da}ClEO@KzAQD~wy z4o$qqtx43h)wI`SX*y~;Yr1HrY36H|YgTGjYbrI>ni|cAnw^?mn%$buG>0^&HD@*F zH5WABY3^w5X&z{P(>&L_)Iu%RMrq@;EwnAQh1yZt>Drmv+1k0<`5vuTyGXl4yG*-6 zyH&egyF>et_G9fH?OyGE?E&pU?P2YA+Iu>n3(-aD8tXdfhUlnniLO#trCX!htlOg7 zrrV?YM7K|ORQI{=Kf1HJbGol|Kj?1gZt8C9?&$969_jwkz0d=8sz&rOy-KgvYxUuJ zlRi=(txwUX={;HcY<*XKH+^q?UwuD)fBi8182wcJO#N*AT>V1*V*OJ6a{U(lUj1kK zL;557WBL>Nlls&8-wa|yJ41IvfuYPW%1~|?YZzykV4#MHhWQ4sVUb~}VTEC}p~_HW zSZDau@U7vN;YC<{SbA9Bupwc?!b-!+!p4MEgiQ#ep0K@PH^P1k`!noO*we7T!~O{u zhKs_3!zJN`;iJO2@JZoQ!l#AL44)IeEPQ47`{C8$Ys1%vZw&t;{KxReM!hl7_>M8n z*uvP-*vZ(#IKoJclZ;c1(~Yx?bBr5}JB2KUmLF(uN!|d-ZI`X-ZMTi zVUxks!sN*`^)wAI4K@ui6`O{cDoj&NUeiL;BGVF6jcK=Oujy0MLDLb_7pCK;lcqDK z^QN1o+orpw2d3Xm4^2-@f1931fCv;JiI7DoB2*FC5&a_iN90Egir5!%EaF7O$%r$N zib!K*L}XN?C31M=gh(1WF>*@e#mF0xHzRLF-tk1IL}x^|if$9#K6+F1p6I>N`=dWI zhnl0zX0z37GY>aUFu!M>Zk}nLZJujhYF=SpZLT!0F|RdmHSaTjZa#0mV!md+ZvM%9 z%lw=9PxE8*Q}Z+PbBo%NYRR;Wv`nzfuq?DxSvFcWTee!ZTXtCXSq@kZS&mq~upG0T zvv{spZd(4ZJhQy8LMyTItx~JPshV?K)c zIObf;)7XGmM{IIzi`b5_ePRd37RDCEmUv=IV=H1O#B#BdVyDJVi(M0YBKEQk*n~E@ zE!<|c*=!D5ye+}j)Yiwzaio+j`pyZKbx6wsKpAZG!DR+YH-m+g#fM+d|ta z+eX_*wnMg~w*S~p*iPBb*uJyfwmq^3*oF2WyTmTHEA48#&K_oW+FkYpyC=!s(B8zJ zYHx0DVQ*>gXzyh&v(L0w+IQJc*?+b_i)#{>9@jRmOI%*u;J6`i#c{*q%Ht~HCdARW ziE+E)&c^)`_eb1w2XJ6VfJ5jAa)=!|M}#BVVRhIXE=Qsx#nIT&)G^Sp&~eal+;P@% z#c|v5tK$#HBga$6ODFO;c}{^d(5Y}LojRx0>2$iBiOv*fs!`a%|)|u_happOT zog&kN# zyN0_)xJJ3gxGG%ZT^?7B>$vMrx4~_8JKV|cM(%XCr>(n#yRW;SyU<)o5&Tikoy``riJhY~~y>I7|qJ|R4zAfYs&EMZi_n1oXa z-zHp5xR!7|(Uq8*n3kBH*fMc-;- Date: Wed, 20 Jan 2016 19:47:47 +0300 Subject: [PATCH 2/5] estimatedRowHeight now is not optional --- Tablet/TableRowBuilder.swift | 4 ++-- .../TabletDemo.xcodeproj/project.pbxproj | 4 ++++ .../UserInterfaceState.xcuserstate | Bin 16237 -> 16543 bytes .../TabletDemo/TableDirectorExtensions.swift | 18 ++++++++++++++++++ TabletDemo/TabletDemo/ViewController.swift | 6 +++--- 5 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 TabletDemo/TabletDemo/TableDirectorExtensions.swift diff --git a/Tablet/TableRowBuilder.swift b/Tablet/TableRowBuilder.swift index 8579f68..33b2439 100644 --- a/Tablet/TableRowBuilder.swift +++ b/Tablet/TableRowBuilder.swift @@ -56,14 +56,14 @@ public class TableRowBuilder : RowBuilder { } } - public init(item: I, id: String? = nil, estimatedRowHeight: CGFloat = UITableViewAutomaticDimension) { + public init(item: I, id: String? = nil, estimatedRowHeight: CGFloat) { reusableIdentifier = id ?? NSStringFromClass(C).componentsSeparatedByString(".").last ?? "" self.estimatedRowHeight = estimatedRowHeight items.append(item) } - public init(items: [I]? = nil, id: String? = nil, estimatedRowHeight: CGFloat = UITableViewAutomaticDimension) { + public init(items: [I]? = nil, id: String? = nil, estimatedRowHeight: CGFloat) { reusableIdentifier = id ?? NSStringFromClass(C).componentsSeparatedByString(".").last ?? "" self.estimatedRowHeight = estimatedRowHeight diff --git a/TabletDemo/TabletDemo.xcodeproj/project.pbxproj b/TabletDemo/TabletDemo.xcodeproj/project.pbxproj index c043d8b..5c0c483 100644 --- a/TabletDemo/TabletDemo.xcodeproj/project.pbxproj +++ b/TabletDemo/TabletDemo.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 504740931C4FEEC50012132B /* TableDirectorExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504740921C4FEEC50012132B /* TableDirectorExtensions.swift */; }; 508B71841BF48DD300272920 /* TableSectionBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 508B71831BF48DD300272920 /* TableSectionBuilder.swift */; }; 508B71861BF48E0D00272920 /* TableRowBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 508B71851BF48E0D00272920 /* TableRowBuilder.swift */; }; DA1BCD0F1BF5472C00CC0479 /* TableDirector.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA1BCD0E1BF5472C00CC0479 /* TableDirector.swift */; }; @@ -24,6 +25,7 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 504740921C4FEEC50012132B /* TableDirectorExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableDirectorExtensions.swift; sourceTree = ""; }; 508B71831BF48DD300272920 /* TableSectionBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableSectionBuilder.swift; sourceTree = ""; }; 508B71851BF48E0D00272920 /* TableRowBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableRowBuilder.swift; sourceTree = ""; }; DA1BCD0E1BF5472C00CC0479 /* TableDirector.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableDirector.swift; sourceTree = ""; }; @@ -73,6 +75,7 @@ DAB7EB291BEF787300D2AD5E /* TabletDemo */ = { isa = PBXGroup; children = ( + 504740921C4FEEC50012132B /* TableDirectorExtensions.swift */, DAB7EB2A1BEF787300D2AD5E /* AppDelegate.swift */, DAB7EB2C1BEF787300D2AD5E /* ViewController.swift */, DAB7EB3F1BEFD07E00D2AD5E /* ConfigurableTableViewCell.swift */, @@ -178,6 +181,7 @@ DAED08F11C14DE7E006C04D8 /* MyTableViewCell.swift in Sources */, DAF003961C14DC0C0028C3D6 /* MyNibTableViewCell.swift in Sources */, 508B71861BF48E0D00272920 /* TableRowBuilder.swift in Sources */, + 504740931C4FEEC50012132B /* TableDirectorExtensions.swift in Sources */, DA1BCD0F1BF5472C00CC0479 /* TableDirector.swift in Sources */, DAB7EB401BEFD07E00D2AD5E /* ConfigurableTableViewCell.swift in Sources */, DAB7EB2B1BEF787300D2AD5E /* AppDelegate.swift in Sources */, diff --git a/TabletDemo/TabletDemo.xcodeproj/project.xcworkspace/xcuserdata/max.xcuserdatad/UserInterfaceState.xcuserstate b/TabletDemo/TabletDemo.xcodeproj/project.xcworkspace/xcuserdata/max.xcuserdatad/UserInterfaceState.xcuserstate index b479369a341d4c40f02a0500c312b5d0f9324612..f1039ba28a0173f795d6ad6540abefa6ebbd2ed2 100644 GIT binary patch delta 7168 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: [1, 2, 3, 4], id: "cell") + let rowBuilder = TableRowBuilder(items: [1, 2, 3, 4], id: "cell", estimatedRowHeight: 44) .action(.configure) { data in data.cell?.textLabel?.text = "\(data.item)" @@ -54,12 +54,12 @@ class ViewController: UIViewController { data.cell!.contentLabel.text = "Tablet is a super lightweight yet powerful generic library that handles a complexity of UITableView's datasource and delegate methods in a Swift environment. Tablet's goal is to provide an easiest way to create complex table views. With Tablet you don't have to write a messy code of switch or if statements when you deal with bunch of different cells in different sections." } - let myRowBuilder = TableRowBuilder(item: 0, id: "cellll") + let myRowBuilder = TableRowBuilder(item: 0, id: "cellll", estimatedRowHeight: 44) let sectionBuilder = TableSectionBuilder(headerTitle: "Tablet", footerTitle: "Deal with table view like a boss.", rowBuilders: [rowBuilder, configurableRowBuilder, myRowBuilder]) tableDirector += sectionBuilder - sectionBuilder.appendRowBuilder(TableRowBuilder(item: 0)) + sectionBuilder.appendRowBuilder(TableRowBuilder(item: 0, estimatedRowHeight: 44)) } } \ No newline at end of file From 9b420278a9c037b52812b09e253745752cc48cf0 Mon Sep 17 00:00:00 2001 From: Max Sokolov Date: Wed, 20 Jan 2016 19:51:06 +0300 Subject: [PATCH 3/5] estimatedRowHeight is not optional --- Tablet/TableRowBuilder.swift | 6 +++--- .../UserInterfaceState.xcuserstate | Bin 16543 -> 16506 bytes .../TabletDemo/TableDirectorExtensions.swift | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Tablet/TableRowBuilder.swift b/Tablet/TableRowBuilder.swift index 33b2439..d3a3b8b 100644 --- a/Tablet/TableRowBuilder.swift +++ b/Tablet/TableRowBuilder.swift @@ -28,7 +28,7 @@ internal enum ActionHandler { case actionBlock((data: ActionData) -> Void) case actionReturnBlock((data: ActionData) -> AnyObject?) - func invoke(data: ActionData) -> AnyObject? { + func invoke(data: ActionData) -> ReturnValue { switch (self) { case .actionBlock(let closure): @@ -129,11 +129,11 @@ public class TableRowBuilder : RowBuilder { */ public class TableConfigurableRowBuilder : TableRowBuilder { - public init(item: I, estimatedRowHeight: CGFloat = UITableViewAutomaticDimension) { + public init(item: I, estimatedRowHeight: CGFloat) { super.init(item: item, id: C.reusableIdentifier(), estimatedRowHeight: estimatedRowHeight) } - public init(items: [I]? = nil, estimatedRowHeight: CGFloat = UITableViewAutomaticDimension) { + public init(items: [I]? = nil, estimatedRowHeight: CGFloat) { super.init(items: items, id: C.reusableIdentifier(), estimatedRowHeight: estimatedRowHeight) } diff --git a/TabletDemo/TabletDemo.xcodeproj/project.xcworkspace/xcuserdata/max.xcuserdatad/UserInterfaceState.xcuserstate b/TabletDemo/TabletDemo.xcodeproj/project.xcworkspace/xcuserdata/max.xcuserdatad/UserInterfaceState.xcuserstate index f1039ba28a0173f795d6ad6540abefa6ebbd2ed2..fc56dad5d621d005ca862ceb6d6bb7742e1bb056 100644 GIT binary patch delta 7056 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 MQ2+h#Z|3Fy1Ki6bx&QzG diff --git a/TabletDemo/TabletDemo/TableDirectorExtensions.swift b/TabletDemo/TabletDemo/TableDirectorExtensions.swift index 0952a03..e4a6dcd 100644 --- a/TabletDemo/TabletDemo/TableDirectorExtensions.swift +++ b/TabletDemo/TabletDemo/TableDirectorExtensions.swift @@ -13,6 +13,6 @@ extension TableDirector { public func scrollViewDidEndDecelerating(scrollView: UIScrollView) { - invokeAction(.custom(""), cell: nil, indexPath: nil) + //invokeAction(.custom(""), cell: nil, indexPath: nil) } } \ No newline at end of file From 30159e363b4e0e6472bd3067c0375c76edae5c13 Mon Sep 17 00:00:00 2001 From: Max Sokolov Date: Thu, 18 Feb 2016 11:39:08 +0300 Subject: [PATCH 4/5] implement forwardingTargetForSelector for scroll view delegate --- Tablet/TableDirector.swift | 9 +++++++++ .../TabletDemo.xcodeproj/project.pbxproj | 4 ---- .../UserInterfaceState.xcuserstate | Bin 16506 -> 17115 bytes .../TabletDemo/TableDirectorExtensions.swift | 18 ------------------ TabletDemo/TabletDemo/ViewController.swift | 7 ++++++- 5 files changed, 15 insertions(+), 23 deletions(-) delete mode 100644 TabletDemo/TabletDemo/TableDirectorExtensions.swift diff --git a/Tablet/TableDirector.swift b/Tablet/TableDirector.swift index a88b27a..fe20c63 100644 --- a/Tablet/TableDirector.swift +++ b/Tablet/TableDirector.swift @@ -28,6 +28,7 @@ public class TableDirector: NSObject, UITableViewDataSource, UITableViewDelegate private weak var tableView: UITableView! private var sections = [TableSectionBuilder]() + public var scrollDelegate: UIScrollViewDelegate? public init(tableView: UITableView) { super.init() @@ -73,6 +74,14 @@ public class TableDirector: NSObject, UITableViewDataSource, UITableViewDelegate builder.0.invokeAction(.custom(action.key), cell: action.cell, indexPath: indexPath, itemIndex: builder.1, userInfo: action.userInfo) } } + + public override func respondsToSelector(selector: Selector) -> Bool { + return super.respondsToSelector(selector) || scrollDelegate?.respondsToSelector(selector) == true + } + + public override func forwardingTargetForSelector(selector: Selector) -> AnyObject? { + return scrollDelegate?.respondsToSelector(selector) == true ? scrollDelegate : super.forwardingTargetForSelector(selector) + } } public extension TableDirector { diff --git a/TabletDemo/TabletDemo.xcodeproj/project.pbxproj b/TabletDemo/TabletDemo.xcodeproj/project.pbxproj index 5c0c483..c043d8b 100644 --- a/TabletDemo/TabletDemo.xcodeproj/project.pbxproj +++ b/TabletDemo/TabletDemo.xcodeproj/project.pbxproj @@ -7,7 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 504740931C4FEEC50012132B /* TableDirectorExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504740921C4FEEC50012132B /* TableDirectorExtensions.swift */; }; 508B71841BF48DD300272920 /* TableSectionBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 508B71831BF48DD300272920 /* TableSectionBuilder.swift */; }; 508B71861BF48E0D00272920 /* TableRowBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 508B71851BF48E0D00272920 /* TableRowBuilder.swift */; }; DA1BCD0F1BF5472C00CC0479 /* TableDirector.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA1BCD0E1BF5472C00CC0479 /* TableDirector.swift */; }; @@ -25,7 +24,6 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 504740921C4FEEC50012132B /* TableDirectorExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableDirectorExtensions.swift; sourceTree = ""; }; 508B71831BF48DD300272920 /* TableSectionBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableSectionBuilder.swift; sourceTree = ""; }; 508B71851BF48E0D00272920 /* TableRowBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableRowBuilder.swift; sourceTree = ""; }; DA1BCD0E1BF5472C00CC0479 /* TableDirector.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableDirector.swift; sourceTree = ""; }; @@ -75,7 +73,6 @@ DAB7EB291BEF787300D2AD5E /* TabletDemo */ = { isa = PBXGroup; children = ( - 504740921C4FEEC50012132B /* TableDirectorExtensions.swift */, DAB7EB2A1BEF787300D2AD5E /* AppDelegate.swift */, DAB7EB2C1BEF787300D2AD5E /* ViewController.swift */, DAB7EB3F1BEFD07E00D2AD5E /* ConfigurableTableViewCell.swift */, @@ -181,7 +178,6 @@ DAED08F11C14DE7E006C04D8 /* MyTableViewCell.swift in Sources */, DAF003961C14DC0C0028C3D6 /* MyNibTableViewCell.swift in Sources */, 508B71861BF48E0D00272920 /* TableRowBuilder.swift in Sources */, - 504740931C4FEEC50012132B /* TableDirectorExtensions.swift in Sources */, DA1BCD0F1BF5472C00CC0479 /* TableDirector.swift in Sources */, DAB7EB401BEFD07E00D2AD5E /* ConfigurableTableViewCell.swift in Sources */, DAB7EB2B1BEF787300D2AD5E /* AppDelegate.swift in Sources */, diff --git a/TabletDemo/TabletDemo.xcodeproj/project.xcworkspace/xcuserdata/max.xcuserdatad/UserInterfaceState.xcuserstate b/TabletDemo/TabletDemo.xcodeproj/project.xcworkspace/xcuserdata/max.xcuserdatad/UserInterfaceState.xcuserstate index fc56dad5d621d005ca862ceb6d6bb7742e1bb056..4f0dc39c1361374826931aa7b6a38311cdb61ddc 100644 GIT binary patch delta 9597 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 fvyNq5%K9h)6=uzJqnk^0*49cMbDxnI- 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 R>>oYh4_6quHvMMq`9G^t-(>&* diff --git a/TabletDemo/TabletDemo/TableDirectorExtensions.swift b/TabletDemo/TabletDemo/TableDirectorExtensions.swift deleted file mode 100644 index e4a6dcd..0000000 --- a/TabletDemo/TabletDemo/TableDirectorExtensions.swift +++ /dev/null @@ -1,18 +0,0 @@ -// -// TableDirectorExtensions.swift -// TabletDemo -// -// Created by Max Sokolov on 20/01/16. -// Copyright © 2016 Tablet. All rights reserved. -// - -import Foundation -import UIKit - -extension TableDirector { - - public func scrollViewDidEndDecelerating(scrollView: UIScrollView) { - - //invokeAction(.custom(""), cell: nil, indexPath: nil) - } -} \ No newline at end of file diff --git a/TabletDemo/TabletDemo/ViewController.swift b/TabletDemo/TabletDemo/ViewController.swift index 19aeabf..50d971f 100644 --- a/TabletDemo/TabletDemo/ViewController.swift +++ b/TabletDemo/TabletDemo/ViewController.swift @@ -8,7 +8,7 @@ import UIKit -class ViewController: UIViewController { +class ViewController: UIViewController, UIScrollViewDelegate { @IBOutlet weak var tableView: UITableView! var tableDirector: TableDirector! @@ -17,6 +17,7 @@ class ViewController: UIViewController { super.viewDidLoad() tableDirector = TableDirector(tableView: tableView) + tableDirector.scrollDelegate = self let rowBuilder = TableRowBuilder(items: [1, 2, 3, 4], id: "cell", estimatedRowHeight: 44) .action(.configure) { data in @@ -62,4 +63,8 @@ class ViewController: UIViewController { sectionBuilder.appendRowBuilder(TableRowBuilder(item: 0, estimatedRowHeight: 44)) } + + func scrollViewWillBeginDragging(scrollView: UIScrollView) { + print("begin dragging") + } } \ No newline at end of file From f832d10052c3be0a81c9294e4f26a9b34a357c30 Mon Sep 17 00:00:00 2001 From: Max Sokolov Date: Thu, 18 Feb 2016 11:40:16 +0300 Subject: [PATCH 5/5] bump podspec --- README.md | 2 +- Tablet.podspec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 16db304..9ee6c5c 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@

Swift 2 compatible Platform iOS -CocoaPods compatible +CocoaPods compatible License: MIT

diff --git a/Tablet.podspec b/Tablet.podspec index 7cc2a08..be5eb30 100644 --- a/Tablet.podspec +++ b/Tablet.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'Tablet' - s.version = '0.2.1' + s.version = '0.2.3' s.homepage = 'https://github.com/maxsokolov/tablet' s.summary = 'Powerful type-safe tool for UITableView. Swift 2.0 is required.'