2011-03-23 100 views
1

嘿,我有一个视图,其中放置了一些项目和平铺的背景图像。我已将它的backgroundColor设置为CGPatternRef。我试图获得它,所以我可以与我的图层中的内容一起缩放背景图像。我已经将背景图片缩放得很好,我似乎无法弄清楚在缩放比例发生变化时如何进行更新。这里是我的drawCallback动态缩放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 *)layer inContext:(CGContextRef)ctx并从那里调用了CGContextDrawTiledImage,但是当缩放我的视图时,更新非常不连贯。

任何指导,将不胜感激。

感谢

回答

0

的CGPattern需要知道图案的大小,你把它传递您的来电CGPatternCreate。只是在回调中绘制不同的大小不会有帮助,因此您必须销毁并重新设置模式,将新大小传递给CGPatternCreate