2015-08-12 4 views
1

Я пытаюсь оживить колебание в быстром, но не повезло до сих пор. То, что у меня есть, это яйцо на столе, и я хочу, чтобы дно яйца выглядело прилично к столу, а верхняя часть яйца медленно колебалась влево и вправо.Анимация wobbling in swift

Я попытался это до сих пор:

CATransaction.begin() 
    CATransaction.setCompletionBlock({ 
     completion?() 
    }) 
    let rotateAnimation = CABasicAnimation(keyPath: "transform.rotation") 
    rotateAnimation.autoreverses = true 
    rotateAnimation.repeatCount = Float(loops) 
    rotateAnimation.fromValue = CGFloat(-0.1) 
    rotateAnimation.toValue = CGFloat(0.1) 
    rotateAnimation.duration = 1.0 
    animObject.layer.addAnimation(rotateAnimation, forKey: nil) 
    CATransaction.commit() 

Однако это делает весь яйцо вращаться, в том числе ее нижнего конца, поэтому оно не на самом деле выглядит как извилины.

Картина у вас есть карандаш в руке, и вы поворачиваете его влево и вправо. И верхний конец пера, и нижний конец идут одинаково далеко на противоположные стороны друг друга. Теперь положите нижний конец карандаша на стол и наклоните его влево и вправо. Только верхний конец меняет положение. То, чего я пытаюсь достичь.

ответ

1

Попробуйте это (возможно, придется немного подправить):

egg.layer.anchorPoint = CGPoint(x: 0.5, y: 1.0) 

Устанавливает якорь в нижней середине, так что теперь при повороте, он будет вращаться вокруг этой точки, в отличие от {0.5, 0.5}, который по умолчанию ,

+0

Спасибо за советы. Он выполняет то, что я хочу, но также делает изображение яйца перемещающимся примерно на 50 пикселей вверх от места, где он сидит. Я должен поиграть вокруг, чтобы понять эту часть. Но отличная помощь :) –

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