gpt4 book ai didi

ios - UIDynamicItem 手动更新转换

转载 作者:可可西里 更新时间:2023-11-01 03:24:13 27 4
gpt4 key购买 nike

我知道 centerboundstransform 的外部更改将在 UIDynamicItem 初始化后被忽略。

但是我需要手动更改UIDynamicAnimator系统中UIViewtransform

每次我更改transform时,它都会立即被覆盖。

有什么想法吗?谢谢。

最佳答案

任何时候你改变一个动画属性,你需要调用[dynamicAnimator updateItemUsingCurrentState:item]让动态动画师知道你做到了。它将更新其内部表示以匹配当前状态。


编辑:我从下面的代码中看到您正在尝试修改比例。 UIDynamicAnimator仅支持旋转和位置,不支持缩放(或任何其他类型的仿射变换)。不幸的是它接管了transform为了实现公正的轮换。我认为这是 UIDynamicAnimator 中的错误(但后来我发现 UIKit Dynamics 的很多实现都被归类为“错误”)。

您可以做的是修改边界(在调用 updateItem... 之前)并重新绘制自己。如果您需要仿射变换的性能,您有几个选择:

  • 将您的实际绘图逻辑移动到 CALayer 中或 subview 并修改其比例(如果您需要碰撞行为仍然有效,请更新您的 bounds 以匹配)。
  • 不是将您的 View 附加到行为上,而是附加一个代理对象(只需在 <UIDyanamicItem> 上实现 NSObject)将转换更改传递给您。然后,您可以将请求的转换与您自己的转换结合起来。

关于ios - UIDynamicItem 手动更新转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20631383/

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