gpt4 book ai didi

ios - 我真的需要在自定义 UIView 中使用 drawRect() 吗?

转载 作者:行者123 更新时间:2023-12-01 18:51:49 25 4
gpt4 key购买 nike

我是 iOS 新手,并试图了解 drawRect() 在自定义 UIViews 中的使用,所以我有一个简单的自定义 View ,我从代码初始化。例如,我想更新它的颜色,我看到两种方法,如下所示。我应该使用哪一个,为什么?

//VController
CustomView *cv = [[CustomView alloc] initWithFrame:...]
...
[cv updateColors];

//CustomView
-(id) initWithFrame {}
-(id) initWithCoder {}
-(void) updateColors(UIColor *color){ ----(1)
...Draw here with new color ...
view1.backgroundColor = color;
view2.backgroundColor = color;

}
- (void) drawRect{
... draw here with new color ... ---------(2)
view1.backgroundColor = color;
view2.backgroundColor = color;
}

最佳答案

如果你只想改变这个 View 或它的一些 subview 的背景颜色,你绝对不应该滥用drawRect:。为了这。 drawRect:用于当系统认为需要刷新时您想要绘制 View (即其内容);它在许多且不可预测的时间被调用,您不需要它 - 您只需要根据需要更改背景颜色,即 View 的一个特征。同样drawRect:不是执行 subview 管理的地方。

但是如果您要绘制 View 的内容(例如, View 显示一个圆圈并且您需要绘制该圆圈来描绘 View ),那么您必须使用 drawRect:为了那个原因;这是 View 有机会绘制自身的唯一地方。

关于ios - 我真的需要在自定义 UIView 中使用 drawRect() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30633963/

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