我正在尝试使用CGAffinetransform实现相机缩放。转换很好,但是当我将其缩放到更大的尺寸时,它超出了我分配给AVCaptureVideoPreviewLayer的帧。我尝试将masksToBounds属性设置为YES,但没有帮助。

我可以将其包含在其框架中吗?

编辑:
我想要的是可以为相机预览层指定一个特定区域,如果我对其应用缩放变换(即,预览层的帧被扩展),则该层在指定区域之外的部分将被裁剪。

最佳答案

您应该将要缩放的图层放在另一图层的内部,然后屏蔽该图层( super 图层)。相同的东西也适用于 View 。

IE。您有两个 View /层:clippingViewscalingView,其中scalingView是clipingView的 subview ,clipingView是实际裁剪到其边界的 View 。

[clippingView addSubview:scalingView];
clippingView.clipsToBounds = YES;

或使用图层
[clippingLayer addSublayer:scalingLayer];
clippingLayer.masksToBounds = YES;

关于ios - CALayer内容超出范围-iOS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14235032/

10-10 20:58