表单内 Swift 中的选择器控件有啥问题?

Posted

技术标签:

【中文标题】表单内 Swift 中的选择器控件有啥问题?【英文标题】:What's the problem with picker control in Swift inside a form?表单内 Swift 中的选择器控件有什么问题? 【发布时间】:2020-01-25 10:29:26 【问题描述】:

我不知道为什么选择器不能在 Swift UI 中的表单内工作。如果用户第二次点击,应用程序将崩溃。控制台将打印以下输出:

[TableView] 仅警告一次: UITableView 被告知在不位于视图层次结构中的情况下布局其可见单元格和其他内容(表视图或其父视图之一尚未添加到窗口)。


struct ContentView: View 

    @State private var countryIndex = 0

    var countries = ["US", "Germany", "Korea", "Russia"]

    var body: some View 

        NavigationView 

            Form 
                Section 
                    Picker(selection: $countryIndex, label: Text("Country")) 
                                   ForEach(0 ..< countries.count) 
                                       Text(self.countries[$0]).tag($0)
                                   
                               

                
                .navigationBarTitle(Text("Country"))
            


        
    

【问题讨论】:

这能回答你的问题吗? Why is SwiftUI picker in form repositioning after navigation? 【参考方案1】:

首先,你得到的警告只是一个警告,所以你不应该介意,但如果你设置.navigationBarTitle("xyz", displayMode: .inline),它就会消失。

其次,导航只能工作一次是模拟器的问题,如果你在真机上构建和运行,它就不会发生。

【讨论】:

以上是关于表单内 Swift 中的选择器控件有啥问题?的主要内容,如果未能解决你的问题,请参考以下文章

绑定 xamarin 表单选择器值的正确方法

如何在 xamarin 表单中刷新选择器控件的 UI

Android,有啥方法可以禁用使用键盘在日期选择器内写入?

表单内的选择器不再选择

iOS涂色涂鸦效果Swift仿喜马拉雅FM抽屉转场动画拖拽头像标签选择器等源码

用于 JQuery 日期时间选择器的 ASP.Net 包装器控件