🎛️SlidersForSize

swiftcustom ⟩ control ⟩ SliderForSize

// 2022.02.15 (*)
// 2022.02.17 (+) struct: SliderWithSubtitle
//            (f) bug   : step can be < 1

import SwiftUI

// ┌──────────────────────┐
// │    SlidersForSize    │
// └──────────────────────┘

/// 🎛 sliders to control width/height
/// ```
/// SlidersForSize($size)
/// ```
struct SlidersForSize: View {
    
    // ⭐️ Binding variable
    @Binding var size: CGSize
    
    var body: some View {
        VStack(spacing: 20) {
            // 🎛 Slider: control offered width
            SliderWithSubtitle(
                value   : $size.width, 
                subtitle: "width"
            )
            // 🎛 Slider: control offered height
            SliderWithSubtitle(
                value   : $size.height, 
                range   : 100...300,
                subtitle: "height", 
                tint    : .blue
            )
        }
    }
}

// convenience init
extension SlidersForSize {
    /// convenience init.
    /// ```
    /// SlidersForSize($size)
    /// ```
    init(_ size: Binding<CGSize>) {
        // ⭐️ 注意:不是 `self.size = size` ❗️❗️❗️
        self._size = size
    }
}

// ┌────────────────┐
// │    Previews    │
// └────────────────┘

struct SlidersForSize_Previews: PreviewProvider {
    static var previews: some View {
        SlidersForSize(size: .constant(.init(300,200)))
    }
}

History

  1. 2022.02.17

Last updated

Was this helpful?