티스토리 뷰
iOS 개발 입문단계에서도 알게 모르게 사용하고 있는 CALayer, 컨텐츠의 기하학적 성질, 시각적 컨텐츠 크기, 변형, 그림자효과 등 다양한 기능을 지원하는 객체입니다.(흔히 많이 쓰는 layer인스턴스가 CALayer 객체) 오늘은 iOS 컨텐츠에 대한 레이어 객체, CALayer(Core Animation Layer)에 대한 개발자 문서 개요를 함께 읽어 보겠습니다. 오역, 지적 환영합니다.
CALayer
Core Animation Layer, 이미지-기반 컨텐츠를 관리하고, 컨텐츠의 애니메이션 구현을 지원하는 객체
CALayer 클래스의 정의형태 는 위와 같습니다. CALayer는 NSObject 클래스를 상속받습니다. 여기서 NSObject는 Objective-C 클래스 계층의 최상위 루트 클래스라고 합니다. 이어서 개요를 읽어보겠습니다.
Overview
레이어(Layer)들은 뷰(View)들의 배경저장소를 제공하는데 자주 사용됩니다. 이 뿐만 아니라 컨텐츠를 보여주는 뷰 없이 사용되기도 합니다. 레이어의 주 역할은 당신이 제공하는 시각적 컨텐츠를 관리하는 것이지만 레이어 자체만으로도 시각적인 속성을 갖고 있으며 이는 설정을 할 수도 있는데, 그 예로는 배경색(background color), 테두리(border), 그림자(shadow) 등이 있습니다.
레이어는 시각적 컨텐츠를 관리하는 것 뿐만 아니라, 레이어는 스크린 상에 컨텐츠를 뿌려줄 때 사용되는 컨텐츠의 위치, 사이즈, 변경 등의 기하학과 연관된 정보 또한 유지합니다.
당신이 레이어의 컨텐츠나 기하학적 애니메이션을 초기화 하는 방법은 레이어의 프로퍼티들을 변경하는 것입니다.레이어 객체는 CAMediaTiming protocol(레이어의 타이밍 정보를 정의하는 프로토콜)을 채택하는 애니메이션과 레이어의 속도, 지속시간등을 캡슐화합니다.
만약 레이어객체가 뷰(view) 생성에 의해 만들어졌다면, 뷰는 일반적으로 자기자신을 레이어의 대리자(delegate)로 자동 할당합니다. 당신은 이들의 관계를 변경해서는 안됩니다. 당신이 만든 레이어를 사용하기 위해서는 delegate 객체를 할당해야 합니다. 그 뒤, 동적으로 레이어의 컨텐츠를 제공하고, 다른 동작들을 실행하기 위해 해당 객체를 사용해야 합니다.
레이어는 개별적으로 하위뷰(subviews)들의 레이아웃을 관리하기 위해 레이아웃 관리 객체(layout Manager property에 할당 됨)가 필요할 지도 모릅니다.
▼ CALayer 개발자 문서 원본링크
'iOS 개발' 카테고리의 다른 글
iOS 네비게이션컨트롤러 화면전환 기능 코드구현하기 (1) | 2019.07.29 |
---|---|
Apple iOS 개발자 증명서, 계정 Xcode와 연동하기 (1) | 2019.07.22 |
Xcode Assistant Editor 에디터 기호따라 분리하기 (0) | 2019.07.02 |
iOS 계산기앱 다수 UIButton 버튼 중복기능 일괄 처리하기 (0) | 2019.06.22 |
Swift 키보드사용 편집 시 텍스트필드 입력위치 조절하기 (0) | 2019.06.19 |
- Total
- Today
- Yesterday
- SwiftUI
- 알고리즘
- 백준swift
- publisher
- 자연어처리
- 프로토콜
- swift reduce
- 컬렉션
- Swift 알고리즘
- 김프매매
- swift string
- swift 기초
- swift문제
- 알고리즘문제
- swift 문자열
- 백준알고리즘
- swift언어
- swift알고리즘
- createML
- 프로그래머스swift
- 부스트코스
- ios
- 스위프트
- uikit
- CoreML
- Collection
- Protocol
- 프로그래머스
- swift
- 개발자문서
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |