애니메이션은 iOS 에서 매우 중요하다.
애니메이션을 잘 다루지 않으면 UI디자인이 끔찍해진다...ㅠㅠ
애니메이션은 UIView 클래스의 animate(withDuration:) 메서드로 실행된다.
@IBAction func tapped(_ sender: UIButton) {
sender.isHidden = true
UIView.animate(withDuration: 1, delay, 0, options: [], animations: {
switch self.currentAnimation {
case 0:
default:
break
}
}), { finished in
sender.isHidden = false
}
}
animate() 메서드는 다음의 파마리터를 가진다.
UIView 오브젝트나 subclass에 적용할 수 있는 특정한 종류의 변화를 나타내는 구조이다.
@IBAction func tapped(_ sender: UIButton) {
sender.isHidden = true
UIView.animate(withDuration: 1, delay: 0, options: [], animations: {
switch self.currentAnimation {
case 0:
self.imageView.transform = CGAffineTransform(scaleX: 2, y: 2)
break
case 1:
self.imageView.transform = .identity
case 2:
self.imageView.transform = CGAffineTransform(translationX: -256, y: -256)
case 3:
self.imageView.transform = .identity
case 4:
self.imageView.transform = CGAffineTransform(rotationAngle: .pi)
case 5:
self.imageView.transform = .identity
case 6:
self.imageView.alpha = 0.1
self.imageView.backgroundColor = .green
case 7:
self.imageView.alpha = 1
self.imageView.backgroundColor = .clear
default:
break
}
} completion: { finished in
sender.isHidden = false
}
currentAnimation += 1
if currentAnimation > 7 {
currentAnimation = 0
}
}
CGAffineTransform 은 다음의 함수들을 가진다
추가로 fade in, fade out을 하고자할 때는 alpha값을 조절하면 된다
애니메이션에 바운스를 넣고 싶다면
UIView.animate(withDuration: 1, delay: 0, usingSpringWithDamping: 0.5, initialSpringVelocity: 5, options: []) {
이 메서드를 사용하면 된다!
위와 같고 파라미터만 추가된 것이다.