-
[iOS] clipsToBounds μ masksToBoundsiOS/π€ App 2021. 10. 19. 23:45
μλ νμΈμπΆ
μ΄λ² μκ°μλ clipsToBounds μ masksToBounds λ₯Ό μμλ³΄λ €κ³ ν©λλ€.
UIView μ CALayer
iOS μμ λͺ¨λ UIView μΈμ€ν΄μ€λ κΈ°λ³Έμ μΌλ‘ νλμ CALayer μΈμ€ν΄μ€λ₯Ό κ°μ§κ³ μμ΅λλ€.
CALayer λ μκ°μ μΈ μν μ λ΄λΉνλ μ€λΈμ νΈμ λλ€. ( μ½ν μΈ μΊμ±, μ λλ©μ΄μ μ±λ₯ μν¬νΈ λ±)
λ·°μ λ μ΄μ΄ μΈμ€ν΄μ€λ layer μμ±μ ν΅ν΄μ μ κ·Όν μ μμ΅λλ€.
λ μ΄μ΄λ μκ°μ μΈ μν μ λ§κ² λ€μν κ΄λ ¨ μμ±μ μ 곡νκ³ , 컀μ€ν ν μ μμ΅λλ€.
μλ₯Ό λ€μ΄ λ·°μ λͺ¨μ리, κ·Έλ¦Όμ, νμ κ³Ό κ°μ μ λλ©μ΄μ μ ννν λ layer μ νμ μμ±μ μ¬μ©ν©λλ€.
clipsToBounds λ UIView μ νμ μμ± μ€ νλμ λλ€.
masksToBounds μ CALayer μ νμ μμ± μ€ νλμ λλ€.
λ¬Έμμ μ€λͺ μ 보면 νλλ " λ·°μ Bounds λ₯Ό λ²μ΄λ μλΈ λ·°λ₯Ό ν΄λ¦½νλ€ " κ³ λμμκ³
νλλ " λ μ΄μ΄μ Bounds λ₯Ό λ²μ΄λ μλΈ λ μ΄μ΄λ₯Ό ν΄λ¦½νλ€ " κ³ λμμμ΅λλ€.
μ€λͺ ν΄μ£Όλ λ¨μ΄λ λ€λ₯Έ κ² κ°μλ°, μ λ μμ± μ€μ μ κ²°κ³Όλ¬Όμ μ΄λ¨κΉμ?
λ μμ± μ€μ μ κ²°κ³Όλ¬Ό : κ°λ€
λ μμ± μ€ νλλΌλ true λ‘ μ€μ νλ©΄, view bounds λ₯Ό λμ΄κ° μκ°μ μ½ν μΈ λ μλ €μ 보μ΄μ§ μκ²λ©λλ€.
κ±±μ νμ§λ§μΈμ! λ μ€μ νλλ§ μ€μ ν΄λ 100% κ°μ κ²°κ³Όκ° λμ΅λλ€.
μ΄μ λ μλ λ΄λΆλμμ ππ»
λ΄λΆ λμ
λ μμ±μ νμ κ°μ κ°μ κ°μ§λλ€.
μ¦ view.clipsToBounds κ°μ true λ‘ μ€μ νλ©΄, view.layer.masksToBounds κ°λ true λ‘ λ³κ²½λ©λλ€.
λ°λλ‘ view.layer.masksToBounds λ₯Ό false λ‘ μ€μ νλ©΄, view.clipsToBounds κ°λ falseλ‘ λ³κ²½λ©λλ€.
μΊ‘μ²λ‘ λ¨κ²¨ λκΈ΄ νμμ§λ§, μ§μ λΈλ μ΄ν¬ ν¬μΈνΈλ₯Ό μ°μ΄μ νμΈν΄λ³΄μ ¨μΌλ©΄ μ’κ² μ΅λλ€.
layer μμ±μ λ체 λΆκ°ν λλ§ μ¬μ©νμ
UIView μ μμ±μΌλ‘ λ³κ²½ν μ μλ κ²½μ°μλ§ layer μμ±μΌλ‘ λ³κ²½νλ κ²μ΄ μ³μ΅λλ€.
λ€μμ Core Animation λ¬Έμμ μΌλΆ μ λλ€.
κ°κΈμ View μμ± λμ Layer μμ±μ λ³κ²½νλ κ²μ νΌνλΌκ³ μΆμ²νκ³ μμΌλ©°,
κ·Έλ κ² νμ§ μμ κ²½μ° μλνμ§ μλ κ²°κ³Όκ° λμ¬μ μλ€κ³ λ§ν΄μ€λλ€.
For layer-backed views, it is recommended that you manipulate the view, rather than its layer, whenever possible. In iOS, views are just a thin wrapper around layer objects, so any manipulations you make to the layer usually work just fine. But there are cases in both iOS and OS X where manipulating the layer instead of the view might not yield the desired results. Wherever possible, this document points out those pitfalls and tries to provide ways to help you work around them.
μ€λλ λλ μ±μ₯νλ€!!π₯
π€π’[μ°μ§±μ iOS λΈλ‘κ·Έ]π΅π»
iOSλ₯Ό 곡λΆνλ©΄μ λ°°μ΄ λ΄μ©μ κΈ°λ‘νκ³ μμ΅λλ€.[μ°Έκ³ λ§ν¬]
https://stackoverflow.com/questions/39466001/maskstobounds-vs-clipstobounds
'iOS > π€ App' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[iOS] 컀μ€ν ν°νΈλ₯Ό μ μ©ν΄λ³΄μ (0) 2021.11.06 [iOS] init(nibName:bundle:)κ³Ό init?(coder:) μμ보기 (2) 2021.10.25 [SSAC μΉ] iOS κ°λ°μ λ°λ·κ³Όμ ν©κ²© νκΈ° (2021) (2) 2021.09.24 [iOS] Safe Area μ Layout Margins μ΄λ? (3) 2021.08.10 [iOS] Container View Controller λ? (0) 2021.07.26