SwiftUI:将选取器选择设置为动态数组中的最后一个

Posted

技术标签:

【中文标题】SwiftUI:将选取器选择设置为动态数组中的最后一个【英文标题】:SwiftUI: Setting Picker selection to last in dynamic array 【发布时间】:2020-06-07 17:27:11 【问题描述】:

我在详细视图中有一个选择器,可以相应地更改子视图。我可以将它设置为数组中的第一个(索引 0),但对于用户来说,如果它默认为最后一个会更合乎逻辑。

struct ViewDetail: View 

   @State public var selectedYearIndex = 0

.
.
.


Picker(selection: $selectedYearIndex, label: PickerLabel()) 
                    Group 
                        ForEach(0 ..< yearArray.count)) 
                            Text(self.yearArray[$0].description).tag($0)
                        
                    
                

.
.
.



谁能建议一种方法将 Picker Selection 默认设置为可变大小数组中的最后一个索引?

想法?

【问题讨论】:

您的yearArray 在哪里以及如何声明? 【参考方案1】:

我能够通过在视图中添加以下内容来解决此问题:

.onAppear 
            if self.selectedYearIndex == 0 
                self.selectedYearIndex = (yearArray.count - 1)
            
        

这项工作始终如一,并且不影响选择器的功能。

【讨论】:

以上是关于SwiftUI:将选取器选择设置为动态数组中的最后一个的主要内容,如果未能解决你的问题,请参考以下文章

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

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

swiftUI 中的选取器正在从 Firestore 中选择文档 ID 而不是文档字段

如何正确处理更新视图中的选取器(SwiftUI)

选择器中的 SwiftUI 和枚举

具有动态数组的 SwiftUI 多个选择器,索引超出范围错误