0
https://imgur.com/cDyns2l의 UIView하지 removeFromSuperview 후 제거/애니메이션()
승 나는 애니메이션을 사용자 정의하여 UIView 있습니다.
fileprivate func startAnimation() {
UIView.animate(withDuration: self.scaleTime, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseInOut, animations: {
self.one.transform = CGAffineTransform(scaleX: self.scaleFactor, y: self.scaleFactor)
}) { (complete) in
UIView.animate(withDuration: self.scaleTime, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseInOut, animations: {
self.one.transform = CGAffineTransform(scaleX: 1, y: 1)
self.two.transform = CGAffineTransform(scaleX: self.scaleFactor, y: self.scaleFactor)
}) { (complete) in
UIView.animate(withDuration: self.scaleTime, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseInOut, animations: {
self.two.transform = CGAffineTransform(scaleX: 1, y: 1)
self.three.transform = CGAffineTransform(scaleX: self.scaleFactor, y: self.scaleFactor)
}) { (complete) in
UIView.animate(withDuration: self.scaleTime, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseInOut, animations: {
self.three.transform = CGAffineTransform(scaleX: 1, y: 1)
self.four.transform = CGAffineTransform(scaleX: self.scaleFactor, y: self.scaleFactor)
}) { (complete) in
UIView.animate(withDuration: self.scaleTime, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseInOut, animations: {
self.four.transform = CGAffineTransform(scaleX: 1, y: 1)
self.five.transform = CGAffineTransform(scaleX: self.scaleFactor, y: self.scaleFactor)
}) { (complete) in
UIView.animate(withDuration: self.scaleTime, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseInOut, animations: {
self.five.transform = CGAffineTransform(scaleX: 1, y: 1)
}) { (complete) in
self.startAnimation()
}
}
}
}
}
}
}
이 루프가 일어나서 원하는 효과를냅니다. 그러나 슈퍼 뷰에서 내 애니메이션보기를 제거하면 애니메이션이 계속되고 제거되지 않습니다.
view.layer.removeAllAnimations() 애니메이션을 삭제 해 보았습니까? – Spads