From 30159e363b4e0e6472bd3067c0375c76edae5c13 Mon Sep 17 00:00:00 2001 From: Max Sokolov Date: Thu, 18 Feb 2016 11:39:08 +0300 Subject: [PATCH] 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