[英]Do I really need drawRect() in custom UIView?
我是iOS新手并试图理解自定义UIViews中drawRect()的用法,所以我有一个简单的自定义视图,我从代码初始化。我想更新它的颜色,我看到两种方法,如下所示。 我应该使用哪一个?为什么?
//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;
}
如果你想要做的是改变这种看法或一些子视图的背景颜色,你绝对不应该滥用drawRect:
此。 drawRect:
用于当系统认为需要刷新时想要绘制视图(即其内容); 它在许多不可预测的时间被调用,你不需要它 - 你只需要根据需要改变背景颜色,即视图的一个特征 。 类似地, drawRect:
不是执行子视图管理的地方。
但是,如果你要绘制视图的内容(例如视图中显示一个圆圈,你需要绘制圆圈描绘的观点),那么你必须使用drawRect:
是什么; 它是视图有机会吸引自己的唯一场所。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.