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

Posted

技术标签:

【中文标题】为 SwiftUI 寻找一个简单的自定义视图:picker【英文标题】:Looking for an easy custom View for SwiftUI:picker 【发布时间】:2020-04-16 19:56:23 【问题描述】:

是否有人创建了自定义视图来使用选择器?我想在不阻塞视图定义的情况下使用许多选择器。

【问题讨论】:

【参考方案1】:

这是我易于使用的自定义视图以使用 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
  

【讨论】:

以上是关于为 SwiftUI 寻找一个简单的自定义视图:picker的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SwiftUI 打开通知操作的自定义视图?

在 SwiftUI 的自定义视图中访问图像的修饰符

将图像名称传递给 SwiftUI 中的自定义图像子类

SwiftUI:导航链接中的自定义标签显示为灰色

样式视图传递给 SwiftUI 中的自定义视图

如何为通过 SwiftUI 中的自定义结构传递的 @State 值设置动画