Fix animations in Eureka
Recently I'm using Eureka for building forms dynamically. I show or hide some rows based on API data and the animation is strange, I couldn't find a way to disable it with Eureka APIs for aniamtion customization. But in the end I found two ways to solve this problem.
- Use a screenshot to hide the animations
// Use screenshot to hide strange animation of Eureka form
let window = UIApplication.shared.keyWindow!
let view = window.snapshotView(afterScreenUpdates: true)
if let view = view {
window.addSubview(view)
}
// Hide or show rows
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25, execute: {
UIView.transition(with: window, duration: 0.25, options: .transitionCrossDissolve, animations: {
view?.removeFromSuperview()
}, completion: nil)
})
- Disable
UIView
animations
UIView.setAnimationsEnabled(false)
// Hide or show rows
UIView.setAnimationsEnabled(true)