从服务器加载时的黑色图像

时间:2012-08-26 20:21:05

标签: objective-c ios

我在我的应用中出现了奇怪的行为,图像是从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>>

描述与您所见相同。但我不知道可能导致问题的原因。有什么建议吗?提前完成。

1 个答案:

答案 0 :(得分:0)

在您的示例输出中,您的注释表明两条日志消息都应该是EGOImageView - 只是为了清楚这一点 - 所以两条日志消息基本相同。

根本问题是,当您获得黑色视图时,您的代码未设置UIImageView子类的image属性。

我的建议是做几件事:

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

  • 在日志消息中记录image属性。

编辑:

  • 当您加载图像时,请确保imageview的框架具有适当的尺寸(并且至少有一些尺寸)[我已经解决了几个问题,但设置了适当的框架。)