Масштабирование CGPatternRef динамически - PullRequest
1 голос
/ 23 марта 2011

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

static void drawPatternImage (void *info, CGContextRef ctx)
{
    CGImageRef image = (CGImageRef) info;
    CGContextDrawTiledImage(ctx, CGRectMake(0,0, CGImageGetWidth(image)*scaleValue, CGImageGetHeight(image)*scaleValue), image);
}

изображение нарисовано так, как я ожидаю, но когда я изменяю значение масштаба и затем вызываю setNeedsDisplay на моем слое, метод обратного вызова больше не вызывается, и мой фон не обновляется. Это лучший способ решить эту проблему? Или есть более эффективный способ рисования масштабируемого мозаичного изображения на мой взгляд. Я реализовал - (void) drawLayer: (CALayer *) слой inContext: (CGContextRef) ctx и вызвал там CGContextDrawTiledImage, но при масштабировании моего представления обновление было очень прерывистым.

Любое руководство будет оценено.

Спасибо

1 Ответ

0 голосов
/ 23 марта 2011

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

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