0

我的应用程序出现了奇怪的行为,从服务器加载了一张图片UIView

[self.imageFrame addSubview:self.myImage];

myImage 是从UIImageView类扩展的类的实例。第一次加载图像很好,但第二次,我得到了黑色背景,第三次很好,第四次是黑色背景,依此类推。

我尝试在调试器中打印图像描述,所以第一次,当图像正确加载时,我得到了这个描述:

(EGOImageView *) $7 = 0x0c940e80 <CustomImageView: 0xc940e80; baseClass = UIImageView; frame = (8 5; 72 72); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0xc940f80>>

第二次,当我得到黑色图像背景时,我得到的描述是:

(EGOImageView *) $8 = 0x0c9bfec0 <EGOImageView: 0xc9bfec0; baseClass = UIImageView; frame = (8 5; 72 72); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x1043dea0>>

描述和你看到的一样。但我不知道可能导致问题的原因。有什么建议吗?提前谢谢。

4

1 回答 1

0

在您的示例输出中,您的评论说两个日志消息都应该是 EGOImageView - 只是为了说明这一点 - 所以两个日志消息本质上是相同的。

根本问题是当你得到一个黑色视图时,你的代码没有设置 UIImageView 子类的图像属性。

我的建议是做几件事:

  • 将 UIImageView 子类的背景颜色设置为某种定义的颜色(即红色、绿色、蓝色等)。如果您有不同的图像“类别”或设置图像的方式,请为每个图像使用不同的颜色。当你得到一个空白的 imageView 时,这可能会给你更多的线索。

  • 在您的日志消息中记录图像属性。

编辑:

  • 加载图像时,请确保 imageview 的框架具有适当的大小(并且至少具有一定大小)[我已经解决了几个问题,但设置了适当的框架)。
于 2012-08-27T11:52:08.660 回答