在编辑模式下将图像添加到UITableViewCell并不能正确对齐

时间:2017-09-28 20:48:45

标签: ios swift image uitableview edit

我正在使用下面的代码来尝试看看这个:

enter image description here

但它看起来像:

enter image description here

func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
    let deleteRowAction = UITableViewRowAction(style: UITableViewRowActionStyle.default, title: "Delete") { action, indexPath in

    }
    deleteRowAction.backgroundColor = UIColor.red
    deleteRowAction.backgroundColor = UIColor(patternImage: UIImage(named: "DeleteIcon.png")!)
    return [deleteRowAction]
    }

我做错了什么?

2 个答案:

答案 0 :(得分:0)

只需改变:

deleteRowAction.backgroundColor = UIColor(patternImage: UIImage(named: "DeleteIcon.png")!)

为:

deleteRowAction.image = UIImage(named: "DeleteIcon.png")

它应该有用。

答案 1 :(得分:0)

在下面的IOS 11中,editActionsForRowAt方法在背景中显示模式图像,如果图像小于单元格大小,则重复模式图像。 这就是使用第三方实现此SwipeCellKit

的原因

如果你在IOS 11中实现它,那么使用这个UITableViewDelegate函数,它完美地工作示例:

 func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {

        let deleteAction = UIContextualAction(style: .normal, title:  "", handler: { (ac:UIContextualAction, view:UIView, success:(Bool) -> Void) in
            // Call edit action

            // Reset state
            success(true)
        })
        deleteAction.image = #imageLiteral(resourceName: "Delete")
        deleteAction.backgroundColor = .red
        let value = UISwipeActionsConfiguration(actions: [deleteAction])
        value.performsFirstActionWithFullSwipe = true
        return value
    }