 }
 
 @objc public protocol TableViewDraggerDataSource: class {
+    /// Return any cell if want to change the cell in drag.
     optional func dragger(dragger: TableViewDragger, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell?
+    /// Return the indexPath if want to change the indexPath to start drag.
     optional func dragger(dragger: TableViewDragger, indexPathForDragAtIndexPath indexPath: NSIndexPath) -> NSIndexPath
 }
 

        return targetTableView
    }
    
    public init(tableView: UITableView) {
        super.init()
        

    weak var targetTableView: UITableView?
    private var draggingVerticalMotion: UIScrollView.DragMotion?
    
    /// It will be `true` if want to hide the original cell.
    public var originCellHidden: Bool = true
    /// Zoom scale of cell in drag.
    public var cellZoomScale: CGFloat = 1
    /// Alpha of cell in drag.
    public var cellAlpha: CGFloat = 1
    /// Opacity of cell shadow in drag.
    public var cellShadowOpacity: Float = 0.4
    /// Velocity of auto scroll in drag.
    public var scrollVelocity: CGFloat = 1
    public weak var delegate: TableViewDraggerDelegate?
    public weak var dataSource: TableViewDraggerDataSource?
