更改 UITableViewRowAction 内的单元格背景颜色

Posted

技术标签:

【中文标题】更改 UITableViewRowAction 内的单元格背景颜色【英文标题】:change cell background color inside of UITableViewRowAction 【发布时间】:2015-12-04 18:09:45 【问题描述】:

我正在使用 UITableViewRowAction 在 ios Swift 2 中编辑表格。如果他们在动作按钮弹出后选择动作,我希望整个单元格的当前背景(不是按钮弹出窗口)改变颜色。我尝试使用 dequeueReusableCellWithIdentifier 访问它,但没有任何反应。

let share = UITableViewRowAction(style: .Normal, title: "Showed Up?")  (action, indexPath) in

let cell = tableView.dequeueReusableCellWithIdentifier("secondtableCell", forIndexPath: indexPath) 
cell.backgroundColor = UIColor.redColor()

...当然,代码稍后会继续关闭。除了颜色变化外,一切都按预期工作。

【问题讨论】:

你检查过这个答案吗:***.com/a/19238919/558933 【参考方案1】:

您是否在ViewDidLoad 方法中注册了该类?如果没有,请继续执行此操作并告诉我您得到了什么。

self.tableViewController.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "Cell")

【讨论】:

感谢@Mihado,对这里的延误表示歉意。 (实际上我同时摔断了肩膀(锁骨)!)。如果我把你的代码放在 ViewDidLoad 的开头,它会弄乱其他东西,并且会阻止表格在每个单元格中显示必要的信息。加上我正在寻找的背景颜色变化也没有发生。如果我把它放在我当前的代码中,它不会弄乱任何东西,但它仍然不会改变背景颜色。 哦!我对此感到非常抱歉,我希望你很快就会好起来。 Chaim,您应该在配置表格视图后尝试放置此代码,最好放在 viewDidLoad 中的最后一行。当您复制并粘贴我留下的代码 sn-p 时,请确保您添加的是视图控制器的名称和单元格标识符,而不是我的,它们可能不同。如果这不起作用,我们可以去聊天。 我让它按预期工作了。而不是使用:dequeueReusableCellWithIdentifier 我只使用cellForRowAtIndexPath 并且它可以工作。谢谢大家 在你的 cellForRowAtIndexPath 中,你需要实现 tableview.dequeueReusableCellWithIdentifier 来重用现有的单元格。我很快就会发布一个代码sn-p 我已经在一个单独的函数中拥有它,我在其中创建单元格。现在一切正常。我现在正在处理的这个函数内部不需要更多的东西,使用的是:editActionsForRowAtIndexPath 。我所需要的只是一种获取我正在编辑的特定单元格的方法,这就是我需要cellForRowAtIndexPath 的方法。

以上是关于更改 UITableViewRowAction 内的单元格背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

iOS 8:从 UITableViewRowAction 中删除下划线

UITableViewRowAction 可访问性值

iOS 11 中的 UITableViewRowAction 太宽

使用 UITableViewRowAction 执行 segue 控制

UITableViewRowAction 行为不可预测

如何在 UITableViewRowAction 中添加图像?