관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] 심볼 애니메이션 (iOS 17, isSymbolAnimationEnabled) 본문

iOS 응용 (swift)

[iOS - swift] 심볼 애니메이션 (iOS 17, isSymbolAnimationEnabled)

jake-kim 2023. 9. 20. 01:45

isSymbolAnimationEnabled 개념

  • iOS 17+ (beta) 부터 심볼 이펙트 애니메이션이 등장

https://developer.apple.com/documentation/uikit/uicontrol/4210339-issymbolanimationenabled

  • 심볼 이펙트 애니메이션이란?
    • 버튼같은경우 탭 했을때 버튼이 작아졌다가 커지는 애니메이션이 시스템에서 제공
    • 기존에는 버튼을 눌렀을 때 highlighted 컬러만 들어갔다면, 버튼의 크기가 변경되는 애니메이션

UIButton 예시

  • 주의) SF symbol 이미지만 적용 가능

심볼 애니메이션 설정 방법

  •  isSymbolAnimationEnabled = true로 설정
    • (UIButton의 isSymbolAnimationEnabled 디폴트값은 false)
let button = UIButton()
button.setImage(UIImage(systemName: "plus.app"), for: .normal)
button.isSymbolAnimationEnabled = true
  • UISlider같은 경우는 isSymbolAnimationEnabled의 디폴트 값이 false이므로 따로 설정 필요 x
let slider = UISlider()
slider.minimumValueImage = UIImage(systemName: "tortoise")
slider.maximumValueImage = UIImage(systemName: "hare")
slider.minimumValue = 0
slider.maximumValue = 300

UISlider는 isSymbolAnimationEnabled 디폴트가 true

cf) SwiftUI 에서는 symbolEffect(_:options:value:)로 사용

https://developer.apple.com/documentation/swiftui/view/symboleffect(_:options:value:) 

 

symbolEffect(_:options:value:) | Apple Developer Documentation

Returns a new view with a symbol effect added to it.

developer.apple.com

* 전체 코드: https://github.com/JK0369/ExisSymbolAnimationEnabled

* 참고

https://developer.apple.com/documentation/swiftui/view/symboleffect(_:options:value:) 

https://sarunw.com/posts/built-in-symbol-animations-in-uikit-controls/

Comments