Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UITableViewRowAction image for title

I made a custom UITableViewRowAction. Now I'd like to add an image instead of the text. I know that it's possible but don't know how to do it. Does someone of you knows how to do this in Swift and would like to help me? Thanks for your answers!

like image 340
user3592462 Avatar asked Apr 02 '15 20:04

user3592462


1 Answers

iOS 11.0

Swift

Apple introduced flexible way to declare row actions with great benefits.

extension ViewController: UITableViewDelegate {   func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {     let askAction = UIContextualAction(style: .normal, title: nil) { action, view, complete in       print("Ask!")       complete(true)     }      // here set your image and background color     askAction.image = IMAGE     askAction.backgroundColor = .darkGray      let blockAction = UIContextualAction(style: .destructive, title: "Block") { action, view, complete in       print("Block")       complete(true)     }      return UISwipeActionsConfiguration(actions: [blockAction, askAction])   }    func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {     cell.textLabel?.text = "row: \(indexPath.row)"   } } 

Example:

enter image description here

iOS 8.0

You need to set UIImage to backgroundColor of row action, concretely by:

Swift:

UIColor(patternImage: UIImage(named: "IMAGE_NAME")) 

Objective-C:

[UIColor colorWithPatternImage:[UIImage imageNamed:@"IMAGE_NAME"]]; 
like image 199
dimpiax Avatar answered Sep 28 '22 02:09

dimpiax