Core Animation:布局

  1. 视图的frameboundscenter(对应于图层是position)属性仅仅是存取方法,当操纵视图的frame,实际上是在改变位于视图下方CALayerframe,不能够独立于图层之外改变视图的frame

  2. 对于视图或者图层来说,frame并不是一个非常清晰的属性,它其实是一个虚拟属性,是根据boundspositiontransform计算而来,所以当其中任何一个值发生改变,frame都会变化。相反,改变frame的值同样会影响到他们当中的值

  3. frameboundscenter的区别如下图所示:

    (图一)frame、bounds和center对比

    (图二)旋转后frame、bounds和center对比

  4. 图层的anchorPoint属性被暴露出来,anchorPointcontentsRect属性类似,用单位坐标来描述。改变anchorPoint,会改变图层的frame。如下图三所示

    (图三)改变anchorPoint后,frame值对比

    最重要的是,图层的旋转是以anchorPoint为旋转中心的。

5.图层具有一个叫做geometryFlipped,类型为BOOL的属性。设置这个属性为YES后,它的子图层的坐标系会垂直翻转,即以左下角作为原点。若再将一个子图层的geometryFlipped设置为YES,则这个图层的子图层会再次翻转,相当于没有经过翻转了。

6.对于图层positionanchorPoint的理解参考这个链接(positionlayer中的anchorPoint点在superLayer中的位置坐标):http://blog.csdn.net/yongyinmg/article/details/37927793anchorPoint的改变,会影响图层旋转的效果。

7.正常情况下,图层是根据它们子图层的sublayers出现的顺序来进行绘制的。但通过改变zPosition可以改变图层的显示顺序。(zPosition不会改变事件传递的顺序)

8.图层的hitTest:方法可以检测图层是否被点击。如果被点击的点包含在当前图层的子图层,就会返回最后一个包含该点的图层。如果子图层都没有包含,但当前图层包含该点,就会返回当前图层。否则,就返回nil

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容