Я пытаюсь создать анимацию для слоя, где нижняя часть слоя переворачивается вверх.Подумайте о представлении, навесном на вершине, тогда нижняя часть оживляется вверх и вверх.Понравилась крышка компакта.То, что я хочу, похоже на стандартную анимацию сальто, но видеть только одну ее сторону.У меня просто проблемы с структурированием анимации.
Проблема в том, что я правильно понял анимацию, согласитесь, я не могу создать "петлевую" часть.То есть шарнир находится в центре, а не сверху.Чего мне не хватает?
Вот код:
[UIView animateWithDuration:2.0 delay:0.0 options:UIViewAnimationOptionCurveEaseIn animations:^{
CATransform3D frontTransform = CATransform3DIdentity;
frontTransform.m34 = 1.0 / -850.0;
CATransform3D rotation = CATransform3DRotate(frontTransform, M_PI/2, 1.0, 0.0, 0.0);
frontTransform = CATransform3DTranslate(frontTransform, 0.0, 0.0, menuView.bounds.size.height);
frontTransform = CATransform3DConcat(rotation, frontTransform);
menuView.layer.transform = frontTransform;
}completion:^(BOOL finished){
if (finished) {
[self.window sendSubviewToBack:menuView];
CATransform3D backTransform = CATransform3DIdentity;
backTransform.m34 = 0.0f; //Must be first before setting any other properties.
backTransform = CATransform3DRotate(backTransform, M_PI, 0.0, 0.0, 0.0);
backTransform = CATransform3DTranslate(backTransform, 0.0, 0.0, 0.0);
menuView.layer.transform = backTransform;
}
}];
Я пытаюсь анимировать слой, как описано выше, затем отправить вид слоя за всеми другими видами по завершении и вернутьслой в его первоначальном состоянии, так что я могу вывести его на фронт позже.
Спасибо за помощь!