xcode - 如何在 SwiftUI 中显示显示数组的文本
问题描述
我有一系列日期
let Dates = ["2021-01-07","2021-01-19"]
我想在文本中显示它们作为刺痛
Text("\(Dates)")
但是我不断收到错误
Cannot call value of non-function type '[String]'.
我想知道这样做是否可以在 swiftUI 中实现。
我还想知道我是否可以以格式显示今天的日期
YYYY-MM-DDT00:00:00Z.
解决方案
- 在 Swift 中,通常变量名是小写的:
let dates : [String] = ["2021-01-07","2021-01-19"]
- 要按原样显示这些
Text
内容,您需要[String]
将String
. 一种可能性是:
Text(dates.joined(separator: ", "))
- 如果您希望它们采用不同的格式,则需要从转换
String
为Date
:
struct ContentView: View {
@State private var formatterIn = DateFormatter()
@State private var formatterOut = ISO8601DateFormatter()
let dates : [String] = ["2021-01-07","2021-01-19"]
var datesToNewFormat : String {
formatterIn.dateFormat = "yyyy-MM-dd"
return dates.compactMap { formatterIn.date(from: $0) }.map { formatterOut.string(from: $0)}
.joined(separator: ", ")
}
var body: some View {
VStack {
Text(dates.joined(separator: ", "))
Text(datesToNewFormat)
}
}
}
请注意最后一项,它也处理时区转换。在您的示例中,如果您愿意T00:00:00Z
,最简单的方法是将其附加到原始字符串的末尾:
dates.map { $0 + "T00:00:00Z" }
或者,您可以使用 DateComponents 手动将小时设置为零。这一切都可能取决于您的输入来自哪里以及您对输出的意图是什么。
还可能值得一提的是,SwiftUI 有一些用于Date
在Text
. 见https://www.hackingwithswift.com/quick-start/swiftui/how-to-format-dates-inside-text-views
推荐阅读
- mongodb - mongodb在一个范围内搜索日期字符串
- azure - 导出为 PFX 时,Azure 应用服务证书有什么密码?有可能改变它吗?
- python - 共享numpy数组时的python多处理
- spartacus-storefront - 如何从当前产品服务中获取产品代码
- javascript - 无法在 map 函数中使用 sort()
- django - 在单个查询中搜索两个 Django 表一次
- javascript - 使用 Slick Slider 在 data-id 上显示和隐藏 Div
- php - 有时无法在 cURL 之后检索会话值
- git - (GCMC - windows) git credential manager core 不断提示输入密码 (gitlab repo)
- python - 如何基于其他列创建新列