gpt4 book ai didi

ios - 设置命名颜色后,无法以编程方式更改 UIView 的颜色

转载 作者:技术小花猫 更新时间:2023-10-29 10:50:13 27 4
gpt4 key购买 nike

即使您创建一个新的单 View 项目(Xcode 9.2),在 Assets 目录中创建一个命名的颜色,在 IB 中将主视图 Controller 的背景颜色设置为该颜色,并尝试在 IB 中更新背景颜色viewDidLoad,背景色不会改变。其他人有过这种经历吗?这是正常行为吗?

view.backgroundColor = .red // Doesn't work, the asset color set in IB remains

最佳答案

super 有趣,你是对的,它并没有像预期的那样改变颜色值。关于何时在父类(super class)中设置 IB 属性,肯定会有一些延迟。在 DispatchQueue.main.async 中包装颜色变化使其在 viewDidLoad 中工作。可能是因为该代码将在父类(super class)对 IB 属性执行的任何操作之后最后处理。希望这能解决问题。

DispatchQueue.main.async {
self.view.backgroundColor = UIColor.blue
}

同样在 viewDidLayoutSubviews 和 viewDidAppear 中,它在没有 DispatchQueue 的情况下工作,但与 viewWillAppear 中的 viewDidLoad 具有相同的行为,但未按预期工作。

关于ios - 设置命名颜色后,无法以编程方式更改 UIView 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50373464/

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