Я создал круг с колодой карт, которую пользователь может вращать, чтобы выбрать одну. После того, как панорамирование заканчивается, оно привязывается к заданному углу с красивой анимацией замедления. В будущем будет какое-то указание, что выбрана карта под углом 45 градусов. Я хотел бы указать, что выбор изменился с помощью тактильной обратной связи, как и в UIPickerView
. Сейчас я пытаюсь добавить тактильную обратную связь к анимации замедления. Моя идея заключалась в том, чтобы сделать генератор обратной связи и вызывать .selectionChanged()
в анимации столько раз, сколько карт было пропущено. Но пока я решил просто назвать это 3 раза. К сожалению, ни одна из моих идей не работает - даже создать отдельный UIViewPropertyAnimator
не получается. Я полагаю, что я должен помещать анимационные свойства только в закрытие анимации. Сам аниматор работает правильно - работает анимация замедления.
animator.addAnimations {
UIView.animateKeyframes(withDuration: 5.0, delay: 0.0, options: [], animations: {
UIView.addKeyframe(withRelativeStartTime: 1.0/3.0, relativeDuration: 0.0, animations: {
self.selectionGenerator.selectionChanged()
})
UIView.addKeyframe(withRelativeStartTime: 2.0/3.0, relativeDuration: 0.0, animations: {
self.selectionGenerator.selectionChanged()
})
UIView.addKeyframe(withRelativeStartTime: 3.0/3.0, relativeDuration: 0.0, animations: {
self.selectionGenerator.selectionChanged()
})
})
}
animator.startAnimation()
Как я могу имитировать тактильную обратную связь, например, DatePicker , которая вибрирует при изменении выбора?