如何使用滑动删除单元格按钮,如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]
}
提前致谢
答案 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的好方法,以及一些其他有用的技术。)