UIView のサブクラスを作成しました。このクラスでは、UIView 変数を宣言します。UIView 変数の DrawRect を呼び出したいのですが、DrawRect を呼び出すと、UIView 変数ではなく UIView クラスで描画されるため、どうすればそれを行うことができますか?
私の悪い英語でごめんなさい。
を呼び出すのではなく、サブビューdrawRect
を呼び出します。setNeedsDisplay
UIView もある UIViewCustomClass がありますか?このようなもの :
@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
Apple のガイドラインによると、drawRect を直接呼び出さないでください (ドキュメントを参照) 。