👔WidthDimension

⬆️ 需要: LeftArrow

struct WidthDimension: View {
    // view properties
    var label: Color = .primary
    var arrow: Color = .secondary
    // view body
    var body: some View {
        // ⭐️ 使用 GeometryReader 來讀取「寬度」
        GeometryReader { geo in 
            let width = geo.size.width
            HStack{
                // 👔 LeftArrow
                LeftArrow(color: arrow)
                // dimension
                Text("\(width, specifier: "%.0f")")   // ⭐️ no decimal places
                    .font(.system(size: 14)).bold()
                    .foregroundColor(label)
                    .fixedSize()                      // ⭐️ no wrap
                // 👔 LeftArrow
                LeftArrow(color: arrow)
                    .scaleEffect(-1, anchor: .center) // ⭐️ turn around
            }
        }.frame(height: 25)    // ⭐️⭐️⭐️ 這裡指定高度很重要❗️ 
    }                          // 不然 GeometryReader 會佔滿整個空間,
}                              // 造成外界使用 overlay 時對齊無效❗️

Last updated

Was this helpful?