Search code examples
iosuiviewcontrollerxcode4.2drawrect

How to access drawrect method from UIViewController?


I am using Xcode 4.2 and have a UIViewController representing one of the scenes.

In it, inside viewWillAppear i have

[NSTimer scheduledTimerWithTimeInterval: FramesPerSecond target:self 
selector:@selector(gameLoop) userInfo:nil repeats:YES];

Inside gameLoop method, i have

[[self view] setNeedsDisplay];

Problem:

drawRect method is not being called (As i understand it it should be called from setNeedsDisplay

Question:

  • Is it possible to define drawRect method inside a UIViewController class and is so how should one declare it? It is called on a UIView as i understand it.
  • If is it not possible, how would you address the situation using Xcode 4.2?

Solution

  • No. You would need to subclass the UIView that the UIViewController controls.

    (As a side note, timers aren't great for game loops because you don't get totally predictable timing.)