Кажется, вы рисуете изображение каждый раз в вашем методе drawRect. Я думаю, что если вы использовали UIImageView для хранения UIImage и просто переместились, то это может быть быстрее?
В вашем .h файле
@property (nonatomic, retain) UIImageView *myImageView;
В вашем методе инициализации
self.myImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"graphic.png"]] autorelease];
и в вашем обратном вызове по таймеру просто переместите UIImageView, вот так
- (void) onTimer {
xx++;
xx = ( xx % 320);
self.myImageView.center = CGPointMake(xx, self.myImageView.center.y);
}
(больше нет необходимости в drawRect)
Надеюсь, это поможет,
Sam