UITableViewCell Swipe for Drawer

前端 未结 5 626
醉梦人生
醉梦人生 2021-02-04 15:31

This is really more of a curiosity than a hard coding question.

Both Facebook and Twitter both have a feature where swiping a UITableViewCell animates the cell off the s

相关标签:
5条回答
  • 2021-02-04 16:12

    2 ways to detect swipt action

    1. look at the willTransitionToState: method of UITableViewCell. this method will be invoked when you swipe at the cell.

    2. Custom swipe detection in a TableViewCell

    and then you can change your cell view easily.

    0 讨论(0)
  • 2021-02-04 16:21

    Here is a great open-source method for doing exactly this, based on the behavior of the Twitter app:

    https://github.com/thermogl/TISwipeableTableView

    0 讨论(0)
  • 2021-02-04 16:27

    This is a problem I have tried a couple of different solutions to. I really liked the behavior of Mailbox (mailboxapp.com). So I set out to achieve this. In the end I ended up with what I believe is a very simple solution: use a UIScrollView inside your cell. I have blog post that discusses and a sample app that demonstrates this behavior.

    0 讨论(0)
  • 2021-02-04 16:28

    You could just implement -tableView:willBeginEditingRowAtIndexPath: in your table view delegate.

    From the doc,

    This method is called when the user swipes horizontally across a row; ... This method gives the delegate an opportunity to adjust the application's user interface to editing mode.

    0 讨论(0)
  • 2021-02-04 16:30

    As a UITableViewCell is just a UIView, you can use this fact to basically do anything you like with it.

    To solve your problem, I'd attach a UISwipeGestureRecognizer to detect the swipe and then animate the view to a different state.

    For example, you could create a custom cell that has it's content view laying above the "actions view". Whenever there is a swipe, you use a UIView animation to move the content view aside and show the action view with a couple of buttons instead. In a custom UITableViewCell you could add a delegate protocol to have the pressed action and the cell being sent to the delegate, i.e. your controller. There you'd trigger what ever there is to trigger and then transition the cell out of the state.

    0 讨论(0)
提交回复
热议问题