CoreAnimation-Layer讲解

来源:互联网 发布:ubuntu ssh开机自启动 编辑:程序博客网 时间:2024/06/03 03:00
CALayer的属性contentsGravity允许你在图层的边界内容修改图层的contents图片的位置或者伸缩值。


使用contentsGravity位置常量,你可以指定图片位于图层任何一个边界,比如位于图层的角落,或者图层边界的中心。然而当你使用位置常量的时候,contentsCenter属性会被忽略。表1列举了位置常量和他们相应的位置。

表1 层的contentsGravity属性的定位常量

定位常量
描述

kCAGravityTopLeft
将内容图像定位到层的左上角。

kCAGravityTop
将内容图像定位到层的上边缘的水平居中位置。

kCAGravityTopRight
将内容图像定位到层的右上角。

kCAGravityLeft
将内容图像定位到层的左边缘的垂直居中位置。

kCAGravityCenter
将内容图像定位到层的中心。

kCAGravityRight
将内容图像定位到层的右边缘的垂直居中位置。

kCAGravityBottomLeft
将内容图像定位到层的左下角。

kCAGravityBottom
将内容图像定位到层的下边缘的水平居中位置。

kCAGravityBottomRight
将内容图像定位到层的右下角。

“层坐标系”标明了所支持的内容位置和相应的常量。

图1 层的contentsGravity属性的定位常量



    通过设置contentsGravity属性为其他一个常量(如表2所示)。图层的内容图片可以被向上或者向下拉伸, 仅当使用其他任何一个调整大小的常量的时候,contentsCenter属性才会对内容图片起作用。另外實作上發現,使用上Top的位置在下面,而Button的位置在上面,不知有什麼問題。

表2 层的contentsGravity的缩放常量

缩放常量
描述

kCAGravityResize
缩放内容图像以填充层边界,可能无视内容的自然比例,这是默认值。

kCAGravityResizeAspect
缩放内容图像使其竟可能占满层边界显示,但他仍然保持自然比例。

kCAGravityResizeAspectFill
缩放内容图片使其占满层显示,但仍保持自然比例。这可能导致内容超越到层边界之外。


“变换层的几何特性”表明了如何使用resizing模式,让一个正方形图像在一个矩形层内调整缩放比例。

图2 层的contentsGravity属性的缩放常量


如果沒有設定,則Default值為kCAGravityResize,讓內容自動填滿Layer。


参考:http://kirenenko-tw.blogspot.jp/2012/12/core-animation_17.html


0 0
原创粉丝点击