AutoLayout을 따르는 도형 그리기

5258 단어 AutoLayoutSwift우이
UIView의 contentModeredraw 로 설정하면 View의 frame이 바뀔 때 AutoLayout을 사용해도 도형을 쉽게 다시 그릴 수 있습니다.
아래 코드는 아래쪽 삼각형을 그립니다.


import UIKit

final class TriangleView: UIView {
    override init(frame: CGRect) {
        super.init(frame: frame)
        contentMode = .redraw
    }

    required init?(coder: NSCoder) {
        super.init(coder: coder)
        contentMode = .redraw
    }

    override func draw(_ rect: CGRect) {
        let path = UIBezierPath()
        path.move(to: rect.origin)
        path.addLine(to: CGPoint(x: rect.maxX, y: rect.minY))
        path.addLine(to: CGPoint(x: rect.midX, y: rect.maxY))
        path.close()
        UIColor.gray.setFill()
        path.fill()
    }
}

let view = TriangleView(frame: .init(origin: .zero, size: .init(width: 50, height: 25)))
view.backgroundColor = .white

Playground라면 아래의 코드를 추가하는 것만으로 간단하게 UI를 확인할 수 있어 편리하네요.
import PlaygroundSupport
PlaygroundPage.current.liveView = view

좋은 웹페이지 즐겨찾기