#ios #swift #core-animation
#iOS #быстрый #ядро-анимация
Вопрос:
Я пытаюсь сделать так, чтобы изображение появилось на экране. Однако каждый раз, когда я пытаюсь использовать CATransform3DScale, представление исчезает. Я попытался настроить zPosition, но это не сработало. Я использую «Оживление» из cocoapods. Похоже, я не могу найти решение этой проблемы.
private func setupAnimation(){ var transform = CATransform3DIdentity transform.m34 = -1.0/500.0 //containerViews[0].layer.anchorPoint = CGPoint(x: 0.0, y: 0.0) containerViews[0].layer.zPosition = CGFloat(Float.greatestFiniteMagnitude) transform = CATransform3DScale(transform, 0, 0, 1) let animation = BasicAnimation(keyPath: .transform) animation.fromValue = CATransform3DIdentity animation.toValue = transform animation.duration = 3.0 animation.setAnimationDidStop { _ in print("hello") self.containerViews[0].layer.zPosition = 0 } animation.animate(in: containerViews[0].layer) }
Вид исчезает, а затем появляется снова после продолжительности анимации.
Комментарии:
1. Попробуйте дать нам лучшее описание «выскакивания из экрана» … Вы пытаетесь начать с очень маленького представления и заставить его «вырасти»?
2. преобразование = CATransform3DScale(преобразование, 0, 0, 1) должно быть увеличено с 1. Это была ошибка с моей стороны, и я не понимал, что должна была делать трансформация
3. Не могли бы вы дать ответ на свой собственный вопрос и отметить его как решенный?
Ответ №1:
преобразование = CATransform3DScale(преобразование, 0, 0, 1) должно быть увеличено с 1. Это была ошибка с моей стороны, и я не понимал, что должна была делать трансформация
Также из значения не должно быть идентичности