我正试图在iOS应用程序中拖拽一个CALayer.

只要我更改它的Position属性,它就会try 为新位置设置动画,并且到处闪烁:

 layer.position = CGPointMake(x, y)

我怎么能瞬间移动CALayers?我似乎无法理解核心动画API.

推荐答案

您希望将呼叫包含在以下内容中:

[CATransaction begin]; 
[CATransaction setValue: (id) kCFBooleanTrue forKey: kCATransactionDisableActions];
layer.position = CGPointMake(x, y);
[CATransaction commit];

Ios相关问答推荐

构建iOS项目失败.我们运行了";xcodeBuild";命令,但它退出并返回错误代码65-expo reaction ative

我如何确保用户继续他们在应用程序中停止的地方?

在许多UIButton中对齐文本,即使SF Symbols(或其他图像)具有不同的宽度?

如何将模糊输入/模糊输出添加到SwiftUI中的非对称过渡?

如何在Android或iPhone上的原生react 中处理其他应用程序通知?

无法在 CollectionView 中禁用部分弹跳 - 组合布局

具有线性渐变的 SVG textPath 在 Safari 中损坏

FileHandle 不会在 iOS 中释放内存

从远程通知启动时,iOS 应用程序加载错误

Swift如何表示单位转换的标准大气压

setNeedsLayout 和 setNeedsDisplay

界面生成器 - 无法从路径加载设计对象(空)

如何找出坐标之间的距离?

iOS swift从另一个数组中删除一个数组的元素

在 Grand Central Dispatch 中使用 dispatch_sync

Swift中类的初始化类方法?

~= Swift 中的运算符

单击 GoogleSignIn 按钮时应用程序崩溃

从故事板导航到其他 Swift 1.2 文件时 Xcode 6.3 崩溃

Parse for iOS:try 运行应用程序时出错