Swift 3如何删除像iOS邮件应用程序(图像和文本)的单元格按钮

时间:2017-01-08 16:36:54

标签: ios swift uitableview swift3

like this

如何使用滑动删除单元格按钮,如iOS邮件应用程序(图像+文本)?

我发现了这种方法,但我的图像尺寸不符合规模:

override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {  
    let deleteButton = UITableViewRowAction(style: .Destructive, title:"\nDelete", handler: { (action, indexPath) in
    self.tableView.dataSource?.tableView?(self.tableView,commitEditingStyle: .Delete,
            forRowAtIndexPath: indexPath)

    return
})

    deleteButton.backgroundColor = UIColor(patternImage: UIImage(named: "icon")!)
    return [deleteButton]
}

提前致谢

2 个答案:

答案 0 :(得分:1)

我对你的解释感到困惑。如果可以,请提供一些关于你想要的按钮的更多解释。你想要iOS提供的标准按钮,还是你想要一个自定义按钮? 我试图解决以下两个方面。

如果您需要标准操作,可以这样做:

  func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {

        if editingStyle == .delete {

            // remove the item from the array if you want
            array.remove(at: indexPath.row)

            // delete the table view row
            tableView.deleteRows(at: [indexPath], with: .fade)

        }
    }

}

另外,我想推荐This.

如果您只想调整按钮图像的大小,可以这样做:

deleteButton.imageView?.contentMode = UIViewContentMode.scaleAspectFill

答案 1 :(得分:0)

表格视图将为您完成。您只需要将您的表视图/表视图控制器置于导航堆栈中,这样就会有一个导航栏,然后实现几个方法:SELECT * FROM surveyquestions s cross join logins l left join completedsurveyquestions c on (s.id = c.surveyquestionid and l.id=c.userid) where c.userid is null and INSTR(l.opensurveys, s.surveytype) > 0 and l.id in (userid1, userid2, userid3, . . .); tableView(_, canEditRowAt:)

您可能希望在导航栏中添加编辑按钮。

我刚推了一个名为MasterDetailSwift的演示项目,它支持在表视图中添加和删除单元格。 (它还显示了主/详细UI模式,使用switch语句处理prepareForSegue的好方法,以及一些其他有用的技术。)