gpt4 book ai didi

iOS UIView 动画 CATransform3DMakeRotation 困惑

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:24:26 27 4
gpt4 key购买 nike

我有一个 UIView,我试图为向下翻转设置动画,同时它的轴位于 View 的底部。例如:

enter image description here

为此,我尝试使用 UIView 动画:

[UIView animateWithDuration:3 delay:0 options:UIViewAnimationCurveEaseOut animations:^{

// Flip Down
top3.layer.anchorPoint = CGPointMake(0.5, 1.0);
top3.layer.transform = CATransform3DMakeRotation(M_PI, 1, 0, 0);

} completion:^(BOOL finished) {

// Reset?
//top3.transform = CGAffineTransformMakeScale(1, 1);

}];

现在它没有按照我想要的方式工作,看起来 View 正在远离用户而不是朝向用户进行动画处理。它似乎没有提供 3D 效果,使其在向下旋转时看起来更接近用户,如我的图片所示。我很肯定这是因为我不了解如何使用 CATransform3DMakeRotation

问题:

  • 如何使 View 在下降时看起来离用户更近?比如在我的图像示例中倾斜它?
  • 当我设置我的 anchorPoint 时,它会向下移动我的视野,我该如何防止这种情况并仍然设置我的 anchorPoint
  • 对于 UIView 动画,我可以使用缓动设置吗? 在选项中使用了 UIViewAnimationCurveEaseOut
  • 我可以使用重力设置吗?

最佳答案

  • 从您的问题中不能完全清楚,但听起来您在动画过程中没有看到透视变形 — View 在旋转时保持矩形,对吧?要使 CALayer 以透视方式显示,其 transform 需要设置 m34 元素,如 here 所述。 .
  • 为了补偿移动 View 层的anchorPoint,您需要更改 View 的原始位置。
  • 是的。除了您正在使用的动画选项之外,还有几个动画选项,您可以像这样组合它们(例如):UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionAllowUserInteraction.
  • Core Animation 实际上没有任何物理概念。根据您想要的效果,您可以通过将多个动画与特定的缓动设置链接在一起来实现它——例如,一个坠落的物体撞击固体表面会在其下降过程中使用“缓入”动画,然后如果它随后反弹,则“缓和”。

关于iOS UIView 动画 CATransform3DMakeRotation 困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8494184/

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