我有一个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但是当应用程序运行时,视图上没有画出小马,我做错了什么?
发布于 2010-06-24 19:50:48
UIViewController没有覆盖消息drawRect。您应该创建从UIView派生的自定义类,并覆盖那里的消息drawRect。
您可以覆盖UIViewController的消息(UIView *)view并返回自己的自定义UIView,或者在接口生成器中将类从UIView更改为自己的类。
发布于 2012-08-28 02:51:32
在UIView上而不是在ViewController上调用setNeedsDisplay是触发和重新触发drawRect代码的一种方式,您可以在需要更新整个视图时有条件地发送此消息。
可以使用以下命令在自定义UIView中调用它
[self.setNeedsDisplay]或者通过将UIView设置为控制器的属性并调用
[self.myView setNeedsDisplay]https://stackoverflow.com/questions/3109529
复制相似问题