ViewController и drawRect - PullRequest
       30

ViewController и drawRect

0 голосов
/ 24 июня 2010

У меня есть 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

Но когда приложение запускается, на экране не появляется пони, что я делаю не так?

Ответы [ 2 ]

6 голосов
/ 24 июня 2010

UIViewController не имеет переопределенного сообщения drawRect. Вам следует создать собственный класс, полученный из UIView, и переопределить там сообщение drawRect.

Вы можете переопределить сообщение (UIView *)view для UIViewController и вернуть собственный пользовательский UIView или в Интерфейсном Разработчике изменить класс с UIView на собственный класс.

0 голосов
/ 27 августа 2012

Вызов setNeedsDisplay на вашем UIView, а не ViewController, является одним из способов запуска и повторного запуска вашего кода drawRect, и вы можете отправить это сообщение условно, когда вам нужно обновить весь просмотр.

Вы можете позвонить в пользовательский UIView, используя

[self.setNeedsDisplay]

или из View Controller, сделав UIView свойством контроллера и вызвав

[self.myView setNeedsDisplay]
...