在我的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 :(得分:1)
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]
}
答案 1 :(得分:0)
试试这个:
yourBtn.setImage(UIImage(named: yourImage), forState: .Normal)
务必在“属性”检查器中将按钮设置为“自定义”,并删除文本。
答案 2 :(得分:0)
你能试试这个https://github.com/CEWendel/SWTableViewCell吗?希望这个帮助