๐ŸŒ€StrokeStyle

  • cap : ็ทš้ ญ็š„้ƒจๅˆ†

  • join : ็ทš่ฝ‰ๅฝŽๆ™‚็š„้€ฃๆŽฅๆ–นๅผ

  • dash : ่™›็ทšๆจฃๅผ

  • width : ็ทšๅฏฌ

import SwiftUI

public extension StrokeStyle {
    
    /// # Line Cap
    /// ็ทš้ ญ็š„่กจ็พๆ–นๅผ๏ผš
    /// - `.butt`๏ผšๅนณ้ ญใ€‚(โญ๏ธ ้ ่จญๅ€ผ)
    /// - `.round`๏ผšๅœ“้ ญใ€‚
    /// - `.square`๏ผšๆ–น้ ญใ€‚
    /// ## โš ๏ธ ๆณจๆ„๏ผš
    /// - ้™คไบ† `.butt` ไน‹ๅค–๏ผŒๅ…ถไป–ๅ…ฉ็จฎ้ƒฝๆœƒ็ชๅ‡บ็ทš้ ญๅค–โ€ผ๏ธ
    /// - Parameters:
    ///   - cap: ็ทš้ ญ็š„่กจ็พๆ–นๅผ๏ผŒๆœ‰ `.butt`ใ€`.round` ๆˆ– `.square` ไธ‰็จฎใ€‚
    public func lineCap(_ cap: CGLineCap) -> StrokeStyle {
        var style = self
        style.lineCap = cap
        return style
    }
    
    /// # Line Join
    /// ็ทš็š„้ŠœๆŽฅๆ–นๅผ๏ผš
    /// - `.miter`๏ผš็”จใ€Œๅฐ–่ง’ใ€็š„ๆ–นๅผ้ŠœๆŽฅใ€‚(โญ๏ธ ้ ่จญๅ€ผ)
    /// - `.bevel`๏ผšๆŠŠๅฐ–่ง’ใ€Œๅ‰Šๅนณใ€ใ€‚
    /// - `.round`๏ผš็”จใ€Œๅœ“่ง’ใ€็š„ๆ–นๅผใ€‚
    /// - Parameters:
    ///   - join: ็ทš็š„้ŠœๆŽฅๆ–นๅผ๏ผŒๆœ‰ `.miter`ใ€`.bevel`ใ€`.round` ไธ‰็จฎใ€‚
    public func lineJoin(_ join: CGLineJoin) -> StrokeStyle {
        var style = self
        style.lineJoin = join
        return style
    }
    
    /// # Line Width
    public func lineWidth(_ width: CGFloat) -> StrokeStyle {
        var style = self
        style.lineWidth = width
        return style
    }
    
    /// # Dash
    /// ่™›็ทš็š„ๆจฃๅผใ€‚ไพ‹ๅฆ‚๏ผš
    /// - `[10, 5]`๏ผšไปฃ่กจ `10 points` ็•ซ็ทš๏ผŒ`5 points` ็ฉบ็™ฝใ€‚
    /// - `style.dash([10, 5])`
    public func dash(_ dash: [CGFloat]) -> StrokeStyle {
        var style = self
        style.dash = dash
        return style
    }
    
    /// Example: `style.dash(10, 5)`
    public func dash(_ dash: CGFloat...) -> StrokeStyle {
        self.dash(dash)
    }
    
}

Last updated