0

更新:或多或少解决了。尝试了最简单的解决方案(当然是最后一个),然后简单地将图像替换为另一个图像。果然,没有崩溃。仍然很好奇是什么原因造成的。但至少我知道我可以通过简单地插入另一个图像来修复它。我使用的那个是从剪贴画网站下载的,并在inkScape中进行了修改……也许它以某种方式损坏了。我可能永远不会知道,但感谢任何见解!

我从来没有遇到过这种情况,我尝试了三种方法(详见下文)并且有点难过。我已经在两个不同的设备上进行了测试,结果相同。

我有一个从笔尖加载的视图,其中包含一个带有常规 ole UIButton 作为子视图的图像视图。每次我设置该按钮的背景图像时,一旦加载父视图,我就会收到内存警告。然后当我点击按钮时,由于内存压力,我崩溃了(或者更确切地说,iOS 杀死了我)。当我不设置图像时,一切运行正常。

我尝试过: 1. 只需将图像设置在笔尖中。2. 在父视图WillAppear 中,像这样设置图像:

[button setBackgroundImage:[UIImage imageNamed:@"yellowPencil.png"]
 forControlState:UIControlStateNormal];

3. 或者,像这样设置图像:

NSString *path = [[NSBundle mainBundle]pathForResource:@"yellowPencil" ofType: @"png"];
UIImage *pencil = [UIImage imageWithContentsOfFile:path];
[button setBackgroundImage:pencil forControlState:UIControlStateNormal];

方法 1 和 2 产生重复的内存警告,好像有什么在循环,当我点击按钮时崩溃。

方法 3 始终生成两个警告,并且在我点击按钮时由于内存压力而崩溃。

同样,将图像排除在等式之外可以解决问题。该图像是我在inkScape 中创建的PNG,大小正确,带有@2x 版本。

非常感谢任何帮助!

4

1 回答 1

0

如果不需要 alpha 通道,最好使用 jpeg。

于 2013-11-13T03:03:34.613 回答