寻找SwiftUI的简单自定义视图:picker

问题描述 投票:0回答:1

有人创建了自定义视图以使用选择器吗?我想使用许多选择器而不会阻塞我的视图定义。

optimization swiftui picker reusability custom-view
1个回答
0
投票

这是我易于使用的自定义视图,用于使用SwiftUI选择器:导入SwiftUI

struct MyPicker:查看{

@State var title:String = ""
@State var display:Bool = false
@State var chosenItem:Int = 0

var choices:[String] = []
var setPickerValue:(Int)->Void

var body: some View {

    HStack {
        Text("\(title)")
        Button(action: {
            self.display.toggle()
        }) {
            Text("\(choices[chosenItem])")
        }
        if display {
            Picker(selection: $chosenItem, label:Text("")) {
                ForEach(0 ..< choices.count) {
                    Text(self.choices[$0])
                }
            }
            .onTapGesture{
                self.display.toggle()
                self.setPickerValue(self.chosenItem)

            }
        }
    }
}

init(t:String, c:[String], initChoice: Int, funcSetValue:@escaping (Int)->Void) {
    _title = State(initialValue: t)
    choices = c
    _chosenItem = State(initialValue: initChoice)
    setPickerValue = funcSetValue
}    

}

struct MyView:视图{

@State var imageChoice:Int = 0

var imageList:[String] = ["imageOne", "imageTwo", "imageThree"]

  var body: some View {

     MyPicker(t:"Images", c:imageList, initChoice:0, funcSetValue:setImageChoice)
  }

  func setImageChoice(v:Int) -> Void {
      imageChoice = v
  }

}

© www.soinside.com 2019 - 2024. All rights reserved.