11

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 でのみ発生し、シミュレーターでは発生しませんでした。わかりません..:/

4

4 に答える 4

40

resizableImageWithCapInsets: への cap inset 引数が間違っていることがわかるまで、この問題がありました — キャップされていない領域をまったく残しませんでした (キャップで覆われていない少なくとも 1x1 ピクセルが必要です)。したがって、次のことを確認してください。

(インセット.左 + インセット.右) < 幅

(insets.top + insets.bottom) < 高さ

于 2012-11-26T14:51:08.150 に答える
0

シミュレータは大文字と小文字を区別しません。デバイスでは大文字と小文字が区別されます。pngの名前は正しいですか?多分それは大文字のLで「ログイン」です。

于 2012-11-01T19:16:51.237 に答える
0

ここで答えを参照してください: UITableView / UIScrollView の完全なコンテンツの UIImage をキャプチャして、ios デバイスで動作させるにはどうすればよいですか?

ありがとうエラジフ!

于 2012-11-03T15:28:10.477 に答える
0

評価が低いため、まだコメントできません。ただし、neon1の回答に追加したいと思います。これは私を大いに助けてくれました。

また、すべてのインセットがゼロより大きいことを確認する必要があります。

insets.left > 0

insets.top > 0

insets.right > 0

insets.bottom > 0

于 2015-06-02T08:40:24.523 に答える