본문 바로가기
iOS/설명

[iOS] CAShapeLayer lineDashPattern (점선) 만들기

by Sky Titan 2022. 11. 26.
728x90
 

Apple Developer Documentation

 

developer.apple.com

lineDashPattern

  • shape에서 stroke 처리할 때 적용되는 dashPattern (쉽게 말해 점선 처리)
  • dash pattern은 NSNumber 객체들의 배열을 통해서 지정한다.
    • 색칠된 부분, 색칠되지 않은 부분의 길이들을 명시하는 방식이다.
    • default는 nil로 되어있으면 실선 형태이다.
  • 예를 들어, [2, 3]으로 세팅이 되어있다면 색칠된 부분 2 user space 만큼, 색칠되지 않은 부분 3 user space 만큼이 반복되는 패턴이다.
    • [10, 5, 5, 5] 인 경우엔 10길이만큼의 색칠된 부분, 5길이만큼의 색칠되지 않은 부분, 5 길이만큼의 색칠된 부분, 5길이 만큼의 색칠되지 않은 부분으로 반복되는 패턴이 적용된다.

 

Example

import UIKit

class ViewController: TSViewController {
   
    @IBOutlet weak var label: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        label.text = "안녕하세요"
        label.sizeToFit()
        
        let shapeLayer = CAShapeLayer()
        shapeLayer.strokeColor = UIColor.black.cgColor
        shapeLayer.lineWidth = 1
        shapeLayer.fillColor = UIColor.clear.cgColor
        shapeLayer.path = UIBezierPath(rect: label.bounds).cgPath
        shapeLayer.lineDashPattern = [2, 5]
        
        label.layer.addSublayer(shapeLayer)
    }
}

[2, 5] 패턴
[10, 5] 패턴
[10, 5, 5, 5] 패턴 적용

728x90

댓글