Подтвердить что ты не робот

Недопустимый контекст при создании UIImageView

У меня возникла ошибка, когда я попытался создать UIImageView. Посмотрите на этот код:

UIImage* backgroundPanel = [[UIImage imageNamed:@"loginPanelBackground.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(90, 0, 149, 416)];

self.connexionBackgroundImgView = [[UIImageView alloc] initWithImage:backgroundPanel];
self.connexionBackgroundImgView.frame = CGRectMake(0, 0, 416, 390); // THIS LINE PROVOC THE INVALID CONTEXT
[self.connexionView insertSubview:self.connexionBackgroundImgView aboveSubview:self.connexionToCreationCompteView];

Он выдает эту ошибку в журнале:

<Error>: CGContextSaveGState: invalid context 0x0
<Error>: CGContextSetBlendMode: invalid context 0x0
<Error>: CGContextSetAlpha: invalid context 0x0
<Error>: CGContextTranslateCTM: invalid context 0x0
<Error>: CGContextScaleCTM: invalid context 0x0
<Error>: CGContextGetCTM: invalid context 0x0
<Error>: CGContextSaveGState: invalid context 0x0
<Error>: CGContextClipToRect: invalid context 0x0
<Error>: CGContextDrawTiledImage: invalid context 0x0
<Error>: CGContextRestoreGState: invalid context 0x0
<Error>: CGContextGetCTM: invalid context 0x0
<Error>: CGContextSaveGState: invalid context 0x0
<Error>: CGContextClipToRect: invalid context 0x0
<Error>: CGContextDrawTiledImage: invalid context 0x0
<Error>: CGContextRestoreGState: invalid context 0x0
<Error>: CGContextGetCTM: invalid context 0x0
<Error>: CGContextSaveGState: invalid context 0x0
<Error>: CGContextClipToRect: invalid context 0x0
<Error>: CGContextDrawTiledImage: invalid context 0x0
<Error>: CGContextRestoreGState: invalid context 0x0
<Error>: CGContextRestoreGState: invalid context 0x0

У меня была эта ошибка только на iPad, а не на симуляторе, я не понимаю..:/

4b9b3361

Ответ 2

У меня была эта проблема, пока я не узнал, что аргумент вставки в шапке для resizableImageWithCapInsets: был неправильным - он вообще не оставил свободной области (вам нужен как минимум 1x1 пиксель, не покрытый кепкой). Поэтому убедитесь, что:

(insets.left + insets.right) < Ширина

и

(insets.top + insets.bottom) < высота

Ответ 3

Симулятор нечувствителен к регистру. Устройство чувствительно к регистру. Png назван правильно? Возможно, это "Вход" с капиталом L.

Ответ 4

Я все еще не могу комментировать из-за низкой репутации. Однако я хотел бы добавить к neon1 ответ, который мне очень помог.

Вам также необходимо убедиться, что все вставки больше нуля.

insets.left > 0

insets.top > 0

insets.right > 0

insets.bottom > 0