2016-02-11 2 views
0

В моем приложении swift 2 у меня есть вид таблицы и кнопка действия строки (удалить), Я нашел способ изменить цвет фона этой кнопки, но теперь я хотел бы установить вместо текста «Удалить»Быстрое изображение для кнопок действия строки

Есть ли быстрое решение? вот мой код:

func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? { 
    let delete = UITableViewRowAction(style: .Default, title: "Delete") { (action, indexPath) in 

    // do some action 

    delete.backgroundColor = UIColor.redColor() 
    return [delete] 
} 

ответ

0

Попробуйте это:

yourBtn.setImage(UIImage(named: yourImage), forState: .Normal) 

обязательно установите кнопку «Custom» в Инспекторе Атрибутов, а также удалить текст.

+0

я не могу установить его на таможне. это не обычная кнопка. Я говорю о «пуговицах», которые будут видны, если вы проведите справа налево над строкой – GhostStack

+0

Простите об этом. Я проверил [документацию] (https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UITableViewRowAction_class/index.html#//apple_ref/occ/instp/UITableViewRowAction/style) и didn ' что-нибудь о добавлении изображений. Не могли бы вы создать собственный шрифт с изображением и импортировать его в проект? –

2

Это расширение UIColor достигнет вашей цели. Вам придется играть с размером в зависимости от вашего изображения.

extension UIColor { 
static func imageWithBackgroundColor(image: UIImage, bgColor: UIColor) -> UIColor { 
    let size = CGSize(width: 70, height: 70) 

    UIGraphicsBeginImageContextWithOptions(size, false, 0) 
    let context = UIGraphicsGetCurrentContext() 


    let rectangle = CGRect(x: 0, y: 0, width: size.width, height: size.height) 

    CGContextSetFillColorWithColor(context, bgColor.CGColor) 
    CGContextAddRect(context, rectangle) 
    CGContextDrawPath(context, .Fill) 

    CGContextDrawImage(context, rectangle, image.CGImage) 

    let img = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 

    return UIColor(patternImage: img) 

    } 
} 

использовать:

func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? { 
    let delete = UITableViewRowAction(style: .Default, title: "Delete") { (action, indexPath) in 

// do some action 
// 
if let buttonImage = UIImage(named: "myImage") { 
delete.backgroundColor = UIColor.imageWithBackgroundColor(image: buttonImage, bgColor: UIColor.blueColor()) 
    } 
return [delete] 
} 
+0

Да, это я тоже попробовал. но я использую параметр backgroundColor для изменения цвета фона. как я могу установить backgroundColor AND Image? или я могу сделать изображение с цветом фона. но какой размер я должен установить для этого изображения. – GhostStack

+0

thx, я поместил это расширение в свой класс. но как я могу применить это к моей кнопке удаления? – GhostStack

+0

Ответ обновлен, чтобы продемонстрировать, как применять –

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