我创建了一个 UIView 的子类,在这个类中我声明了一个 UIView 变量。我想调用我的 UIView 变量的 DrawRect,因为现在当我调用 DrawRect 时,它会绘制我的 UIView 类,而不是 UIView 变量,我该怎么做?
对不起,我的英语不好。
你不打电话drawRect
,你打电话setNeedsDisplay
给你的子视图。
您有一个 UIViewCustomClass ,其中还有一个 UIView ?像这样的东西:
@interface MyView : UIView
{
AnotherView *aView;
}
这是正确的 ?
因此,如果要重绘“aView”变量,则必须覆盖 MyView 类中的 setNeedsDisplay 方法:
。H
@interface MyView : UIView
{
AnotherView *aView;
}
- (void)setNeedsDisplay;
-(void) drawRect:(CGRect) r;
@end
.m
@implementation MyView
- (void)setNeedsDisplay
{
[super setNeedsDisplay];
[aView setNeedsDisplay];
}
-(void) drawRect:(CGRect) rect
{
//Do your own custom drawing for the current view
}
@end
编辑: 在这里,aView 也是一个自定义类(AnotherView 的类型),因此您可以像我们之前对 MyViewClass 所做的那样覆盖 draw rect 方法:
在另一个视图.m 中:
@implemetation AnotherView
-(void) drawRect:(CGRect) rect
{
//Do drawing for your aView variable ;)
}
@end
根据苹果指南,您永远不要直接调用 drawRect (参见文档)