【问题标题】:UIButton backgroundColor doesn't change on first UITableViewCellUIButton backgroundColor 在第一个 UITableViewCell 上没有改变
【发布时间】:2021-01-17 01:30:13
【问题描述】:

我目前正在用 Swift 开发一个应用程序,当我在 iPhone 6(运行 iOS 12.4.6)上运行我的应用程序时,出现了一个奇怪的问题。

我有一个UITableView,其中包含许多UITableViewCell,这些单元格包含一个UIButton,其中backgroundColor 需要根据特定条件进行更新。问题是,只有第一个单元格没有正确加载颜色,相反,它只有在单元格被UITableView 重用后才加载。

我之前(在同一设备上)在 UIViewController 中遇到过类似的问题,我通过将用于控制 backgroundColor 的代码从 viewDidLoad 方法转移到 viewWillLayoutSubviews 方法来勉强解决了这个问题.

在我看来,这与故事板覆盖某些值有关,我已经尝试在 awakeFromNib 内设置条件 UITableViewCell 但没有任何变化,我实际上无法弄清楚还有什么可能导致这个问题。

【问题讨论】:

  • 你能显示一些代码吗?
  • 您是在使用UIColor(named:) 初始化程序还是在您的项目中有.xcassets 文件夹并带有自定义颜色?
  • 1/ 尝试将更改背景颜色的代码放入 DispatchQueue.main.async 2/ 尝试在 xib/storyboard 中设置按钮的背景颜色以清除。
  • @vpoltave 是的,我目前正在使用自定义颜色
  • @DuyNguyen 我马上试试

标签: ios swift xcode uitableview uibutton


【解决方案1】:

问题解决了,我实际上已经尝试按照建议将代码放在 DispatchQueue.main.async 中,并且运行良好,没有任何问题。

【讨论】:

    猜你喜欢
    • 2013-02-11
    • 1970-01-01
    • 2014-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    相关资源
    最近更新 更多