Это лучший способ рисовать большие изображения в UIView? - PullRequest
1 голос
/ 03 сентября 2010

Приложение, над которым я работаю, требует, чтобы я рисовал изображения на UIView.Эти изображения большие (некоторые имеют разрешение 1024х768), и я хотел бы убедиться, что мой код рисования не является оптимальным.Мой drawRect метод в моем UIView выглядит следующим образом:

- (void)drawRect:(CGRect)rect {
  CGContextRef context = UIGraphicsGetCurrentContext();
  CGContextClearRect(context, rect);

  CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, 550);
  CGContextConcatCTM(context, flipVertical);
  CGImageRef shadowImage = [[UIImage imageNamed:@"someimage.png"] CGImage];
  CGContextDrawImage(context, CGRectMake(162, -174, 700, 700), shadowImage);
  CGContextConcatCTM(context, flipVertical);
}

Здесь также выполняется другой рисунок, но я просто хочу быть уверен, что код рисования изображения не вызовет проблеми я не забыл вызвать важный метод или неправильно его реализовать.

1 Ответ

3 голосов
/ 04 сентября 2010

Я обнаружил, что этот метод является неоптимальным из-за использования

[UIImage imageNamed:@"someimage.png"]

Этот метод загружает изображение в память, а затем кэширует его для дальнейшего использования.Поскольку изображения, с которыми я работаю, являются большими, и их несколько, использование этого метода может вызвать чрезмерное использование памяти.

Я написал короткую заметку с более подробной информацией..

...