Как бы вы эмулировали поведение формы выбора даты с помощью пользовательского параметра в форме SwiftUI?

#swiftui

#swiftui

Вопрос:

Вот как выглядит элемент выбора даты в форме. Оно расширяется ниже связанного текстового поля, которое создается автоматически.

 import SwiftUI

struct DatePckrUI: View 
{
    @State private var birthDate = Date()

    var body: some View {
        Form {
           DatePicker(selection: $birthDate, in: ...Date(), displayedComponents: .date) {
                    Text("Time")
            }
        }
    }
}
  

пример

Как бы вы эмулировали поведение формы выбора даты с помощью пользовательского параметра в форме SwiftUI?

Есть ли способ заставить пользовательский инструмент выбора, подобный этому, расширяться и сжиматься при нажатии на соответствующее текстовое поле? Это поведение выполняется автоматически при выборе даты.

Второй механизм выбора в этом примере принимает касание, а первый — нет. А фоновые виды были окрашены и отображают неожиданный кадр. Каких подсказок не хватает?

 import SwiftUI

struct SclPckr: View
{
    var body: some View {
        Form { SclPicker() }
    }
}

struct SclPicker: View
{
    @State var selectedInt = 0
    @State var selectedDecimal = 0
    
    var int = [Int](0..<30)
    var decimal = [Int](0..<24)
    
    var body: some View {
        GeometryReader { geometry in
            HStack {

                Picker(selection: self.$selectedInt, label: Text("")) {
                    ForEach(0 ..< self.int.count) { index in
                        Text("(self.int[index])").tag(index)
                    }
                }
                .frame(width: geometry.size.width/4, height: 100, alignment: .center)
                .background(Color.red)
                .pickerStyle(WheelPickerStyle())

                Text(".")
                
                Picker(selection: self.$selectedDecimal, label: Text("")) {
                    ForEach(0 ..< self.decimal.count) { index in
                        Text("(self.decimal[index])").tag(index)
                    }
                }
                .frame(width: geometry.size.width/4, height: 100, alignment: .center)
                .background(Color.blue)
                .pickerStyle(WheelPickerStyle())
            }
        }
    }
}
  

текущее неоптимальное

Есть предложения? Возможно, просмотр кода выбора даты / формы позволил бы получить представление?