gpt4 book ai didi

ios - 如果我使用来自 xib 的自定义颜色,为什么 iOS 不会覆盖背景颜色?

转载 作者:行者123 更新时间:2023-12-01 15:20:09 26 4
gpt4 key购买 nike

我有一个xib。我有一个 View Controller ,它加载 xib 并将其添加到它的 subview 中。 xib 的背景颜色从 xib 文件(来自界面)设置为 定制颜色套装来自 Assets (由我创建)。
一切正常。
现在,在我的 View Controller 中,在 viewDidLoad 中,我想用其他东西覆盖该背景颜色。我发现并且它 100% 复制的问题是覆盖不会做任何事情,除非我在 viewDidAppear 中这样做。
所以总结...

  • 自定义颜色 从 xib 设置的背景...覆盖 viewDidLoad 不工作 ,覆盖 viewDidAppear 工作
  • Xcode 默认颜色 从 xib 设置的背景(除 Assets 自定义颜色外的任何其他颜色)...覆盖 viewDidLoad 作品 ...

  • 为什么在第一种情况下我不能覆盖颜色而在第二种情况下我可以?
    我在这里缺少一个隐藏的功能吗?如果从 xib 设置的颜色是自定义颜色,则您根本无法在 viewDidLoad 中覆盖 View 背景颜色,但如果它是任何其他颜色......如白色、红色、黑色或 w/e Xcode 已经按预期工作。
    如果它有任何影响......我正在谈论的这个 View Controller 被推送到导航堆栈上。但我看不出这会产生什么影响。

    复制步骤:
    要复制它...创建一个新的示例项目...其中只有一个 View Controller 。接下来通过 assets -> new color set 添加自定义颜色。将 View Controller View 背景颜色从 Storyboard 设置为新添加的颜色集。然后在 viewDidLoad 内部将 View 的背景颜色更改为其他颜色......您会注意到,如果您运行应用程序,如果在 Storyboard 中有自定义颜色设置为背景,它不会改变。
    不知何故, Storyboard覆盖的背景自定义颜色集在 viewDidLoad 之后和 viewDidAppear 之前发生在幕后。

    最佳答案

    我来晚了,但为 future 的读者提供了更多信息。
    我刚刚在我的 iOS 11 和 iOS 12 应用程序中遇到了这个错误。自 iOS 13.0 以来,Apple 解决了这个错误。
    因此,如果您支持以前的版本,您仍然需要从 @AlanS 应用解决方法,或者不要在 storyboard 和 xib 中使用自定义颜色:

    func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()

    if #available(iOS 13.0, *) {
    // Fix iOS 12 storyboard color bug.
    } else {
    view.backgroundColor = UIColor.black
    }
    }

    关于ios - 如果我使用来自 xib 的自定义颜色,为什么 iOS 不会覆盖背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58007005/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com