Как игнорировать преобразования при рисовании изображения с drawAsPatternInRect: - PullRequest
1 голос
/ 10 августа 2010

Я рисую фоновое изображение в виде следующего кода:

CGContextRef currentContext = UIGraphicsGetCurrentContext ();CGContextSaveGState (currentContext);

UIImage * image = [UIImage imageNamed: @ "background.jpg"];[image drawAsPatternInRect: rect];

CGContextRestoreGState (currentContext);

Это хорошо работает.Но когда я изменяю размер этого анимированного вида, нарисованное изображение масштабируется до перерисовки.Как я могу игнорировать это преобразование во время анимации?

Ответы [ 3 ]

2 голосов
/ 10 августа 2010

В данный момент я не думаю, что это возможно. Поскольку у iPhone нет очень быстрого процессора, Apple решила отключить функцию LiveRedraw (которая фактически доступна на Mac).

1 голос
/ 11 августа 2010

Я наконец нашел решение. Я использую contentMode UIViewContentModeTopLeft, чтобы он не масштабировался. А перед анимацией изменения размера я перерисовываю только если новый размер больше старого. А после анимации я всегда перерисовываю.

1 голос
/ 10 августа 2010

Попробуйте установить для contentMode вида UIViewContentModeRedraw.

- (id)initWithFrame:(CGRect)frame {
    if ((self = [super initWithFrame:frame])) {

        // Get the view to redraw when it's frame is changed
        self.contentMode = UIViewContentModeRedraw;

    }
    return self;
}
...