我可以在iOS中使用swift绕y轴旋转一个对象,但是如何绕单个轴旋转多个对象呢?

我可以在iOS中使用swift绕y轴旋转一个对象,但是如何绕单个轴旋转多个对象呢?,ios,swift,Ios,Swift,我创建了这个函数,它绕Y轴旋转一个对象(imageViewLogo) 问题是,如何围绕一个特定点旋转多个对象 例如,正方形围绕蓝色轴旋转 func animate() { var id = CATransform3DIdentity id.m34 = -1.0 / 1000 var transformAnim = CAKeyframeAnimation(keyPath:"transform") transformAnim.values

我创建了这个函数,它绕Y轴旋转一个对象(imageViewLogo)

问题是,如何围绕一个特定点旋转多个对象

例如,正方形围绕蓝色轴旋转

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")
}

最简单的方法是将所有要旋转的视图放在另一个视图中,然后旋转该超级视图。(你也可以在另一层中放置多个层并旋转包含层,但这需要更多的工作。)

@DeBanana,不。在iOS中,所有UI代码都需要在主线程上运行。谢谢,这是一个简单的解决方案,告诉我如何使其不(双面),因此我将此标记为最佳答案,当我旋转某物时,我不希望另一面出现。呃,你不能。如果你绕Y轴旋转某物,当你旋转到90/-90度时,底部会暴露出来。你说你不想让对方出现。你想做什么呢?如果你在3D Max这样的3D软件包上工作,有一个名为[force 2 side]的选项,这会使四边形(例如)从两侧显示,当[force 2 side]关闭时,它不会从另一侧显示,目前类似于[force two side]的功能处于打开状态,我想将其关闭。除此之外,我想显示一个文本字段和两个按钮。你还没有回答我的问题。