我正在将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