我试图让我的 UITableViewRowAction 选项(表格视图幻灯片选项)在我按下它们时更改它们的背景颜色。我知道这是可能的,因为本机邮件应用程序和(第 3 方)Facebook Messenger 也使用它。
这是我的代码:
override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]?
{
//First button -- Follow
let follow = UITableViewRowAction(style: .Normal, title: "Follow", handler:{ action, index in
print("follow button tapped")
})
//set the color of the first button to yellow
follow.backgroundColor = UIColor(red: 255/255, green: 216/255, blue: 0/255, alpha: 1)
//***follow.backgroundEffect = UIBlurEffect(style: UIBlurEffect.Dark)***
//Second button -- Post
let post = UITableViewRowAction(style: .Normal, title: " Post ", handler:{ action, index in
print("post button tapped")
})
//set the color of the second button to light blue
post.backgroundColor = UIColor(red: 0/255, green: 175/255, blue: 255/255, alpha: 1)
//Third button -- Map
let map = UITableViewRowAction(style: .Normal, title: "Map ", handler:{ action, index in
print("map button tapped")
})
//set the color of the third button to red
map.backgroundColor = UIColor(red: 255/255, green: 75/255, blue: 75/255, alpha: 1)
return [follow, post, map]
}
从另一篇文章中,我看到您可以为 UITableViewRowActions 更改的唯一属性是:
- 背景效果
- 背景颜色
- 标题
- 风格
我认为我可以通过更改处理程序中按下选项的颜色来完成这项工作,但这不起作用。当我尝试更改处理程序中的背景颜色时,出现错误:
“变量在其自身的初始值内使用”
我试图更改 BackgroundEffect 属性——您可以在我的代码中看到它已被注释掉——但未能成功。