我创建了UIView的子类,在这个类中我声明了一个UIView变量。 我想调用我的UIView变量的DrawRect,因为现在当我调用DrawRect时,它依赖于我的UIView类,而不是UIView变量,我该怎么做?
抱歉我的英语不好。答案 0 :(得分:5)
您没有致电drawRect
,而是在子视图上致电setNeedsDisplay
。
答案 1 :(得分:3)
你有一个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方法:
在AnotherView.m中:
@implemetation AnotherView
-(void) drawRect:(CGRect) rect
{
//Do drawing for your aView variable ;)
}
@end
根据苹果指南,你不应该直接调用drawRect(参见documentation)