2011-03-23 97 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