我一直被告知,如果你想在视图中显示内容,你必须在其中添加子视图,然后绘制到这些子视图中。
今天,我看到了这个问题(搜索其他内容):IPhone SDK: Camera access?
在接受的答案中,我看到其作者使用CALayers在主视图中绘制了4个子视图,但所有这些仅基于CALayers ......
所以我想知道......为什么?这是一种正确的做法吗?什么可能导致我使用seblayers而不是subviews?
答案 0 :(得分:2)
我一直在使用UIViews和CALayers。这真的取决于你想要什么和需要什么。 UIView在后台使用CALayer,所以你在任何一种情况下都使用CALayers。请注意,在CALayer类型的UIView中有一个图层属性。但是,使用UIView直接编码更容易,但它不会暴露核心动画的全部功能。使用CALayer进行编码确实会向您展示Core Animation和其他十几种API。
如果你只是担心添加子视图,那么任何一种方法都可行。您可以认为UIView隐藏了一些CALayer实现细节。