오늘은 FrameAnimation과 CABasicAnimation 두가지를 간단하게 알아보려고 한다.
아마 상황에 따라서 쓸 수 있는 Animation의 종류들이 있겠지만, 오늘은 간단하게 반복하는 Animation으로 알아보려고한다. (이런것도 있다 정도로 봐주시면 될 것 같습니다.)
Git : Animation Sample Project
Git : Animation Sample Project
FrameAnimation
필자의 프로젝트내에서 FrameAnimation이 내부에 많은 편인데, 보통은 고정자리에서 image를 반복적으로 보여주기 위해서 사용하는 경우가 많다.
아래와 같이 반복적인 이미지의 경우 FrameAnimation으로 구성하면 간편하게 구현할 수 있다.
아래와 같이 반복적인 이미지의 경우 FrameAnimation으로 구성하면 간편하게 구현할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
/// Frame Animation
func setFrameImageView() {
/// ImageArray init
let frameImageArray = NSMutableArray()
// 이미지 이름때문에 아래와 같은 for문으로 만듬.
for i in 10..<21 {
frameImageArray.add(UIImage.init(contentsOfFile: Bundle.main.path(forResource: "icon\(i)@2x", ofType: "png")! ) as Any)
}
frameImageView.animationImages = frameImageArray as? [UIImage]
frameImageView.animationDuration = 0.75
frameImageView.animationRepeatCount = 0 // 0 means infinite (default is 0)
frameImageView.startAnimating()
}
| cs |
CABasicAnimation
필자는 이번에 CABasicAnimation을 FrameAnimation과 비슷하게 써보기 위해서 블로그를 작성하였는데, Apple Developer Site를 들어가보면 이외에 다양한 종류로 사용되고 있다.
다음번에 CABasicAnimation만 다루는 블로그를 포스팅하도록 하며, 이번에는 FrameAnimation의 간단한 효과 정도만 따라해보았다.
1
2
3
4
5
6
7
8
9
10
11
12
|
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let animation:CABasicAnimation = CABasicAnimation(keyPath: "transform.scale")
animation.fromValue = 1.2
animation.toValue = 1.0
animation.repeatCount = Float.infinity
animation.timingFunction = CAMediaTimingFunction(name: .linear)
animation.duration = 0.75
self.imageView.layer.add(animation, forKey: "transform.scale")
}
| cs |
이번에는 CABasicAnimation 의 transform.scale 값을 통해서 FrameAnimation에서 사용한 이미지의 효과와 비슷하게 표현해 보았는데,
Animation은 어떻게 표현해 주느냐에 따라 대체가 가능한지 불가능한지 나오는데, 일부는 대체가 안될 수 있음으로 여러가지 Animation 효과를 써보는게 좋을 것 같다.
Animation은 어떻게 표현해 주느냐에 따라 대체가 가능한지 불가능한지 나오는데, 일부는 대체가 안될 수 있음으로 여러가지 Animation 효과를 써보는게 좋을 것 같다.
댓글
댓글 쓰기