<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>CALayer on Kelly Dev</title><link>https://kelly-chui.github.io/tags/calayer/</link><description>Recent content in CALayer on Kelly Dev</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 17 Sep 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://kelly-chui.github.io/tags/calayer/index.xml" rel="self" type="application/rss+xml"/><item><title>UIKit. UIView와 CALayer</title><link>https://kelly-chui.github.io/posts/ios-uikit-uiview-calayer/</link><pubDate>Tue, 17 Sep 2024 00:00:00 +0000</pubDate><guid>https://kelly-chui.github.io/posts/ios-uikit-uiview-calayer/</guid><description>&lt;p&gt;&lt;code&gt;UIView&lt;/code&gt;는 화면의 직사각형 영역을 나타내고, 그 안에 콘텐츠를 관리하는 객체이다. 대부분의 UI 요소가 &lt;code&gt;UIView&lt;/code&gt;를 상속받으며, 화면에 콘텐츠를 보여주고 터치나 제스처를 감지하는 역할을 한다.&lt;/p&gt;
&lt;h2 id="uiview로-콘텐츠-표시하기"&gt;UIView로 콘텐츠 표시하기&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;UIView&lt;/code&gt;는 UIKit에서 제공하는 메소드나 Core Graphics를 이용해 직사각형 영역에 콘텐츠를 그릴 수 있다. 배경색만 있는 간단한 &lt;code&gt;UIView&lt;/code&gt;를 만들어보자.&lt;/p&gt;
&lt;div class="code-theme-github"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-swift" data-lang="swift"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nv"&gt;magentaRectView&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;UIView&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;magentaRectView&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;UIView&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;magentaRectView&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;backgroundColor&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;magenta&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;magentaRectView&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;오토레이아웃 제약은 임의로 정했다.&lt;/p&gt;
&lt;img loading="lazy" src="https://kelly-chui.github.io/posts/ios-uikit-uiview-calayer/image-001-optimized-image.webp"&gt;&lt;p&gt;&lt;code&gt;UIView&lt;/code&gt;는 내부에 다른 &lt;code&gt;UIView&lt;/code&gt;를 포함할 수 있다. 상위 뷰에 포함된 뷰를 서브 뷰라고 한다. &lt;code&gt;UIViewController&lt;/code&gt;의 &lt;code&gt;view&lt;/code&gt; 프로퍼티도 &lt;code&gt;UIView&lt;/code&gt; 인스턴스이기 때문에, 위 마젠타 사각형도 &lt;code&gt;UIView&lt;/code&gt; 내부의 &lt;code&gt;UIView&lt;/code&gt;이다. 좀 더 직관적으로 확인하려면, 마젠타 사각형 안에 검은색 사각형을 추가해보자.&lt;/p&gt;</description></item></channel></rss>