Получение ошибки ": doClip: empty path."на
CGContextClip(ctx);
при использовании кода Ахмета Ардала для пользовательского для пользовательского фона UINavigationBar.
В идеале я хотел бы устранить эту ошибку - остановит ли это одобрение Apple?
Насколько я понимаю, он определяет область отсечения для рисования. Я сделал графику navbar нужного размера, поэтому теоретически их не нужно обрезать.
Поэтому закомментировал оскорбительную строку.Кажется, что все замечательно, но, учитывая, что это может иметь последствия, о которых я не знаю
Ниже приведен код, так что он работает, если у вас есть более глубокая горизонтальная панель, скажем, с сегментированным элементом управления
- (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);
}