왜이 기능이 작동을 멈췄는지 모르지만이 부분을 그리면 코드 조각이 내 장치를 크래킹합니다. 어떤 핵심이나 제안이 큰 도움이 될 수 있도록 코어 그래픽을 처음 접했습니다. 감사! 대신 일을Quartz 2D Drawing 크래킹
// 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
Negative. 그냥 내 코드 조각에 시도 :'CGColorRef white = [UIColor whiteColor] .CGColor; CGContextClearRect (ctx, rect); CGContextSetFillColorWithColor (ctx, white); CGContextAddPath (ctx, _bezier.CGPath); CGContextFillPath (ctx); 그리고 그것은 ARC에서 완벽하게 작동합니다. – Cyrille