In iOS 8, how to add Row Action Buttons to the left side of a UITableViewCell

后端 未结 3 1999
醉梦人生
醉梦人生 2020-12-21 04:25

Apple shows these images on their product page for iOS 8. I am interested in adding buttons to the left side of a table row as shown in the first image. Is this a p

相关标签:
3条回答
  • 2020-12-21 05:05
    func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]{
    
        let ackAction:UITableViewRowAction = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "Himanshu", handler: myFunction)
        ackAction.backgroundColor = UIColor.orangeColor()
    
        return [ackAction]
    }
    

    edit: fixed code indentation

    0 讨论(0)
  • 2020-12-21 05:06

    It's a public API to a point in iOS8, as explained in answers here Swipe to Delete and the "More" button (like in Mail app on iOS 7)

    There are also several implementations already on Github, such as this one by MortimerGoro (part of the answer above).

    If you want to do it yourself, you can use a custom UISCrollView or add subviews to your cell's contentView. Add gesture recognizers as appropriate to handle different swipe directions. Essentially you reposition the button subviews with negative values as the gesture progresses, which gives the appearance of uncovering static buttons. In reality, everything is moving, just in opposite directions.

    Ray Wenderlich.com has a very in-depth tutorial for how to recreate the effect. It's also a right-sided button approach, but the concepts are identical - just swap the direction of the swipe gesture & where you place the button subviews.

    0 讨论(0)
  • 2020-12-21 05:10

    You can use the tableview delegate method: leadingSwipeActionsConfigurationForRowAt

    See Swipe Actions since iOS 11: Table Swipe Actions

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