2016-03-11 2 views
2

Я уже искал этот вопрос, но то, что я нашел:Как я могу поместить изображение поверх заголовка UITableViewRowAction?

  1. Как поместить изображение в качестве фона строки действий.

  2. Как разместить символ Юникода \ u {юникод здесь}. Это сработало, но я не смог найти символ юникода для представления кнопки добавления или, возможно, кнопку удаления .

Но то, что я хочу, заключается в том, чтобы помещать пользовательский образ поверх заголовка действия строки. Например: мусор может с заголовком удалить под ним.

Я попробовал этот код тоже:

"\(UIImage(named: "trashImg"))" 

В заглавной строке строка действия, но Xcode, похоже, не считать последнего) как часть кода, но только как часть строки , Но в любом случае, я построил проект, и когда я протестировал, вместо названия, был огромный текст, в котором говорилось о некоторых вещах, таких как «optional: (64,) ....» и т. Д., Он не разбился.

Пожалуйста, помогите мне, многие приложения делают это, и я тоже хочу его на моем!

Заранее спасибо.

ответ

0

Вы помещаете изображение в строковый объект, который получит стандартное строковое представление этого изображения.

Возможно, этот пост может помочь. Похоже, что они переопределяют editActionsForRowAtIndexPath и устанавливают цвет фона с помощью шаблона. Custom table view row action (image)

Другой пост говоря в основном одно и то же UITableViewRowAction image for title

+0

Я уже пробовал это, но это просто делает изображение фоном, а не тем, что оно появляется. –

+0

Похоже, вам просто нужно создать пользовательский UITableViewCell и разместить собственную пользовательскую кнопку с изображением и заголовком справа от ячейки. Есть ли причина, по которой вы должны использовать editAction? – bhmahler

2

Вы должны изменить врезки в соответствии с вашими требованиями.

class TableViewRowAction: UITableViewRowAction 
{ 
    var image: UIImage? 

    func _setButton(button: UIButton) { 

     if let image = image, let titleLabel = button.titleLabel { 

      let labelString = NSString(string: titleLabel.text!) 
      let titleSize = labelString.sizeWithAttributes([NSFontAttributeName: titleLabel.font]) 
      button.tintColor = UIColor.whiteColor() 
      button.setImage(image.imageWithRenderingMode(.AlwaysTemplate), forState: .Normal) 
      button.imageEdgeInsets.right = -titleSize.width 
     } 
    } 
} 


func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]? { 


    let moreRowAction = TableViewRowAction(style: UITableViewRowActionStyle.Default, title: "  ") { action, indexPath in 
     // Action Block of more button. 
    } 

    moreRowAction.image = UIImage(named: "edit_white") 
    moreRowAction.backgroundColor = UIColor(red: 252/255, green: 65/255, blue: 75/255, alpha: 1.0) 



    let deleteRowAction = TableViewRowAction(style: UITableViewRowActionStyle.Default, title: "  ") { action, indexPath in 
      // Action Block of delete button. 

    } 

    deleteRowAction.backgroundColor = UIColor(red: 252/255, green: 65/255, blue: 75/255, alpha: 1.0) 
    deleteRowAction.image = UIImage(named: "delete_white") 

    return [deleteRowAction, moreRowAction] 

} 
+0

не работает в ios 11 –

Смежные вопросы