[UIKit] UIView(3)
μλΈ ν΄λμ± λ ΈνΈ
UIView ν΄λμ€λ μκ°μ μ½ν μΈ μ λλΆμ΄ μ μ μνΈμμ© μ 곡μ μν μ€μν μλΈ ν΄λμ± μ§μ μ λλ€.
viewλ₯Ό μμλ°λ κ²μ viewλ₯Ό ꡬννκ³ μ±λ₯μ μ‘°μ νκΈ° μν΄ λ λ§μ μμ λ€μ΄ νμν©λλ€.
λ°λΌμ UIViewν΄λμ€κ° μ 곡νμ§ μλ κ²μ΄ μμ λλ§ κ΅¬ννλ κ²μ΄ μ’μ΅λλ€.
μ€λ²λΌμ΄λ ν ν¨μλ€
UIViewλ₯Ό μμλ°μ λ λ°λμ μ€λ²λΌμ΄λ ν΄μΌ νλ μμμ λ©μλλ€μ΄ μκ³ , νμμ λ°λΌ μ€λ²λΌμ΄λ ν μ μλ λ©μλλ€λ μμ΅λλ€.
UIViewλ μ μ°νκ² μ€μ κ°λ₯ν ν΄λμ€μ΄κΈ° λλ¬Έμ 컀μ€ν λ©μλλ₯Ό μ€λ²λΌμ΄λ νμ§ μκ³ μ κ΅ν λ·° λμμΌλ‘ ꡬνν μ μμ΅λλ€.
λ€μμ UIView ν΄λμ€λ₯Ό μμλ°μΌλ©΄ μ€λ²λΌμ΄λ ν μ μλ λ©μλ λ€μ λλ€.
- μ΄κΈ°ν
- init(frame:): μ΄ λ°©λ²μΌλ‘ μ΄κΈ°ννλ κ²μ΄ κ°μ₯ μ’μ΅λλ€. λν μ΄ λ©μλλ₯Ό 컀μ€ν νμ¬ μ΄κΈ°ν λ©μλλ₯Ό ꡬνν μ μμ΅λλ€.
- init(coder:): μ€ν 리 보λ νΉμ Nib νμΌμμ viewλ₯Ό λ‘λνκ³ viewμ 컀μ€ν μ΄κΈ°νκ° νμν κ²½μ°μ μ¬μ©νμΈμ.
- layerClass: view λ€μ λ€λ₯Ό Core Animation layerλ₯Ό μ¬μ©νλ €λ©΄ μ΄ μμ±μ μ¬μ©νμΈμ.
- λλ‘μκ³Ό νλ¦°ν
- draw(_:): 컀μ€ν μ½ν μΈ λ₯Ό 그릴 κ±°λ©΄ μ΄ λ©μλλ₯Ό μ¬μ©νμΈμ. 컀μ€ν μ½ν μΈ λ₯Ό 그릴 κ²μ΄ μλ€λ©΄ μ΄ λ©μλλ₯Ό μ€λ²λΌμ΄λ νμ§ λ§μΈμ.
- draw(_:for:): printing νλ λμ viewμ μ½ν μΈ λ₯Ό λ€λ₯΄κ² κ·Έλ¦¬λ €λ κ²½μ°μλ§ μ΄ λ©μλλ₯Ό ꡬννμΈμ.
- λ μ΄μμκ³Ό μ μ½μ‘°κ±΄
- requiresConstraintBasedLayout: view ν΄λμ€κ° μ λλ‘ λμνκΈ° μν΄ μ μ½μ‘°κ±΄μ΄ νμν κ²½μ° μ¬μ©νμΈμ.
- updateConstraints(): λ·°μ νμ λ·° κ°μ 컀μ€ν μ μ½μ‘°κ±΄ μμ±μ΄ νμν κ²½μ° μ΄ λ©μλλ₯Ό ꡬννμΈμ.
- alignmentRect(forFrame:), frame(forAlignmentRect:): μ¬λ¬ λ·° κ°μ μ λ ¬λλ λ°©λ²μ μ€λ²λΌμ΄λ νλ €λ©΄ μ΄ λ©μλλ₯Ό ꡬννμΈμ.
- didAddSubview(_:), willRemoveSubview(_:): νμ λ·°λ₯Ό μμ±κ³Ό μ κ±°λ₯Ό μΆμ νκ³ μΆλ€λ©΄ μ΄λ¬ν λ©μλλ₯Ό ꡬννμΈμ.
- willMove(toSuperview:), didMoveToSuperview(): λ·° κ³μΈ΅μμ νμ¬ λ·°μ μ΄λμ μΆμ νκ³ μΆλ€λ©΄ μ΄λ¬ν λ©μλλ₯Ό ꡬννμΈμ.
- μ΄λ²€νΈ νΈλ€λ§
- gestureRecognizerShouldBegin(_:) : λ·°κ° ν°μΉ μ΄λ²€νΈλ₯Ό μ§μ μ²λ¦¬νκ³ μ°κ²°λ μ μ€μ² μΈμκΈ°κ° μΆκ° μμ μ νΈλ¦¬κ±°νμ§ λͺ»νλλ‘ νλ €λ©΄ μ΄ λ©μλλ₯Ό ꡬννμΈμ.
- touchesBegan(_:with:), touchesMoved(_:with:), touchesEnded(_:with:), touchesCancelled(_:with:): ν°μΉ μ΄λ²€νΈλ₯Ό μ§μ μ²λ¦¬νκ³ μΆλ€λ©΄ μ΄ λ©μλλ₯Ό ꡬννμΈμ. (μ μ€μ² κΈ°λ° μ λ ₯μΌ κ²½μ° μ μ€μ² μΈμκΈ°λ₯Ό μ¬μ©ν©λλ€.)
μλΈ ν΄λμ±μ λμ
λ·°μ μ¬λ¬ λμλ€μ λ°λ‘ μμν νμ μμ΄λ μ€μ ν μ μμ΅λλ€.
λ©μλλ₯Ό μ€λ²λΌμ΄λ νκΈ° μ μ λ€μ λμ΄λλ μμ±μ΄λ λμλ€μ μμ νλ©΄ νμν λμμ μ 곡ν μ μλμ§ κ³ λ €ν΄λ³΄μΈμ.
- addConstraint(_:): λ·°μ νμ λ·°μ λν μ€ν λ μ΄μμμ μ μν©λλ€.
- autoresizingMask: super λ·°μ frameμ΄ λ°λλ©΄ μ€ν λ μ΄μμ λμμ μ 곡ν©λλ€. μ΄ λμμ μ μ½μ¬νλ€κ³Ό κ²°ν©λ μ μμ΅λλ€.
- contentMode: λ·° frameμ΄ μλ λ·°μ μ½ν μΈ μ λν λ μ΄μμ λμμ μ 곡ν©λλ€. λν μ΄ μμ±μ λ·°μ λ§κ² μ½ν μΈ λ₯Ό μ‘°μ νλ λ°©λ²μ μ 곡νκ³ μ½ν μΈ λ₯Ό μλ‘ κ·Έλ¦΄μ§ μΊμ ν μ§ κ²°μ ν μ μμ΅λλ€.
- isHidden or alpha: λ·° μ 체μ ν¬λͺ λλ₯Ό λ³κ²½ν©λλ€.
- backgroundColor: ν΄λΉ μμμ μ§μ 그리λ κ² λμ μ λ·°μ μμμ μ€μ ν©λλ€.
- Subviews: draw(_:) λ©μλλ₯Ό μ¬μ©νμ¬ μ½ν μΈ λ₯Ό 그리λ λμ μνλ μ½ν μΈ λ₯Ό ν¬ν¨ν imageλ labelμ νμ λ·°λ₯Ό ν¬ν¨ν©λλ€.
- Gesture Recognizer: ν°μΉ μ΄λ²€νΈλ₯Ό μ§μ μ²λ¦¬νλ νμ ν΄λμ€ λμ μ μ€μ² μΈμκΈ°λ₯Ό μ¬μ©νμ¬ λμ κ°μ²΄μ Target-Actionμ λ³΄λΌ μ μμ΅λλ€.
- Animations: λ³κ²½ μ¬νμ μ§μ μ λλ©μ΄μ μΌλ‘ λ§λ€μ§ λ§κ³ λ΄μ₯λ μ λλ©μ΄μ μ§μ κΈ°λ₯μ μ¬μ©ν μ μμ΅λλ€. Core Animationμμ μ 곡νλ μ λλ©μ΄μ supportλ λΉ λ₯΄κ³ μ¬μ©νκΈ° μ½μ΅λλ€.
- Image-based backgrounds: μ μ μΈ μ½ν μΈ λ₯Ό νμνλ viewμ κ²½μ° μ΄λ―Έμ§λ₯Ό μ§μ μλΈ ν΄λμ± νκ³ κ·Έλ¦¬λ λμ μ μ€μ² μΈμκΈ°μ ν¨κ» UIImageViewκ°μ²΄λ₯Ό μ¬μ©νλ κ²μ΄ μ’μ΅λλ€. λμμΌλ‘ UIViewκ°μ²΄λ₯Ό μ¬μ©νκ³ μ΄λ―Έμ§λ₯Ό viewμ CALayerκ°μ²΄μ μ½ν μΈ λ‘ ν λΉν μλ μμ΅λλ€.
μ λλ©μ΄μ μ 볡μ‘ν λλ‘μ μ½λμ μλΈ ν΄λμ±κ³Ό ꡬν μμ΄ μκ°μ λ³νλ₯Ό μ€ μ μλ λ λ€λ₯Έ λ°©λ²μ λλ€.
UIView ν΄λμ€μ λ§μ μμ±λ€μ΄ μ λλ©μ΄μ κ°λ₯νλ©° μ΄λ¬ν μμ±μ λ³κ²½μΌλ‘ μμ€ν μμ μμ±λ μ λλ©μ΄μ μ΄ νΈλ¦¬κ±° λ μ μμ΅λλ€.
μ λλ©μ΄μ μ μμνλ €λ©΄ λ€λ°λ₯΄λ λ³κ²½μ¬νμ μ λλ©μ΄μ μΌλ‘ ννν΄μΌ νλ€λ μ½λ ν μ€λ§ μμΌλ©΄ λ©λλ€.