본문 바로가기
프로그래밍/Swift

UILabel Size Animation With layer.anchorPoint

by Mr-후 2021. 7. 5.
반응형

UILabel의 font사이즈를 줄이는 애니메이션은 일반적인 UIView애니메이션으로 한계가 있는 듯 하다. 

UILabel의 스케일을 줄이면서 앵커포인트를 맞추면서 좌측 정렬상태에서 늘어나고 줄어드는 예제 코드인데 내 경험으로 판단할 때 오토레이아웃이 잡힌 경우라면 Constraint를 잘 설정해주어야 할 것 같고 그러지 않을 경우는 아예 제약을 다 클리어 한다음에 애니메이션 행위에 집중하는 것이 좋을 것 같다. 

 

소스는 간단하다. 

 

        self.lblName.sizeToFit()
        self.lblName.layer.anchorPoint = CGPoint(x: 0, y: 0)
        self.lblName.layer.position = CGPoint(x: 14, y: 8)
        UIView.animate(withDuration: 2.0) {
            self.lblName.alpha = 0.2
            self.lblName.transform = CGAffineTransform(scaleX: 0.5, y: 0.5)
        }

 

애니메이션 시작 전

왼쪽 좌표와 우측 상단여백을 잘 보면 14, 8로 잡혀있다. 

 

액션 이후 좌표가 그대로 유지되어 있다. 

즉 라벨의 사이즈가 줄어들면서 좌측, 상단의 여백은 유지된 상태로 애니메이션 된다. 

 

반응형

'프로그래밍 > Swift' 카테고리의 다른 글

extension Double - String 통화 기호(소수점 두 자리 반올림)  (0) 2021.07.14
Swift Protocol 정의  (0) 2021.07.09
@escaping  (0) 2020.11.12
Swift 클로저, 다시 한번 정리  (0) 2020.11.12
@objc  (0) 2020.11.12