swift 에서는 간단하게 뷰 애니메이션을 구현할 수 있다.
그런데 크기를 변경시키는 애니메이션에서는 주의 해야 할 점이 있다
바로 기준점이다
다음을 보자
let width = frame.width
let height = frame.height
frame.size.width = width * 0.2
frame.size.height = height * 0.2
UIView.animateWithDuration(1, delay: 0, options: [.CurveEaseInOut], animations: {
self.frame.size.width = width
self.frame.size.height = height
}, completion: nil)
20% 작은 크기에서 원래 크기로 애니메이션 효과를 주었다
기준점이 0이 되어 버렸다. 당연한 결과이다.
하지만 보통 중앙을 기준으로 할때가 많지 않은가?
이렇게 바꿔보자
let x = frame.origin.x
let y = frame.origin.y
let width = frame.width
let height = frame.height
frame.origin.x = x + ((width * 0.8) / 2)
frame.origin.y = y + ((height * 0.8) / 2)
frame.size.width = width * 0.2
frame.size.height = height * 0.2
UIView.animateWithDuration(1, delay: 0, options: [.CurveEaseInOut], animations: {
self.frame.origin.x = x
self.frame.origin.y = y
self.frame.size.width = width
self.frame.size.height = height
}, completion: nil)
X,Y 좌표를 100 - 20 = 80%의 반으로 옮긴 후 원래 위치로 애니메이션을 하였다
기준점이 중앙이 되었다.
이런 방식으로 위치도 같이 변경해 주면 다양한 기준점으로 애니메이션 해줄 수 있다.
도움이 되셨다면~ 정성으로 빚은 저희 앱! 많은 이용 바래요:)
https://meorimal.com/index.html?tab=spaceship
https://meorimal.com/subway.html
'개발 > ios' 카테고리의 다른 글
UIButton 이미지를 손쉽게 정렬하자~ (0) | 2017.05.30 |
---|---|
UIView에 동적으로 버튼을 넣을때 크기를 같게 맞출려면? (0) | 2017.04.25 |
이미지를 회전시키고 재사용하는 꿀팁 (0) | 2017.02.22 |
쿼츠2D로 자유롭게 폰트 크기를 바꿔보자 (0) | 2016.12.19 |
역시 스레드는 필수! 아이폰과 안드로이드의 기본 스레드 사용법 비교 (0) | 2014.12.06 |