Iphone 如何在UIView的子类中调用UIView变量中的drawrect?
我创建了UIView的一个子类,在这个类中我声明了一个UIView变量。 我想调用UIView变量的DrawRect,因为现在当我调用DrawRect时,它是在我的UIView类上绘制的,而不是UIView变量,我该怎么做呢Iphone 如何在UIView的子类中调用UIView变量中的drawrect?,iphone,uiview,drawrect,Iphone,Uiview,Drawrect,我创建了UIView的一个子类,在这个类中我声明了一个UIView变量。 我想调用UIView变量的DrawRect,因为现在当我调用DrawRect时,它是在我的UIView类上绘制的,而不是UIView变量,我该怎么做呢 对不起,我的英语不好 您不调用drawRect,而是在子视图上调用setNeedsDisplay。您有一个UIViewCustomClass,其中还有一个UIView?大概是这样的: @interface MyView : UIView { AnotherView *a
对不起,我的英语不好 您不调用
drawRect
,而是在子视图上调用setNeedsDisplay
。您有一个UIViewCustomClass,其中还有一个UIView?大概是这样的:
@interface MyView : UIView
{
AnotherView *aView;
}
是吗
因此,如果要重画“aView”变量,必须重写MyView类中的setNeedsDisplay方法:
h
m
编辑:
在这里,aView也是一个自定义类(另一个视图的类型),因此您可以像我们之前对MyViewClass所做的那样重写draw rect方法:
在另一个视图m中:
@implemetation AnotherView
-(void) drawRect:(CGRect) rect
{
//Do drawing for your aView variable ;)
}
@end
根据苹果的指导原则,您不应该直接调用drawRect(cf)谢谢,但我如何才能使用UIView变量?,例如,我的意思是如何在我的UIView变量上画一条线?您还需要对变量进行子cass并重写drawRect方法。假设您有
UIView*子视图1
,它是mainView
的子视图。在这种情况下,无论何时需要重新绘制子视图1
,都可以在main视图的实现中调用[subview1 setNeedsDisplay]。假定您的子视图1
实现已重写-(void)drawRect:(CGRect)rect
方法,将调用它。
@implementation MyView
- (void)setNeedsDisplay
{
[super setNeedsDisplay];
[aView setNeedsDisplay];
}
-(void) drawRect:(CGRect) rect
{
//Do your own custom drawing for the current view
}
@end
@implemetation AnotherView
-(void) drawRect:(CGRect) rect
{
//Do drawing for your aView variable ;)
}
@end