gpt4 book ai didi

ios - 立即更改 AVCaptureVideoPreviewLayer 位置

转载 作者:行者123 更新时间:2023-11-29 00:31:59 27 4
gpt4 key购买 nike

我在屏幕上有一个 AVCaptureVideoPreviewLayer。我想在用户触摸按钮后立即更改其位置。

我可以使用以下代码更改它的位置,但它不会立即发生,而是通过某种平滑的线性过渡发生。

CGRect frame = self.preview.frame;
frame.origin.x = previewLeft;
frame.origin.y = previewTop;
self.preview.frame = frame;

我怎样才能让它在没有任何内在动画的情况下改变它的位置?

最佳答案

CALayer.frame 是一个计算属性,但它不能显式动画。通过设置它,您还设置了 position,这是隐式动画。

您可以暂时抑制所有 Action ,即 Core Animation 创建其默认图层动画的机制:

Swift 代码:

CATransaction.begin()
CATransaction.setDisableActions(true)

self.preview.frame = frame;

CATransaction.commit()

Objective-C 代码:

[CATransaction begin];
[CATransaction setDisableActions:YES];

self.preview.frame = frame;

[CATransaction commit];

关于ios - 立即更改 AVCaptureVideoPreviewLayer 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41515171/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com