본문 바로가기
개발/ios

기준점을 중앙으로 Scale UIView 애니메이션 하기

by 매몰 2017. 3. 21.

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

 

우주선 - 방치형 인공지능 투자 체험기

미리 맛보는 인공지능 투자!

(주)머리말 meorimal.com

 

https://meorimal.com/subway.html

 

지하철어디있니

더이상 고민하지 마세요. 뛸지 말지 딱 보면 알죠.

(주)머리말 meorimal.com

 

사업자 정보 표시
주식회사 머리말 | 고영진 | 서울특별시 송파구 중대로 135 서관 10층 (가락동, 아이티벤처타워) | 사업자 등록번호 : 524-88-00727 | TEL : 010-9990-3674 | Mail : gyjmeba@hanmail.net | 통신판매신고번호 : 2017-서울강남-03941호 | 사이버몰의 이용약관 바로가기