獲取錯誤「:doClip:空路徑」。 onCGContextClip空路徑錯誤(自定義UINavigationBar背景)
CGContextClip(ctx);
當使用Ahmet Ardal的自定義代碼爲UINavigationBar自定義背景。
理想情況下,我想解決這個錯誤 - 它會停止蘋果的批准嗎?
我的理解是它定義了裁剪區域的繪製。我製作的導航欄圖形尺寸合適,因此理論上它們不需要裁剪。
因此註釋掉了違規行。一切似乎是偉大的,但擔心它可能有反響,我不知道關
下面是調整了代碼,所以它的工作原理,如果你有一個更深層次的景觀酒吧,說在它分段控制
- (void) drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
{
if ([self isMemberOfClass:[UINavigationBar class]] == NO) {
return;
}
//NSLog(@"NAV HEIGHT IS %f %f",self.frame.size.height, self.frame.size.width);
UIImage *image = nil;
if (self.frame.size.width > 320) {
if (self.frame.size.height > 32) {
// Deep NavBar
image = [UINavigationBar bgImageLandscapeDeep];
} else {
image = [UINavigationBar bgImageLandscape];
}
} else {
image = [UINavigationBar bgImagePortrait];
}
NSLog(@"CGContextClip produces <Error>: doClip: empty path. Path is %@",ctx);
//CGContextClip(ctx);
CGContextTranslateCTM(ctx, 0, image.size.height);
CGContextScaleCTM(ctx, 1.0, -1.0);
CGContextDrawImage(ctx, CGRectMake(0, 0, self.frame.size.width, self.frame.size.height), image.CGImage);
}