我不知道爲什麼這個停止工作,但是當我嘗試繪製它的任何部分時,這段代碼會崩潰我的設備。我是新的核心圖形,所以任何指針或建議將是一個很大的幫助。謝謝!石英2D繪圖崩潰
// Style
CGContextRef context = UIGraphicsGetCurrentContext();
// Colors
CGColorRef fillBox = [UIColor colorWithRed:250.0/255.0 green:250.0/255.0 blue:250.0/255.0 alpha:1.0].CGColor;
CGColorRef fillBoxShadow = [UIColor colorWithRed:77.0/255.0 green:77.0/255.0 blue:77.0/255.0 alpha:1.0].CGColor;
CGRect box = CGRectMake(5, 5, self.frame.size.width - 10, self.frame.size.height - 10);
// Shadow
CGContextSetShadowWithColor(context, CGSizeMake(0, 0), 1.0, fillBoxShadow);
CGContextAddRect(context, box);
CGContextFillPath(context);
// Box
CGContextSetFillColorWithColor(context, fillBox);
CGContextAddRect(context, box);
CGContextFillPath(context);
它不是立即釋放,而是在runloop結束時:'colorWithRed ...'是一個返回自動釋放對象的工廠方法。它們在'@ autorelease'塊的末尾釋放,或者在runloop迭代之後釋放。所以這不是問題來自何處。 – Cyrille
請注意不同。 ARC將在'CGRect box = CGRectMake(...);'代碼之前釋放UIColor對象。我在將一個現有項目轉換成許多月前的ARC時遇到了這個問題...... – JuliusO
負面影響。剛剛嘗試了我的一段代碼:'CGColorRef white = [UIColor whiteColor] .CGColor; CGContextClearRect(ctx,rect); CGContextSetFillColorWithColor(ctx,white); CGContextAddPath(ctx,_bezier.CGPath); CGContextFillPath(ctx);'它在ARC中完美運行。 – Cyrille