사과
  • 애플 개발자 문서 한글 번역
  • App Frameworks
    • Foundation
      • 숫자, 데이터와 기본값
      • 문자열과 텍스트
      • 컬렉션
      • 날짜와 시간
      • 데이터 포맷
      • 작업 관리
        • Operation
        • OperationQueue
        • Timer
      • 리소스
        • Bundle
      • 파일 시스템
        • FileManager
      • Notification
        • NSKeyValueObserving
      • URL 로딩 시스템
        • 웹사이트 데이터를 메모리에 저장하기
        • URLSession
          • URLSessionConfiguration
            • urlCache
            • requestCachePolicy
          • configuration
        • URLSessionTask
        • URLRequest
        • URLResponse
        • HTTPURLResponse
        • 캐시 데이터에 접근하기
        • CachedURLResponse
        • URLCache
      • Object Runtime
        • NSValue
    • UIKit
      • UIKit으로 앱 개발
      • 앱과 환경
        • 앱 라이프 사이클 관리하기
        • 앱 실행에 대응하기
        • UIApplication
      • 문서, 데이터와 클립보드
      • Mac Catalyst
        • iPad 앱을 Mac 버전으로 만들기
        • 아이패드 앱의 맥 최적화
      • 뷰와 컨트롤
        • UIView
        • Table Views
          • UITableView
          • UITableViewCell
          • UIRefreshControl
        • UIScrollView
      • View Controllers
        • UIViewController
        • UITableViewController
        • UISearchController
      • 애니메이션과 햅틱
        • 프로퍼티 기반 애니메이션
          • UIViewPropertyAnimator
        • View controller 전환
      • 터치, 누르기, 제스처
        • UIResponder
        • UIKit 제스처 처리
        • 다중 제스처 인식기 조정
        • UILongPressGestureRecognizer
        • UIPanGestureRecognizer
          • maximumNumberOfTouches
          • minimunNumberOfTouches
          • translation(in:)
          • setTranslation(_:in:)
          • velocity(in:)
        • UIGestureRecognizer
    • Swift
      • 스위프트 표준 라이브러리
        • 메모리 직접 관리
          • 포인터 파라미터를 사용하는 함수 호출
          • UnsafePointer
          • UnsafeMutableRawBufferPointer
    • SwiftUI
      • 뷰와 컨트롤
        • View
        • Text
        • TextField
      • 뷰 레이아웃과 표현
      • 그리기와 애니메이션
      • 프레임워크 통합
      • 상태와 데이터 흐름
  • Graphics and Games
    • Core Animation
      • CALayer
      • CAAction
      • CAShapeLayer
      • CADisplayLink
    • Core Graphics
      • CGFloat
      • CGPath
  • App Services
    • Combine
    • WebKit
      • WKWebView
  • Media
    • AVFoundation
      • 시스템 오디오 상호작용
        • AVAudioSession
          • AVAudioSession.Category
            • ambient
            • multiRoute
            • playAndRecord
            • playback
            • record
            • soloAmbient
          • AVAudioSession.Mode
      • AVFoundation 자료형
  • Documentation Archive
    • 번들 프로그래밍 가이드
      • 번들에 대해
      • 번들 구조
    • Key-Value Observing 프로그래밍 가이드
    • Threading 프로그래밍 가이드
      • About Threaded Programming
      • Thread Management
  • ETC
    • Not Found
Powered by GitBook
On this page
  • Summary
  • Declaration
  • 개요
  • 주제
  • Shape 경로 지정
  • Shape 스타일 프로퍼티 액세스
  • 상수
  • 관련 문서
  • 상속받은 대상
  • 준수하는 프로토콜
  • 같이 보기
  • 텍스트, 모양, 그라디언트
  1. Graphics and Games
  2. Core Animation

CAShapeLayer

좌표공간에 cubic Bezier spline을 그리는 레이어

PreviousCAActionNextCADisplayLink

Last updated 5 years ago

원문 출처

Summary

SDKs

  • iOS 3.0+

  • macOS 10.6+

  • tvOS 9.0+

  • Mac Catalyst 13.0+

Framework

  • Core Animation

Declaration

class CAShapeLayer : CALayer
@interface CAShapeLayer : CALayer

개요

이 Shape는 레이어의 컨텐츠와 첫 번째 하위 레이어 사이에 합성됩니다.

Shape는 안티앨리어싱 되어 그려지며, 해상도 독립성을 유지하기 위해서 가능하다면 언제든지 래스터링 전에 화면 공간에 매핑됩니다. 그러나 레이어 또는 그 상위 항목에 적용되는 CoreImage 필터와 같은 특정 유형의 이미지 처리 작업은 로컬 좌표 공간에서 래스터화를 강제 적용할 수 있습니다.

목록 1 Shape 레이어를 사용하여 스타일링된 꽃 만들기

let width: CGFloat = 640
let height: CGFloat = 640
     
let shapeLayer = CAShapeLayer()
shapeLayer.frame = CGRect(x: 0, y: 0,
                          width: width, height: height)
     
let path = CGMutablePath()
     
stride(from: 0, to: CGFloat.pi * 2, by: CGFloat.pi / 6).forEach {
    angle in 
    var transform  = CGAffineTransform(rotationAngle: angle)
        .concatenating(CGAffineTransform(translationX: width / 2, y: height / 2))
    
    let petal = CGPath(ellipseIn: CGRect(x: -20, y: 0, width: 40, height: 100),
                       transform: &transform)
    
    path.addPath(petal)
}
    
shapeLayer.path = path
shapeLayer.strokeColor = UIColor.red.cgColor
shapeLayer.fillColor = UIColor.yellow.cgColor
shapeLayer.fillRule = kCAFillRuleEvenOdd

알림

Shape 래스터화는 정확성보다 속도를 선호할 수 있습니다. 예를 들어 교차 경로가 여러 개인 픽셀은 정확한 결과를 제공하지 않을 수 있습니다.

주제

Shape 경로 지정

  • var path: CGPath?

    렌더링될 shape를 정의하는 경로. 애니메이션 가능합니다.

Shape 스타일 프로퍼티 액세스

  • var fillColor: CGColor?

    Shape 경로를 채우는 데 사용되는 색상. 애니메이션 가능합니다.

  • var fillRule: CAShapeLayerFillRule

    Shape의 경로를 채울 때 사용되는 규칙

  • var lineCap: CAShapeLayerLineCap

    Shape 경로의 line cap 스타일

  • var lineDashPattern: [NSNumber]? 스트로크 시 Shape의 경로에 적용되는 대시 패턴.

  • var lineDashPhase: CGFloat

    스트로크 시 Shape 경로에 적용되는 대시 단계. 애니메이션 가능합니다.

  • var lineJoin: CAShapeLayerLineJoin Shape 경로에 대한 line join 스타일

  • var lineWidth: CGFloat

    Shape 경로의 line 너비. 애니메이션 가능합니다.

  • var miterLimit: CGFloat

    Shape 경로를 스트로킹할때 사용되는 miter 한계. 애니메이션 가능합니다.

  • var strokeColor: CGColor?

    Shape 경로를 스트로크할때 사용되는 색상. 애니메이션 가능합니다.

  • var strokeStart: CGFloat

    경로 스트로크를 시작할 상대 위치. 애니메이션 가능합니다. The relative location at which to begin stroking the path. Animatable.

  • var strokeEnd: CGFloat

    경로 스트로크를 끝낼 상대 위치. 애니메이션 가능합니다.

상수

  • Shape Fill Mode Values

  • Line Join Values

  • Line Cap Values

관련 문서

상속받은 대상

  • CALayer

준수하는 프로토콜

  • CVarArg

  • Equatable

  • Hashable

같이 보기

텍스트, 모양, 그라디언트

  • class CATextLayer

    일반 문자열이나 속성 문자열의 간단한 텍스트 레이아웃과 렌더링을 제공하는 레이어

  • class CAGradientLayer

    배경색 위에 색상 그라디언트를 그리고 레이어의 모양을 채우는 레이어 (둥근 모서리 포함)

목록 1은 shape 레이어를 사용하여 복잡한 복합 경로를 작성하고 표시하는 방법을 보여줍니다. 이 예시에서, 점차적으로 변형된 일련의 타원들은 간단한 꽃 모양을 형성합니다. 경로를 표시하는 이 shape 레이어는 을 가지고 있으며 fillRule은 꽃잎이 겹쳐지는 부분이 노란색으로 채워지는 것을 막는 를 설정합니다.

이 상수들은 에 적용가능한 채우기 모드를 지정하는데 사용됩니다.

이 상수들은 스트로크된 경로의 연결된 세그먼트 사이의 결합 모양을 지정합니다. 의 은 line join 스타일 모양을 보여줍니다.

이 상수들은 스트로킹시 열린 경로에 대한 끝점의 모양을 지정합니다. 의 은 line cap 스타일의 모양을 보여줍니다.

https://developer.apple.com/documentation/quartzcore/cashapelayer
fillRule
evenOdd
fillRule
lineJoin
그림 1
lineCap
그림 1
그림 1 Shape 레이어에 표시되는 복합 경로