设置UITableViewCell所选的背景颜色与UIAppearence不起作用

时间:2018-10-18 08:23:46

标签: ios swift uitableview uiappearance

我想更改所有UITableViewCell的选定颜色。我已经在使用UIAppearence来定义其他UI元素的基本属性,并且可以使用。

但是,设置

let bgColorView = UIView()
bgColorView.backgroundColor = #colorLiteral(red: 0.9411764706, green: 0.9411764706, blue: 0.9411764706, alpha: 1)
UITableViewCell.appearance().selectedBackgroundView = bgColorView

导致奇怪的故障,尽管仍选择UITableViewCell,但单元格失去了选择颜色:

UITableViewCell disappearing selection

故障不是由UI代码引起的,因为直接在UITableViewCell.awakeFromNib中设置所选颜色效果很好,所选单元格仍保持所需的颜色。

编辑:所有不同的单元格都会发生这种情况。单元格没有做任何有趣的事情,只是在模型设置器中的awakeFromNib和一些RxSwift绑定中设置标签颜色等内容,以设置各种标签的值。 VC只是通过调用委托方法(使用modelSelected中的RxSwift)来响应被选择的单元格。

编辑:带有UITableView的VC是UISplitViewController的“左侧”。 “右侧”是UINavigationController,在UINavigationController中使用setViewControllers在此library(shiny) ui <- fluidPage( includeCSS("C:/.../trial.css"), box(width = 4, title = "This does not change", htmlOutput("text")), box(width = 4, title = "basic", "Some text that changes") ) server <- function(input, output) { output$text <- renderUI({ sentence1 <- paste("<h3>", "<b>", "Something", "</b>", "</h3>") sentence2 <- paste("<h3>", "<b>", "Something else", "</b>", "</h3>") HTML(paste(sentence1, sentence2, sep = "<br/>")) }) } shinyApp(ui = ui, server = server) 中导航会导致奇怪的故障。

2 个答案:

答案 0 :(得分:0)

因此,在进行了一些调查后,我能够重现您的“小故障” :)我下载了RxSwift,然后尝试了他们的tableView示例。我也使用RxSwift,但不使用它们的tableView委托/数据源扩展。我还制作了一个自定义的tableViewCell。

在重写setSelected的{​​{1}}方法之后,没有调用其super方法,发生了相同的情况。实际上,即使不使用RxSwift,这也应该发生。

因此,再次确保在tableView类中,如果您不需要对UITableViewCell做任何事情,请不要覆盖它。否则,在覆盖超类方法时,请确保您正在调用super.method(),就像在控制器的setSelected中所做的一样。

viewDidLoad()

答案 1 :(得分:0)

它应该工作得很好,我已经在iOS应用程序中尝试过了。

尝试为所选背景使用其他颜色,这可能与您单元格的背景颜色相同

并确认UITableViewCell#selection属性未设置为none

enter image description here