UITableViewRowAction com ícone e texto

Existem algumas perguntas semelhantes por aí, mas acho que deve haver uma resposta atualizada para o iOS 10, usando o Swift3, que não usa APIs privadas e não depende de você restringir seu ícone ao unicode emoji.

Eu tenho linhas de tabela com três ações agora:

func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
    let rename = UITableViewRowAction(style: .normal, title: "Rename") { (_, indexPath) in
        self.renameEntry(indexPath)
    }
    let locate = UITableViewRowAction(style: .normal, title: "Locate") { (_, indexPath) in
        self.locateEntry(indexPath)
    }
    locate.backgroundEffect = UIVisualEffect()
    let delete = UITableViewRowAction(style: .default, title: "Forget") { (_, indexPath) in
        self.deleteEntry(indexPath)
    }
    return [delete, locate, rename]
}

Mas, em vez de quadrados de cor com texto centralizado de tamanho e estilo, não da minha escolha, eu quero:

Tentei usar um backgroundColor, mas isso apenas colocou minha imagem em todo o botão e não mudou a posição ou a cor do texto. Então tem que ser algo mais do que apenas

theAction.backgroundColor = UIColor(patternImage: UIImage(named: "renameImage")!) 

Existe uma boa maneira de fazer isso?

questionAnswers(2)

yourAnswerToTheQuestion