【问题标题】:How to make a timezone Picker in SwiftUI?如何在 SwiftUI 中制作时区选择器?
【发布时间】:2020-03-02 07:19:41
【问题描述】:

我是 SwiftUI 的新手。我想为我的示例项目制作一个 TimeZone PickerView。

经过几天的工作,我仍然找不到实现目标的方法,包括时区搜索栏。 我不知道为什么我的代码总是卡住。选择第一个选项后,我无法再次选择其他选项。在这种情况下,我什至无法再单击 TimeZone Picker 区域。它只是卡住没有反应......

这是我现在的代码:

    struct myPicker: View {
    var timezone_area = ["TimeZ1", "TimeZ2", "TimeZ3", "TimeZ4", "TimeZ5", "TimeZ6", "TimeZ7", "TimeZ8", "TimeZ9", "TimeZ10"]
    @State var TZPickerIndex: Int = 0
    var body: some View {
        NavigationView {
            Form {
                Section {
                    Picker(selection: $TZPickerIndex, label: Text("TimeZone")) {
                        ForEach(0 ..< timezone_area.count) {
                            Text(self.timezone_area[$0]).tag($0)
                        }
                    }
                }.padding()
            }
        }
    }
}

有人可以告诉我如何制作或我应该使用/搜索哪种关键字?感谢您的帮助。

【问题讨论】:

  • 欢迎来到名为 Timezones 的混乱中。您可以根据他的定位:baseweb.design/components/timezone-picker 如果您不想在选择器中包含所有时区,您可以使用 GMT + / - 0 - 12
  • @Mamaessen 感谢分享。但我不知道如何使用它。可以在 Xcode(SwiftUI 框架)中使用吗?很抱歉成为 iOS 开发的新手...
  • 您可以简单地将该链接中的所有时区添加到您的 timezone_area。
  • 我明白了。谢谢你的帮助。 :-)

标签: swift datepicker timezone swiftui uipickerview


【解决方案1】:

卡住是因为iOS模拟器错误,如果您在真实设备上测试您的代码应该可以正常工作。 使用 TimeZone 这可以帮助您了解如何在代码中使用时区 Getting the City & Country list in iOS Time Zone

【讨论】:

  • 感谢您的信息和帮助。稍后我将在真实设备上尝试我的代码。现在我们得到了完整的时区列表。但是,我仍然没有找到更好的方法来实现搜索栏。你知道如何在 Picker 或其他人上实现搜索栏吗?我只需要一个可以用于搜索城市时区的搜索栏。
【解决方案2】:

首先,创建我们自己的 countryList 字符串数组并获取系统默认时区列表。

@State var allCitiesTZ: [String] = []
@State var tzPickerIndex: Int = 0
@State var txtSearchField: String = ""
let currentTZ = TimeZone.current //show current timezone where you at 
let TZidentifiers = TimeZone.knownTimeZoneIdentifiers //get all timezone list from system defualts

现在我们准备制作我们的时区选择器(表单+选择器)和搜索栏(文本字段),如下图所示:

请忽略那个红色警告,我只是将它粘贴到我的 Xcode 空白项目中。因为代码太长,无法在帖子上发布。谢谢。

【讨论】:

    猜你喜欢
    • 2012-03-17
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    相关资源
    最近更新 更多