2016-02-04 5 views
2

Я создал эту функцию, которая вращает объект (imageViewLogo) вокруг оси YЯ могу вращать объект вокруг оси y в iOS с помощью swift, но как вращать многие объекты вокруг одной оси?

Вопрос в том, как вращать многие объекты вокруг определенной точки?

enter image description here

, например квадраты вращаются вокруг синей оси.

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

@DeBanana, no. В iOS весь код пользовательского интерфейса должен быть запущен в основном потоке. –

ответ

4

Проще всего сделать будет поместить все ваши мнения, которые вы хотите, чтобы повернуть в другой точке зрения, а затем повернуть эту SuperView. (Вы также можете сделать то же самое с размещением нескольких слоев внутри другого слоя и вращением содержащего слоя, но это больше работает.)

+1

спасибо, человек, это простое решение, скажите мне, как сделать это не (2-сторонняя), поэтому я отмечаю это как лучший ответ, когда я вращаю что-то, что я не хочу, чтобы другая сторона появлялась. – DeyaEldeen

+0

Er, вы не можете. Если вы вращаете что-то вокруг оси Y, когда ваше вращение достигает 90/-90 градусов, снизу обнажается. Вы говорите, что не хотите, чтобы другая сторона появилась. Что вы хотите вместо этого? –

+1

, если вы работали над некоторыми 3D-пакетами, такими как 3D Max, есть опция под названием [force 2 sided], это делает квадрат (например) отображаться с обеих сторон, а когда [force 2 sided] выключен, он не появляется из другая сторона, в настоящее время, что похоже на [force two sided], функция включена, я хочу ее отключить. – DeyaEldeen

Смежные вопросы