2011-12-31 6 views
0

Я создал слой следующим образом:Можно ли привязать цвет фона изображения CGPattern к центру CALayer?

CALayer *layer = [CALayer layer]; 
layer = /* create a CGColorRef with a pattern image */; 

Этот слой просто отображается в моем окне. Моя ничье/отпускание функция для шаблона следующим образом:

void drawPattern(void *info, CGContextRef c) { 
    CGContextDrawImage(c, CGRectMake(0, 0, CGImageGetWidth(info), CGImageGetHeight(info)), info); 
} 
void releaseInfo(void *info) { 
    CGImageRelease((CGImageRef)info); 
} 

По умолчанию шаблона закреплен в нижнем левом углу окна, так что при изменении размера окна, что точка фиксирована.

я понял, что я могу закрепить его в верхнем левом углу с двумя шагами:

  • набор layer.geometryFlipped = YES;
  • использование CGAffineTransformMakeScale(1, -1) в качестве аргумента CGPatternCreate вместо CGAffineTransformIdentity.

Но как я могу привязать его к центру? (Изменение, кажется, не делать ничего слой anchorPoint.)

ответ

1

Я думаю, вы должны пройти слой, а не изображений, в качестве параметра info, и есть ваша функция рисования извлечения слоя frame и использования, что для вычисления перевода.