如何在 UITableView 删除按钮上添加图像?

Posted

技术标签:

【中文标题】如何在 UITableView 删除按钮上添加图像?【英文标题】:How to add image on UITableView delete button? 【发布时间】:2015-11-26 15:26:48 【问题描述】:

我有一个 UITableView 并且我已经向它添加了编辑操作。现在我想在删除按钮标签上方添加图像,如:

这是我的代码:

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

    let blockAction = UITableViewRowAction(style: .Normal, title: "Block")  (rowAction:UITableViewRowAction, indexPath:NSIndexPath) -> Void in
        //TODO: Delete the row at indexPath here
    
    blockAction.backgroundColor = UIColor.redColor()

    return [blockAction]

如何在我的Delete 按钮上添加图片?

【问题讨论】:

@rmaddy 但其他开发人员是如何做到的? 也许他们使用的是第 3 方自定义表格视图单元格类,而不是使用 UITableViewDelegate 提供的标准 API。 参考这个问题,你会找到答案:***.com/questions/20290766/…----------------***.com/questions/29335104/…如果你是ios8+ 只有第二个链接是相关的。我忘记了使用“图案图像”作为背景颜色的想法。这可能行得通。 【参考方案1】:

您可以在背景颜色上使用特殊图像,并使用'\n'符号来降低文本

func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? 

    let blockAction = UITableViewRowAction(style: .normal, title: "\nBlock")  (rowAction:UITableViewRowAction, indexPath:IndexPath) -> Void in
        //TODO: Delete the row at indexPath here
    
    blockAction.backgroundColor = UIColor(patternImage: UIImage(named: "delete_background")!)

    return [blockAction]

【讨论】:

【参考方案2】:

您可以实现一个可滑动的 tableviewcell 来完成此操作,您可以在其中实现自定义按钮以进行编辑操作。这方面有很多教程。检查以下一项:

https://www.raywenderlich.com/62435/make-swipeable-table-view-cell-actions-without-going-nuts-scroll-views

【讨论】:

以上是关于如何在 UITableView 删除按钮上添加图像?的主要内容,如果未能解决你的问题,请参考以下文章

添加/删除 UITableView 行时如何防止文本字段变空?

Swift:UITableView - 滑动删除 - 如何让单元格内容在滑动时不移动

如何制作可滑动的 UItableview 标题以显示像单元格一样的删除按钮

在编辑按钮上删除UICollectionView单元格

如何在ios的UITableview中选择样式为无时显示选择按钮?

在滚动 UITableViewCell 添加按钮图像问题