嘿,我有一个视图,其中包含一些我布置的项目以及一个平铺的背景图像。我已经将它的backgroundColor设置为CGPatternRef。我正在尝试获取它,以便可以与图层中的内容一起缩放背景图像。我的背景图像缩放比例很好,但似乎无法弄清楚如何在缩放比例更改时对其进行更新。这是我的drawCallback
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,但是在缩放视图时,更新非常不稳定。
任何指导将不胜感激。
谢谢
最佳答案
CGPattern需要知道模式的大小,您可以在调用CGPatternCreate
时将其传递给它。仅在回调中绘制不同的大小将无济于事,因此您必须销毁并重新设置模式,并将新的大小传递给CGPatternCreate
。
关于objective-c - 动态扩展CGPatternRef,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5407921/