반응형
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 |