layer 的属性:
contents,可以给contents赋值一个CGImage,arc模式下可以使用__bridge解决类型兼容问题,如:
layer.contents = (__bridge id _Nullable)(image.CGImage);contentGravity,它用于决定图片的对齐方式,如:
layer.contentsGravity = kCAGravityResizeAspect;
kCAGravityResizeAspect 会等比例拉伸图片来适应图层的边界,图片会在图层的内部。
kCAGravityResize 会以layer的frame来拉伸图片以适应图层。
kCAGravityResizeAspectFill 会等比例拉伸图片,图片宽高比和layer的宽高比不一致时,图片会有溢出部分。contentsScale,决定图像的像素尺寸和视图大小的比例,默认情是1.0。它用来判断在绘制图层的时候应该为寄宿图创建的空间大小, 和需要显示的图片的拉伸度,对有些contentsGravity值contentsScale并不起作用,如kCAGravityResize。如果 contentsScale 设置为1.0,将会以每个点1个像素绘制图片,如果设置为2.0,则会以每个点2个像素绘制图片。
maskToBounds,可以用来决定是否显示超出边界的内容,设置成YES,则不显示超出边界的内容。
contentsRect,允许我们在图层边框里显示寄宿图的一个子域。这涉及到图片是如何显示和拉伸的,所以要比 contentsGravity 灵活多 了,和 bounds , frame 不同, contentsRect 不是按点来计算的,它使用了单位坐标,单位坐标指定在0到1之间,是一个相对值(像素和点就是绝对 值)。所以他们是相对于图片的尺寸的。
contentsCenter,它定义了一个固定的边框和一个在图层上可拉伸的区域,改变 contentsCenter 的值并不会影响到寄宿图的显示,除非这个图层的大小改变了,你才看得到效果。