我正在将一个应用程序项目从 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 属性检查器不再支持 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 中不起作用吗?对于我昂贵的每次显示图像的方法,有人有更好的解决方案吗?
提前致谢
TFR