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属性的缩放常量
使用contentsGravity位置常量,你可以指定图片位于图层任何一个边界,比如位于图层的角落,或者图层边界的中心。然而当你使用位置常量的时候,contentsCenter属性会被忽略。表1列举了位置常量和他们相应的位置。
表1 层的contentsGravity属性的定位常量
定位常量
描述
kCAGravityTopLeft
将内容图像定位到层的左上角。
kCAGravityTop
将内容图像定位到层的上边缘的水平居中位置。
kCAGravityTopRight
将内容图像定位到层的右上角。
kCAGravityLeft
将内容图像定位到层的左边缘的垂直居中位置。
kCAGravityCenter
将内容图像定位到层的中心。
kCAGravityRight
将内容图像定位到层的右边缘的垂直居中位置。
kCAGravityBottomLeft
将内容图像定位到层的左下角。
kCAGravityBottom
将内容图像定位到层的下边缘的水平居中位置。
kCAGravityBottomRight
将内容图像定位到层的右下角。
“层坐标系”标明了所支持的内容位置和相应的常量。
图1 层的contentsGravity属性的定位常量
表2 层的contentsGravity的缩放常量
缩放常量
描述
kCAGravityResize
缩放内容图像以填充层边界,可能无视内容的自然比例,这是默认值。
kCAGravityResizeAspect
缩放内容图像使其竟可能占满层边界显示,但他仍然保持自然比例。
kCAGravityResizeAspectFill
缩放内容图片使其占满层显示,但仍保持自然比例。这可能导致内容超越到层边界之外。
“变换层的几何特性”表明了如何使用resizing模式,让一个正方形图像在一个矩形层内调整缩放比例。
图2 层的contentsGravity属性的缩放常量
如果沒有設定,則Default值為kCAGravityResize,讓內容自動填滿Layer。
参考:http://kirenenko-tw.blogspot.jp/2012/12/core-animation_17.html