gpt4 book ai didi

ios - 为什么不能在 drawRect 中更改 UIView 背景颜色?

转载 作者:IT王子 更新时间:2023-10-29 08:05:24 26 4
gpt4 key购买 nike

理论上,您可以通过以下方式轻松设置背景颜色:

self.backgroundColor = [UIColor redColor];

在 drawRect 中,但这没有任何效果。您可以更改 View 的大小、边框、 subview 等,但不能更改背景颜色。类似的 SO 查询建议添加 subview 或更改 initWithFrame 或 initWithCoder 初始化消息中的 backgroundColor。我的问题是,当其他特征可以更改时,为什么它在 drawRect 中不起作用?

更改 View 的图层背景颜色也没有任何作用,也许是出于同样的原因。 View 的 backgroundColor 与其层的 backgroundColor 之间的关系是什么,因为它们不相同?

最佳答案

如果您在首次配置 View 时设置backgroundColor(即,操作系统调用drawRect 之前),则backgroundColor 将在您无需任何进一步代码的情况下使用。作为UIView Class Reference说,backgroundColor 属性用于“设置 View 的颜色而不是自己绘制该颜色。”

但是如果你试图在drawRect中设置它,背景填充已经被执行,所以你不会立即看到改变背景颜色的效果(除非你自己手动执行另一个填充在 drawRect 中)。 drawRect 方法应该用于渲染 View ,而不是配置 View 。

如果 UIView 在配置 View 时设置了 backgroundColor(例如,在您使用的任何 init 方法中),该背景将使用颜色,无需在 drawRect 中执行任何其他操作。

关于ios - 为什么不能在 drawRect 中更改 UIView 背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23873663/

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