본문 바로가기
🍎 iOS/UIKit

[UIKit] UIView(1)

by hyebin (Helia) 2022. 3. 25.

View는 앱 사용자 인터페이스의 기본 구성 요소이며 UIView 클래스는 모든 view에 공통적인 동작을 정의합니다.

view 객체는 사각형 내에서 콘텐츠를 렌더링하고 해당 콘텐츠와의 모든 상호작용을 처리합니다.

UIView 클래스는 인스턴스화하고 고정된 배경색을 표시하는 데 사용될 수 있는 구상 클래스입니다.

더 정교한 컨텐츠를 그리기 위해서 서브클래스화할 수도 있습니다.

앱에서 흔히 볼 수 있는 label, image, button 및 기타 인터페이스 요소를 표시하려면 직접 정의하기보다는 UIKit 프레임워크에서 제공하는 뷰 하위 클래스를 사용하세요.

 

view 객체는 앱이 사용자와 상호작용하는 주된 방식이기 때문에 여러 가지 책임이 있습니다.

다음은 몇 가지 예입니다.

  • 그리기와 애니메이션
    • 뷰는 UIKit 또는 Core Graphics를 사용하여 직사각형 영역에 콘텐츠를 그립니다.
    • 일부 뷰 프로퍼티들은 새로운 값으로 애니메이션 될 수 있습니다.
  • 레이아웃과 서브 뷰 관리
    • 뷰는 0개 이상의 서브 뷰를 가질 수 있습니다.
    • 뷰는 서브 뷰의 크기와 위치를 조정할 수 있습니다.
    • 자동 레이아웃을 사용하여 뷰 계층 구조의 변화에 대응할 수 있도록 뷰의 크기와 위치를 변경하는 규칙을 정의합니다.
  • 이벤트 처리
    • 뷰는 UIResponder의 하위 클래스이기 때문에 터치나 기타 다른 이벤트에 응답 가능합니다.
    • 뷰는 일반 제스처를 처리하기 위해 제스처 인식기가 설치될 수 있습니다.

 

 

뷰는 다른 뷰 내부에 중첩되어 뷰 계층 구조를 생성하여 관련 콘텐츠를 편리하게 구성할 수 있습니다.

뷰를 중첩하면 중첩된 자식 뷰(subview)와 부모 뷰(superview) 사이의 부모-자식 관계가 생성됩니다.

부모 뷰에는 여러 개의 자식 뷰가 포함될 수 있지만 각 자식 뷰에는 하나의 부모 뷰만 있습니다.

기본적으로 자식 뷰의 보이는 영역이 부모 뷰의 범위를 벗어나 확장되어도 자식 뷰의 내용이 잘리지 않습니다.

해당 동작 방식을 변경하려면  clipsToBounds 속성을 사용해야 합니다.

clipsToBounds: Bool {get set}
자식 뷰가 뷰의 경계로 제한되는지 여부를 결정하는 Bool 값
true로 하면 자식 뷰의 내용이 잘리고, false로 설정하면 잘리지 않음

 

각 뷰의 범위는 그 frame과 경계(bounds) 속성에 의해 결정됩니다.

frame 속성은 부모 뷰의 좌표계에서 뷰의 원점과 크기를 정의합니다.

bounds 속성은 뷰의 내부적인 수치를 정의하며 커스텀 그리기 코드에서만 독점적으로 사용됩니다.

center 속성을 사용하면 frame이나 bounds 속성을 직접 변경하지 않고도 뷰의 위치를 쉽게 변경할 수 있습니다.

 

반응형

'🍎 iOS > UIKit' 카테고리의 다른 글

[UIKit] UIView(3)  (0) 2022.03.30
[UIKit] UIView(2)  (0) 2022.03.28
[UIKit] UIApplication  (0) 2022.03.24
[UIKit] 앱의 라이프 사이클  (0) 2022.03.22
UIKit  (0) 2022.03.21

댓글