簡體   English   中英

如何更改CALayer的默認動畫時間?

[英]How to change a CALayer's default animation time?

我使用這些代碼來移動CALayer:

CGPoint position = self.position;
position.x += 10;
position.y += 10;
self.position = position;

當我在沒有任何動畫調用的情況下更改圖層的位置時,會有一個默認動畫。當我在touchesMoved:withEvent:中使用這些代碼時,這將導致圖層移動滯后。

我想要做的是刪除默認動畫,並立即移動圖層,以便它可以快速響應觸摸事件,就像UIView的“中心”屬性一樣。

我該怎么辦? 特別的thx!

另一張海報有正確的想法,但沒有提供足夠的信息。

如果要在沒有動畫的情況下立即更改圖層屬性,則需要將這些更改放在禁止操作的CATransaction中:

[CATransaction begin];
//[CATransaction setAnimationDuration: 1.0/30.0];
[CATransaction setDisableActions: TRUE];
//Put layer changes you want to take place without animation here.
[CATransaction commit];

簡單的設置

 [CATransaction setDisableActions:YES];

這將使Layer移動而不會延遲

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM