调整CALayer内容的大小

24

我在 CALayer 中有几个 UIImageView。如何同时对它们进行缩放?我尝试设置 CALayer 属性,例如 la.contentsGravity = @"kCAGravityResizeAspect";,但图层中的图像始终显示原始大小。

1个回答

70

如果layer包含图像,则会将其缩放为65%

layer.transform = CATransform3DMakeScale(.65, .65, 1);

当第三个数字为1时,为什么对我的程序没有任何作用,而当我也像第一和第二个数字一样设置为.65时,它开始工作了? - durazno
@durazno:在二维结构上应用三维变换——第三个参数(z)是无关紧要的。如果您在此代码之前绕z轴旋转,并使用另一个值而不是1进行旋转,则应该会得到不同的结果。 - vikingosegundo
这个方法只有在我把层添加为子层之后才起作用。例如:view.layer.addSublayer(myLayer)myLayer.transform = CATransform3DMakeScale(0.65, 0.65, 1) - Lance Samaria
@LanceSamaria 因此第一句话是“如果图层包含图像” - vikingosegundo
@vikingosegundo 你好,谢谢回复。你的答案百分之百有效,我甚至点了赞。但是当我先将图像添加到层中,然后进行变换,最后将层添加到视图的层中时,变换没有发生。只有按照这个顺序才对我起作用:首先将图像添加到层中,其次将层添加到视图的层中,最后进行变换。再次感谢你的答案,但是在将图像添加到层中并在将层添加到视图之前进行变换对我不起作用。 - Lance Samaria
为什么你会期望那样能够工作呢?它毫无意义。 - vikingosegundo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接