2011-04-17 68 views
0

首先,轻轻地和我一起。我是Objective C和iOS编程的新手。 我刚刚购买了不透明度副本,我正在玩图层。到目前为止,我唯一的成绩是成功地设计并成功创建了我自己的计算器设计 - 所以我没有那么多!在Quartz 2d中使用不透明度生成的图层,而不是绘制到视图的图层

具体而言,我想知道如何使用Opacity CALayer子类来替换UIView上的背景层。将子图层添加到现有的视图层显然已经足够了 - 我已经设法解决了这个问题 - 但我如何使用Opacity CALayer子类来提供视图背景层的初始内容?我试着将Opacity子类中的drawInContext代码复制到我的UIView子类中的drawRect上,该子类承载了控制器'view'属性的代理视图,但是(由于某些原因,我无法理解)这种方式无效。

我认为视图的原始背景层是图层数组中的项目'0'?我的最终目标是让只是我的背后的层,而不必“忽略”原来的。

如果Brad Bradley博士有机会读到这个; ... 我一遍又一遍地观看了Quartz 2D和动画视频,并且我已经阅读了所有可以放置课程笔记的副本但是我发现的所有例子都是从托管视图中的图像开始的 - 在这个图像上增加了更多的图层,这并不是我以前的样子,我还读过“大牧场牧场指南”所有的康威和Hillegass的例子代码也是如此 - 但我会很生气的 - 他们也开始在视图中已经有一张图片了!

如果有人能帮助我 - 只要指出我的相关文档,不要在这里写下大量的代码 - 我会非常感谢。

VV。 PS:我故意不使用IB,因为我想首先掌握Cocoa Touch的底层机制,并且我不会在主体上使用点符号:-)。 (查看我的资料!)。

回答

0

技巧是在将其他图层钉入层次结构之前,重写视图的类方法'layerClass'作为所需的基本图层子类。这会在实例化视图时构建视图的基础(隐式)层,然后我可以在之后拍摄其他图层。

这是一个有趣的游戏。我很快就会明白!

此技术与使用具有'setLayer'实例方法的NSViews的相同要求明显不同,后者可用于更改隐式层AFTER实例。昂贵的过程不像UIView这样的轻量级对象。

相关问题