【发布时间】:2012-03-15 05:57:38
【问题描述】:
我不明白这是如何工作的。如果我将 UIView 对象绘制到我的 UIViewController .xib 文件中,那么我的 UIView 会重绘自身。如果我将它添加到子视图中
CustomView : UIView
在 UIViewController 的 viewDidLoad 中
CustomView *v = [[CustomView alloc] initWithFrame:self.view.frame];
[self.view addSubview:v];
CustomView 不会自己绘制。然后我试着做
[self.view setNeedsDisplay];
我仍然一无所获。只是一个白色背景(与我之前得到的黑色背景不同),但没有我的绘图。当您以编程方式添加 UIView 时,它是如何工作的?谢谢。
【问题讨论】:
-
initWithCoder:中有初始化逻辑吗?当从 nib 文件加载视图时,将调用此初始化程序而不是initWithFrame:。 -
@titaniumdecoy 不,我没有任何初始化。我记得读过一些关于它的东西,并看到一些关于它的帖子。我调用 initWithCoder 吗?还是我仍然调用initWithFrame?另外,既然一切都在我的 drawRect: 中完成,我将在 initWithCoder 中初始化什么?
-
您可能需要分享您的 CustomView 或至少相关部分。
-
好吧,我想通了,只需要在我的 sharedInit 方法中将背景颜色设置为白色,因为这已经在 IB 中设置了。抱歉这个愚蠢的问题。
-
你也试过
[v setNeedsDisplay]吗?
标签: iphone uiview uiviewcontroller