🌀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

Was this helpful?