Objective c 在iOS中旋转对象时,如何使对象从一侧显示?(代码&x2B;gif)内部

Objective c 在iOS中旋转对象时,如何使对象从一侧显示?(代码&x2B;gif)内部,objective-c,iphone,swift,3d,rotation,Objective C,Iphone,Swift,3d,Rotation,在iOS中旋转对象时,如何使对象从一侧显示 我希望发生的事情(如您所见,我可以向UITableview单元格添加另一个面) 发生了什么,我甚至不能添加另一张脸,因为前一张脸又出现了 我正在使用的代码 func animate() { var id = CATransform3DIdentity id.m34 = -1.0 / 1000 var transformAnim = CAKeyframeAnimation(keyPath:"trans

在iOS中旋转对象时,如何使对象从一侧显示

我希望发生的事情(如您所见,我可以向UITableview单元格添加另一个面)

发生了什么,我甚至不能添加另一张脸,因为前一张脸又出现了

我正在使用的代码

func animate()
{
    var id = CATransform3DIdentity
    id.m34 =  -1.0 / 1000

    var transformAnim            = CAKeyframeAnimation(keyPath:"transform")
    transformAnim.values         = [
        NSValue(CATransform3D: CATransform3DRotate(id, 0 * CGFloat(-M_PI_2), 0, 1.0, 0)),
        NSValue(CATransform3D: CATransform3DRotate(id, 1 * CGFloat(-M_PI_2), 0, 1.0, 0)),
        NSValue(CATransform3D: CATransform3DRotate(id, 0 * CGFloat(-M_PI_2), 0, 1.0, 0))
    ]
    transformAnim.keyTimes       = [0, 0.5, 1.0]
    transformAnim.duration       = 0.7

    self.imageViewLogo.layoutIfNeeded()

    self.imageViewLogo.layer.addAnimation(transformAnim, forKey: "transform")
}
例如,如果您知道3ds max中名为[force 2 sided]的功能,我希望在这里将其打开,但iOS似乎没有这样的功能

  • 这是一个高级问题,我希望专家能回答我
谢谢

编辑

如果你仍然不确定我在问什么,我的意思是:

如何使对象在旋转时仅从一侧显示


这是一个标准的翻转过渡。查看UIView方法
+从视图:到视图:持续时间:选项:完成:
,特别是
UIViewAnimationOptionTransitionFlipFromLeft
UIViewAnimationOptionTransitionFlipFromRight
设置

如果要对不同的视图控制器执行翻转转换,还存在视图控制器转换

如果你想自己制作这个动画,那就需要更多的工作

您需要做的是创建两个单独的动画,一个用于正面,另一个用于背面:


首先,设置前表面旋转90度的动画,此时它将消失,因为您在边上查看它。此时,添加后半部视图/图层,但面朝另一方向。然后在第二个动画中,将新视图旋转90度,使其保持平面并面朝上。有可能得到一个无缝的动画,给你想要的效果,但这是一个困难的,繁琐的代码编写。

解决方案是一个简单的声明,我从来没有听说过

imageViewLogo.layer.doubleSided = false
从苹果的网站:-

一个布尔值,指示图层在显示时是否显示其内容 背对着观众。可动画化


图层的双面属性成功了!(补充答覆)