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.left + insets.right) < 宽度

(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

插图顶部 > 0

insets.right > 0

insets.bottom > 0

于 2015-06-02T08:40:24.523 回答