gpt4 book ai didi

objective-c - UIView 动画在 View 顶部使用轴翻转

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

我有一个 UIView,我想为向上翻转设置动画。这与 UIViewAnimationOptionTransitionFlipFromTop 不同,因为它将轴置于 View 的中间。我想让轴位于 View 的 top 上,这样它就会像一叠纸从 top axis 翻转一样向上翻转(不是页面剥离).

[UIView transitionWithView:self.view duration:0.6
options:UIViewAnimationOptionTransitionFlipFromTopAxis // <---- Wish there was an option like this
animations:^{
// Exchange the views here


} completion:NULL];

我认为使用标准的 UIView 动画选项不可能做到这一点。有什么替代方法可以控制翻转轴?

最佳答案

最简单的方法可能是将要翻转的 View 封装在一个更高的、偏移的、透明的容器 View 中,然后翻转该容器。换句话说:

  |-----|
| |
| B |
| |
0 | |
||---||
|| A ||
||---||
|-----|

A是你要向上翻转的 View ; B是容器; 0 是屏幕的顶部。将您的过渡应用到 B;通过将 B 翻转到它的中间,您可以沿着它的顶部翻转 A。

您也可以做一些更复杂的事情,只需使用 Core Animation 自己实现翻转,但这会更容易一些。

已编辑:

如果你想采用 Core Animation 方法,基本上你需要做的是将 CATransform3D 应用到图层以绕水平轴旋转它,即 theLayer.transform = CATransform3DMakeRotation(M_PI, 1, 0, 0)。不过,这会将它翻转到中间,这是您不想要的,因此您还需要更改层的 anchorPoint 的默认值 (0.5, 0.5)(0.5, 0) 以便它的“原点”位于其顶部边缘的中心。您可能还想使用 CATransform3D 的 m34 成员将透视效果应用于翻转转换,如所述 here .

关于objective-c - UIView 动画在 View 顶部使用轴翻转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8451905/

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