-
[iOS] CALayer λ?iOS/π€ App 2021. 7. 5. 10:54
μλ νμΈμπΆ
μ΄λ² μκ°μλ CALayer μ λν΄μ 곡λΆν΄λ³΄κ² μ΅λλ€.
μ΄ ν΄λμ€λ νΌκ·Έλ§μμ μμ±ν μ΄λ―Έμ§λ₯Ό μ½λλ‘ λ³νν λ μ²μ 보μλλ°μ,,
μ΄λ»κ² μ¬μ©λλ ν΄λμ€μΈμ§ κΆκΈν΄μ 곡λΆνκ² λμμ΅λλ€.
λν UIVIew λ κΈ°λ³Έμ μΌλ‘ layer μμ±μΌλ‘ λΆλ¦¬λ root layer λ₯Ό κ°μ§κ³ μμ΅λλ€.
iOS μμ λͺ¨λ λ·°λ layer-backed View μ΄κΈ° λλ¬Έμ λλ€.
κ°λ¨νκ² layer λ₯Ό μ¬μ©νλ(νΉμ λ μ΄μ΄μ μ§μμ λ°λ) ViewλΌκ³ μ΄ν΄νμλ©΄ λ κ² κ°μ΅λλ€.
κ·ΈλΌ μμν΄λ³Όκ²μπ₯
κ·Έ.λ°.λ°.
곡μ λ¬Έμμ λμμλ CALayer λ μ½μΌλ©΄ λ¬΄μ¨ λ΄μ©μΈμ§ μ μ΄ν΄κ° κ°μ§ μμ΅λλ€. (μ΄λ μ λμ λ°°κ²½μ§μμ΄ νμ)
κ·Έλμ Core Animation Documentaion Archive μ λ΄μ©μ κ°λ΅ν μ 리ν κΈμ μμ±νμμΌλ, μ΄ κΈμ μ°Έκ³ ν΄μ£ΌμΈμ!
μ μμ½
0. CA λ Core Animation μ κ°λ¦¬ν¨λ€.
1. μ€μ€λ‘ 그리λ μν μ νλ ν΄λμ€κ° μλλ€. λμ μ½ν μΈ μ λν μμ±μ κ°μ§κ³ μλ€.
2. μ΄ μ κ·Όκ°λ₯ν μμ±μ λ³κ²½ν λ, κ·Έλν½ νλμ¨μ΄μ κ΄λ ¨ μ 보λ₯Ό μ λ¬νλ©΄μ μ λλ©μ΄μ μ΄ μμλλ€.
3. λ μ΄μ΄λ νΈλ¦¬ κ³μΈ΅ ννλ₯Ό ꡬμ±νλ€. 3κ°μ§ μ’ λ₯μ νΈλ¦¬ μ§ν©μ΄ μ‘΄μ¬νλ€. (Model, Presentation, Render)
3. UIView κ° μμ±λ λ, λ μ΄μ΄ μ€λΈμ νΈλ νλ μμ±λμ΄ UIView μ main root layer κ° λλ€.
4. λ μ΄μ΄λ μ½ν μΈ λ₯Ό λΉνΈλ§΅ ννλ‘ μΊμ±νλ€.
μ΄λ―Έμ§ κΈ°λ° μ½ν μΈ λ₯Ό κ΄λ¦¬νκ³ , κ·Έ μ½ν μΈ μ μ λλ©μ΄μ μ μννκ² ν΄μ£Όλ μ€λΈμ νΈ
λ μ΄μ΄μ μ£Όμν μν μ μκ° μ½ν μΈ λ₯Ό κ΄λ¦¬νλ κ²μ΄μ§λ§, μ κ·Ό κ°λ₯ν μκ°μ μμ±λ κ°μ§κ³ μμ΅λλ€.
(e.g background color, border, shadow...)
μκ° μ½ν μΈ λ₯Ό κ΄λ¦¬νλ κ² λΏλ§ μλλΌ, κ·Έ μ½ν μΈ μ κΈ°ννμ μμΉ μ 보λ₯Ό μ μ§νλ μν λ ν©λλ€.
μ΄ μμΉλ μ½ν μΈ λ₯Ό νλ©΄μ νμνλλ° μ¬μ©νλλ°, postion, size, transform κ³Ό κ°μ κ°λ€μ΄ κ·Έ μμ μ λλ€.
λ μ΄μ΄μ μμ± κ°μ λ³κ²½νλ κ²μ ν΅ν΄ μ λλ©μ΄μ μ μμμν΅λλ€
κ·Έλ°λ° μ§μ λ³κ²½ν΄λ³΄μλ©΄ μκ² μ§λ§, μ°λ¦¬κ° λ³΄ν΅ μκ°νλ μ€λ₯΄λ₯΅~ μμ§μ΄λ μ λλ©μ΄μ μ΄ μλλΌ κ·Έλ₯ λ‘- νκ³ λ°λλλ€.
Animate λΌλ λ¨μ΄ μ체λ κ·Έλ₯ μ΄μμλ κ²μ²λΌ λ§λ λ€λ μλ―ΈμΈλ°, μμ§μ΄κΈ°λ νμΌλκΉ Animation μ΄λΌκ³ λ§νλ κ²μΌλ‘ μ΄ν΄νμ΅λλ€...
λ μ΄μ΄ μ€λΈμ νΈλ μ§μμκ°, λ μ΄μ΄μ μ λλ©μ΄μ μ μλ λ±μ CAMediaTiming νλ‘ν μ½μ μ±ννμ¬ μΊ‘μν νκ³ μμ΅λλ€. μ΄ νλ‘ν μ½μ λ μ΄μ΄κ° κ°μ§ μ μλ μμ κ°μ μκ°μ μΈ μ 보λ€μ μ μνκ³ μμ΅λλ€.
λ§μ½ λ μ΄μ΄ μ€λΈμ νΈκ° λ·°μ μν΄ μμ±λμλ€λ©΄, λ·°λ μλμ μΌλ‘ λ μ΄μ΄μ delegate μΌλ‘ μκΈ° μμ μ μ€μ νκ³ , μ°λ¦¬λ μ΄ κ΄κ³λ₯Ό λ³κ²½νλ©΄ μλ©λλ€.
μ°λ¦¬κ° λ°λ‘ μ§μ μμ±ν λ μ΄μ΄λΌλ©΄, delegate μ μμλ‘ μ€μ ν μ μκ³ , κ·Έ μ€λΈμ νΈλ₯Ό ν΅ν΄ μ½ν μΈ λ₯Ό μ 곡νκ³ λμ μΌλ‘ μ΄λ€ μμ λ€μ μνμν¬μ μμ΅λλ€.
νλμ λ μ΄μ΄λ λ μ΄μμ 맀λμ μ€λΈμ νΈλ₯Ό κ°μ§κ³ μμ΅λλ€. μ΄ λ§€λμ λ₯Ό ν΅ν΄ μλΈ λ·°μ λ μ΄μμλ€μ λ 립μ μΌλ‘ κ΄λ¦¬ν μ μμ΅λλ€.
π‘μμ κ°λ λ€μ μ΄ν΄νμ ¨λ€λ©΄, μ§μ μμ±λ€μ λ³κ²½ν΄λ³΄κ³ λ μ΄μ΄μ νμ λ μ΄μ΄λ₯Ό μΆκ°ν΄λ³΄λ©΄μ
λλμ μ΄ν΄νμλ©΄ μ’μ κ² κ°μ΅λλ€.
π‘CALayer λ 컀μ€ν λ·°λ₯Ό λ§λ€ λ μ¬μ©ν©λλ€.
λ!
π€π’[μ°μ§±μ iOS λΈλ‘κ·Έ]π΅π»
iOSλ₯Ό 곡λΆνλ©΄μ λ°°μ΄ λ΄μ©μ κΈ°λ‘νκ³ μμ΅λλ€.'iOS > π€ App' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[iOS] Core Animation μ΄λ? (2) (0) 2021.07.05 [iOS] Core Animation μ΄λ? (1) (0) 2021.07.05 [iOS] Dependency Injection (μμ‘΄μ± μ£Όμ ) μ΄λ? (0) 2021.06.20 [iOS] About App Development with UIKit (UIKit μΌλ‘ μ± κ°λ°νκΈ°) (0) 2021.06.16 [iOS] DispatchQueue.main.sync { } λ μ΄λ»κ² μλν κΉ? (0) 2021.06.07