【发布时间】:2014-03-05 20:55:58
【问题描述】:
我需要通过调用它的drawRect方法来自定义一个UIView,所以我继承了UIView并将它命名为MyView。绘图将取决于一些变量(本例中为 myString),因此我需要在 drawRect 开始之前初始化变量。我的 MyView.h 看起来像
@interface MyView : UIView
@property (strong, nonatomic) NSString *myString;
@end
在 viewController.m 中,如果我执行以下操作
MyView *myView = [MyView alloc] initWithFrame:someRect];
[myView setMyString:@"string value"];
[self.view addSubview:myView];
一切都按预期工作,myString 是在调用 drawRect 之前设置的。
我要解决的问题是,如果我想通过使用 Interface Builder 将 MyView 添加到视图控制器(将 UIView 拖放到视图控制器的视图并将其类更改为 MyView),那么重点在哪里我可以在调用 drawRect 之前设置 myString 吗?
【问题讨论】:
-
在设置变量之前是否调用drawrect并不重要。您可以在设置变量后调用
[view setNeedsDisplay],它会相应地重绘。如果这是在viewDidLoad之类的方式中完成的,那么用户将永远不会看到不正确绘制的视图,但会在重新绘制正确的方式后看到它。 -
Armand DOHM 的回答对我有用,谢谢。
-
你注意到我的评论是在他回答之前几分钟吗?很高兴您解决了问题。