2

我试图让我的 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 更改的唯一属性是:

  1. 背景效果
  2. 背景颜色
  3. 标题
  4. 风格

我认为我可以通过更改处理程序中按下选项的颜色来完成这项工作,但这不起作用。当我尝试更改处理程序中的背景颜色时,出现错误:

“变量在其自身的初始值内使用”

我试图更改 BackgroundEffect 属性——您可以在我的代码中看到它已被注释掉——但未能成功。

4

0 回答 0