在iOS7中的drawRect事件期间,UIImageView图像不会保留

时间:2013-10-06 12:54:45

标签: ios properties uiimageview transparency drawrect

我正在将iOS-6.1和xcode4的应用程序项目转换为iOS-7和xcode5。我在UIImageView上方的透明UIView上绘制的原始iOS-6.1例程在iOS7中不起作用。这是我所做的以及如何修复它。我希望有人能告诉我如何做得更好!

使用InterfaceBuilder,我在View Controller视图上创建一个方形(320 x 320)UIImageView。然后我直接在它上方制作一个320 x 320 UIView,并使用Interface Builder Attributes Inspector使其透明。

然后我在Interface Builder中链接setter和getter。 UIImageView @property是(非原子的,保留)。然后,我将现在透明的UIView子类化,并在drawRect中绘制。

在iOS6.1中,这很好用。在iOS-7中我遇到了问题。

(实际上有几个)。作为旁注,在xcode5中,当我尝试使UIView透明时,我无法在选择UIView时显示属性检查器。这可能是一个错误,可能在我的xcode5安装中,还是xcode5 Attributes Inspector不再支持UIViews?

所以我在iOS-7中以编程方式使UIView透明化。我在UIView的drawRect中这样做,这可能是矫枉过正,但我​​仍在试图弄清楚发生了什么:

 self.backgroundColor = [UIColor clearColor];
 self.opaque= NO;
 self.window.backgroundColor = [UIColor clearColor];

然后我必须使用此代码

使UIImageView出现在drawRect中
UIImage *myImage = [UIImage imageNamed:@"myImage.png"];
CGRect imageRect;
imageRect.origin.x = self.bounds.origin.x + 10;
imageRect.origin.y = self.bounds.origin.y + 10;
imageRect.size.width = 300;
imageRect.size.height = 300;
[myImage drawInRect:imageRect];

事情现在很好。我得到了我想要的东西,这是我在图像上的绘图。但是,每次需要调用drawRect时,调用myImage似乎都是一个糟糕的性能。

任何人都可以看到为什么我的原始显示UIImageView的方法在iOS-7中不起作用?有没有人能够更好地解决我昂贵的show-the-image-every-time方法?

提前致谢

TFR

0 个答案:

没有答案