首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ViewController和drawRect

ViewController和drawRect
EN

Stack Overflow用户
提问于 2010-06-24 19:34:48
回答 2查看 5.4K关注 0票数 0

我有一个UIViewController,我希望它调用drawRect,这样我就可以在视图上绘制,但什么也没有发生。

代码语言:javascript
复制
#import <UIKit/UIKit.h>

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

@end

和实现

代码语言:javascript
复制
#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

但是当应用程序运行时,视图上没有画出小马,我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-24 19:50:48

UIViewController没有覆盖消息drawRect。您应该创建从UIView派生的自定义类,并覆盖那里的消息drawRect

您可以覆盖UIViewController的消息(UIView *)view并返回自己的自定义UIView,或者在接口生成器中将类从UIView更改为自己的类。

票数 6
EN

Stack Overflow用户

发布于 2012-08-28 02:51:32

UIView上而不是在ViewController上调用setNeedsDisplay是触发和重新触发drawRect代码的一种方式,您可以在需要更新整个视图时有条件地发送此消息。

可以使用以下命令在自定义UIView中调用它

代码语言:javascript
复制
[self.setNeedsDisplay]

或者通过将UIView设置为控制器的属性并调用

代码语言:javascript
复制
[self.myView setNeedsDisplay]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3109529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档