gpt4 book ai didi

ios - 更改 View 的值及其图层的值

转载 作者:行者123 更新时间:2023-11-28 21:29:11 25 4
gpt4 key购买 nike

我正在使用 CABasicAnimation 为 ImageView 设置动画。我将它的图层向左、向右、向上和向下移动,有时我会将它放大,然后将其重置为原始大小等。

我正在对它的 layer 做所有这些,所以我想我可能必须移动和缩放真实的东西以及它的 layer 但是当我测试它时用点击手势看它是否真的只是停留在开始的地方,但事实并非如此。因此,就我而言,我不再需要更改其view 的框架。

更改 View 层的值是否也会更改其 View 的值?

最佳答案

A UIView只不过是 CALayer 的精美包装– 带来 UIResponder事件和动画在许多其他事物中的便利。

很多UIView属性实际上只是底层 CALayer 的转发版本属性,纯粹为了方便而定义。

  • View 的 frame & bounds属性应始终反射(reflect)层等效项。

  • transform稍微复杂一点,至于 View 类型是CGAffineTransform – 而在 layer 上这是CATransform3D .如果图层的变换可以表示为 CGAffineTransform , 然后你就可以在图层上设置它后从 View 访问它。如果不能表示,那么它的值是未定义的。

因此,是的,您说不需要更新 frame 是对的或 transformUIView 上在其 CALayer 上更改它时.请注意,这些属性不会反射(reflect)动画的“飞行中”值——您需要访问图层的 presentationLayer 。为此。

另请注意,正如@par 和@jrturton 提到的那样,如果层的变换不是恒等变换,则 frame是未定义的,因此你不应该使用它。

关于ios - 更改 View 的值及其图层的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36825675/

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