UIlabel 텍스트에 그리기

4919 단어 SwiftiOS
UIlabel의 텍스트 위에 포크나 원인을 쓰려고 할 때의 노트입니다.
결론적으로 텍스트의 CGRect를 가져와 Text의 표시 영역을 그려야 합니다.
가져오기textRect(forBounds:limitedToNumberOfLines:) 방법을 사용하여 텍스트의 CGRRect를 실행합니다.
Text의 표시 영역super.drawText(in:)에 그립니다.
포크 인쇄를 그리는 샘플 코드는 다음과 같습니다.
class PathLabel: UILabel {
    override func draw(_ rect: CGRect) {
        // textのRectを取得する
        let textRect = self.textRect(forBounds: bounds, limitedToNumberOfLines: 1)
        // UIBezierPath のインスタンス生成
        let line = UIBezierPath()
        // 起点
        line.move(to: CGPoint(x: textRect.minX, y: textRect.minY))
        // 帰着点
        line.addLine(to: CGPoint(x: textRect.maxX, y: textRect.maxY))
        line.move(to: CGPoint(x: textRect.maxX, y: textRect.minY))
        line.addLine(to: CGPoint(x: textRect.minX, y: textRect.maxY))
        // ラインを結ぶ
        line.close()
        // 色の設定
        UIColor.red.setStroke()
        // ライン幅
        line.lineWidth = 4
        // 描画
        line.stroke()
        // Textに書き込み
        super.drawText(in: rect)
    }
}

잡다


위의 코드를 실행할 때 이렇게 그립니다.

이해하기 쉽게 UIlabel의 배경을 옅은 남색으로 바꿨다.
1 문자열에만 빨간색 포크 기호를 그립니다.

좋은 웹페이지 즐겨찾기