1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- //
- // SwipeTableViewCellDelegate.swift
- //
- // Created by Jeremy Koch
- // Copyright © 2017 Jeremy Koch. All rights reserved.
- //
- import UIKit
- /**
- The `SwipeTableViewCellDelegate` protocol is adopted by an object that manages the display of action buttons when the cell is swiped.
- */
- public protocol SwipeTableViewCellDelegate: class {
-
- /**
- Asks the delegate for the actions to display in response to a swipe in the specified row.
-
- - parameter tableView: The table view object which owns the cell requesting this information.
-
- - parameter indexPath: The index path of the row.
-
- - parameter orientation: The side of the cell requesting this information.
-
- - returns: An array of `SwipeAction` objects representing the actions for the row. Each action you provide is used to create a button that the user can tap. Returning `nil` will prevent swiping for the supplied orientation.
- */
- func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) -> [SwipeAction]?
-
- /**
- Asks the delegate for the display options to be used while presenting the action buttons.
-
- - parameter tableView: The table view object which owns the cell requesting this information.
-
- - parameter indexPath: The index path of the row.
-
- - parameter orientation: The side of the cell requesting this information.
-
- - returns: A `SwipeOptions` instance which configures the behavior of the action buttons.
-
- - note: If not implemented, a default `SwipeOptions` instance is used.
- */
- func tableView(_ tableView: UITableView, editActionsOptionsForRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) -> SwipeOptions
-
- /**
- Tells the delegate that the table view is about to go into editing mode.
- - parameter tableView: The table view object providing this information.
-
- - parameter indexPath: The index path of the row.
-
- - parameter orientation: The side of the cell.
- */
- func tableView(_ tableView: UITableView, willBeginEditingRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation)
- /**
- Tells the delegate that the table view has left editing mode.
-
- - parameter tableView: The table view object providing this information.
-
- - parameter indexPath: The index path of the row.
-
- - parameter orientation: The side of the cell.
- */
- func tableView(_ tableView: UITableView, didEndEditingRowAt indexPath: IndexPath?, for orientation: SwipeActionsOrientation)
-
- /**
- Asks the delegate for visibile rectangle of the table view, which is used to ensure swipe actions are vertically centered within the visible portion of the cell.
-
- - parameter tableView: The table view object providing this information.
-
- - returns: The visible rectangle of the table view.
-
- - note: The returned rectange should be in the table view's own coordinate system. Returning `nil` will result in no vertical offset to be be calculated.
- */
- func visibleRect(for tableView: UITableView) -> CGRect?
- }
- /**
- Default implementation of `SwipeTableViewCellDelegate` methods
- */
- public extension SwipeTableViewCellDelegate {
- func tableView(_ tableView: UITableView, editActionsOptionsForRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) -> SwipeOptions {
- return SwipeOptions()
- }
-
- func tableView(_ tableView: UITableView, willBeginEditingRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) {}
-
- func tableView(_ tableView: UITableView, didEndEditingRowAt indexPath: IndexPath?, for orientation: SwipeActionsOrientation) {}
-
- func visibleRect(for tableView: UITableView) -> CGRect? {
- return nil
- }
- }
|