0

UIViewController があり、drawRect を呼び出してビューに描画できるようにしたいのですが、何も起こりません。

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController {
...code...
}

@end

そして実装

#import "ViewController.h"


@implementation ViewController

-(void) drawRect:(CGRect) rect {
draw a pony
}

- (void)viewDidLoad {
}

- (void)didReceiveMemoryWarning {
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}


- (void)dealloc {
    [super dealloc];
}

@end

しかし、アプリの実行時にビューにポニーが描画されません。何が間違っていますか?

4

2 に答える 2

6

UIViewControllerdon't have overriddenメッセージdrawRect. そこから派生したカスタムクラスを作成し、そこでUIViewメッセージをオーバーライドする必要drawRectがあります。

(UIView *)viewメッセージをオーバーライドしUIViewControllerて独自のカスタムを返すUIViewか、Interface Builder でクラスUIViewを独自のクラスに変更できます。

于 2010-06-24T11:50:47.830 に答える
0

ではなく、setNeedsDisplayを呼び出すことは、コードをトリガーおよび再トリガーする1つの方法であり、ビュー全体を更新する必要があるときはいつでも、このメッセージを条件付きで送信できます。UIViewViewControllerdrawRect

カスタム内で呼び出すことができUIViewます

[self.setNeedsDisplay]

または、ビューコントローラから、コントローラUIViewのプロパティを作成して呼び出します

[self.myView setNeedsDisplay]
于 2012-08-27T18:51:32.467 に答える