2011-11-09 4 views
0

私は次のコードを使用してサブビューを作成しました:ビューがプログラムで作成したサブビューにdrawRect()をフックする方法はありますか?

-(void) viewDidLoad 
{ 
    CGRect subviewRect = CGRectMake(0, 0, 320, 320); 
    mysubview = [[UIView alloc] initWithFrame:subviewRect]; 
    [mysubview setBackgroundColor:[UIColor whiteColor]]; 
    [self.view addSubview:mysubview]; 
} 

を、私はこのサブビューで、いくつかのグラフィックスを描画したいので、私は、私はそののdrawRect関数にアクセスする必要があるが、どのように私はmysubviewにdrawRect()をフックすることができると思いますプログラム的に?

答えて

3
mysubview = [[UIView alloc] initWithFrame:subviewRect]; 

あなたが上書きされているにAustinPowersViewUIViewのサブクラスである

mysubview = [[AustinPowersView alloc] initWithFrame:subviewRect]; 

、あるべきdrawRect:

1

UIViewをサブクラス化し、そのdrawRect:メソッドをオーバーライドする必要があります。

Appleは

を述べたが、あなたのビューがカスタムコンテンツを描画する場合は、このメソッドを実装します。ビュー がカスタム図面を作成しない場合は、このメソッドをオーバーライドしないでください。

あなたがそれに追加するだけで、「通常」のUIKitインターフェイス要素を持っているのであれば、あなただけのサブビューとして追加し、ビューは、その図面の世話をさせてください。

1

UIViewをサブクラス化せず、-drawRect:を上書きしないでください。

関連する問題