带有文本和图像的 SwiftUI 表单选择器

Posted

技术标签:

【中文标题】带有文本和图像的 SwiftUI 表单选择器【英文标题】:SwiftUI Form Picker with text and Image 【发布时间】:2020-02-26 01:17:16 【问题描述】:

我正在尝试创建一个表单选择器,在顶层显示当前选择的图像资源,当用户选择它以显示详细信息时,我希望它显示所有可用的图像资源。

这里是相关的代码部分:

                Picker("Background image:", selection: $task.background) 
                    ForEach(0 ..< backgroundImages.count) 
                        Image("Background\($0)").resizable().frame(width: 100, height: 35, alignment: .center)
                        Text("Background\($0)")
                    
                

问题在于,我在详细信息屏幕中得到:

图像是空白的,图像和文本出现在 2 个不同的行上。

我尝试将图像和文本行包装在 HStack 中,但这会在其他行上产生编译时错误。任何建议都会有所帮助。

【问题讨论】:

【参考方案1】:

以下内容应该可以很好地编译和工作(使用替换的系统映像进行测试,Xcode 11.2)

Picker("Background image:", selection: $task.background) 
    ForEach(0 ..< backgroundImages.count)  i in
        HStack 
            Image("Background\(i)").resizable().frame(width: 100, height: 35, alignment: .center)
            Text("Background\(i)")
        
    

【讨论】:

感谢您的回复。这解决了我的问题的前半部分,因为它将文本和图像显示在同一行上。不幸的是,图像虽然在主视图中正确显示,但在详细视图中仍然是一个白色矩形。请记住,这是一个表单中的选取器,因此它不会显示为***选取器,而是显示为主/详细信息选取器。

以上是关于带有文本和图像的 SwiftUI 表单选择器的主要内容,如果未能解决你的问题,请参考以下文章

表单中的 SwiftUI 选择器 - 索引超出范围

SwiftUI:列表项跳转到选取器表单中的标题

带有自定义选择字段的 SwiftUI 选择器

SwiftUI 无法删除选取器上方的空间 - 表单版本

SwiftUI 表单中的选取器在选择一个值后变为灰色

应用程序在从表单(SwiftUI)的选择器上选择时扩展“其他”类别)