๐Ÿ–ผ๏ธPin

SwiftUI โŸฉ Drawing โŸฉ Shape โŸฉ Helper Shapes โŸฉ

โฌ†๏ธ ้œ€่ฆ๏ผš Line, Point

// 2022.02.10

import SwiftUI

/// a (visible) pin in a rect.
/// ```
/// let H: UnitPoint = [0.2, 0.5]
/// let T: UnitPoint = [0.7, 0.7]
///
/// Pin(H, T)
/// Pin(H, T, .blue)
/// Pin(H, T, label: "A")
/// Pin(H, T, size: 40)
/// ```
struct Pin: View {
    
    let head: UnitPoint
    let tail: UnitPoint
    
    var color: Color = .pink    // pin head color
    var size: CGFloat = 24      // pin head size
    var label: String = ""
    
    var body: some View {
        ZStack {
            // ๐Ÿ–ผ Line (pin tail)
            Line(head, tail)
            // ๐Ÿ–ผ Point (pin head)
            Point(head, color, size: size, label: label)
        }
    }
}

// convenience init
extension Pin {
    init(
        _ head: UnitPoint, 
        _ tail: UnitPoint, 
        _ color: Color = .pink, 
        size: CGFloat = 24, 
        label: String = ""
    ) {
        self.init(head: head, tail:tail, color: color, size: size, label: label)
    }
}

Last updated