일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Xcode
- MVVM
- 리펙터링
- rxswift
- 애니메이션
- Observable
- uiscrollview
- UICollectionView
- 스위프트
- Refactoring
- map
- clean architecture
- swift documentation
- tableView
- RxCocoa
- 클린 코드
- combine
- Protocol
- ribs
- HIG
- SWIFT
- Human interface guide
- 리팩토링
- collectionview
- 리펙토링
- ios
- UITextView
- uitableview
- Clean Code
- swiftUI
- Today
- Total
목록CALayer (7)
김종권의 iOS 앱 개발 알아가기
shouldRasterize 개념 CALayer의 bool 프로퍼티 open class CALayer : NSObject, NSSecureCoding, CAMediaTiming { open var shouldRasterize: Bool } compositing전에 bitmap으로 만들고 이 bitmap을 활용하여 화면에 그림을 그릴지 여부 (default값은 false) *compositiong: 여러 개의 그래픽 요소를 하나의 이미지로 결합하는 프로세스를 의미 shouldRasterize를 true로 하게되면 CALayer들을 픽셀로 판단하여 bitmap으로 변환하여 그림을 그림 CALayer를 통해 매우 복잡한 그림을 그려야할때 true로 사용하는것이 유리 (CALayer에 의해서 다양한 그림을 그릴..
1. CALayer 마스킹 활용 - 마스킹하는 기본 방법 (mask, .evenOdd) 2. CALayer 마스킹 활용 - 특정 뷰 음영 효과 주는 방법 3. CALayer 마스킹 활용 - 뷰 합치는 방법 shapeLayer에 path 대입 -> layer.mask에 대입) 핵심 부분은 path를 그리는 것이고 이 부분의 코드가 길기 때문에 따로 메소드로 빼서 구현 private func mask() { // 1. path 인스턴스로 경로 정보 획득 let firstPath = getFirstImagePath() let secondPath = getSecondImagePath() // 2. shapeLayer.path에 위 path 인스턴스 대입 let firstShapeLayer = CAShapeLay..
1. CALayer 마스킹 활용 - 마스킹하는 기본 방법 (mask, .evenOdd) 2. CALayer 마스킹 활용 - 특정 뷰 음영 효과 주는 방법
1. CALayer 마스킹 활용 - 마스킹하는 기본 방법 (mask, .evenOdd)
UIView와 CALayer 차이 * CA: Core Animation CALayer는 UIKit보다 한 단계 낮은 수준의 인터페이스를 제공하여, UIKit보다 많은 기능을 제공하지만 몇 가지 기능에 대해서 직접 구현 필요 OpenGL은 GPU에서 2D, 3D 그래픽을 렌더링하는데 사용되는 저수준 API로 iOS Graphic Hardware(Core Graphic)에 해당 UIView는 CALayer의 wrapper 역할 Core Animation는 저수준 api이고, UIKit은 고수준 api CA의 특성 Core Animation은 별도의 쓰레드에서 GPU를 사용해 UI를 직접 렌더링 UIView와 달리 Responder가 없어, 유저 인터렉션 기능은 직접 구현 및 설정 필요 Core Animati..
View와 Layer private let someView: UIView = { let view = UIView() view.backgroundColor = .systemBlue view.layer.shadowOffset = CGSize(width: 0, height: 10) view.layer.shadowColor = UIColor.black.cgColor view.layer.shadowOpacity = 0.3 view.layer.cornerRadius = 60 view.layer.borderWidth = 3 view.layer.borderColor = UIColor.green.cgColor view.translatesAutoresizingMaskIntoConstraints = false return ..
마스킹 구현 아이디어 파란색 UIView의 layer.mask에 CAShapeLayer() 인스턴스를 주입하여, 안에가 비어지도록 구현 CAShapeLayer 인트선스의 path에는 와인딩 룰을 가지고 있는 UIBezierPath를 주입 사전 지식) UIBezierPath의 성질 - 와인딩 룰 Winding Rules: path의 외부와 내부를 파악하는 방법 중 하나이며, path의 방향에 따라 내부를 칠하거나 비우는 규칙 UIView의 path값을 UIBezierPath인스턴스로 만든 후, UIView의 mask에 넣으면 와인딩 룰에 의하여 안쪽 color를 채워주는 방법 path가 겹치는 부분들의 내부 색상은 CAShapeLayer의 "fillColor"프로퍼티, path의 색상은 "strokeCol..