gpt4 book ai didi

Swift:对 SwiftUI View 的多个条件进行内联评估

转载 作者:行者123 更新时间:2023-12-03 21:55:19 24 4
gpt4 key购买 nike

在 SwiftUI 中,修改一个 View基于条件,我们可以使用三元运算符,因此允许两种情况。但是如果我想评估多个条件,我该怎么做,让它更像一个 switch (多个情况)比 if/else (两种情况)?

为了演示,Text View 可以通过 @State var isLoggedIn: Bool 修改像这样,使用三元运算符:

Text(self.isLoggedIn ? "Welcome!" : "Please log in")

如果我现在想添加更多案例,我会做的是使用一个函数,但这使得代码比三元运算符的简单优雅要长得多:
struct ContentView: View {

enum Status {
case loggedIn, loggedOut, expired
}

@State var userStatus: Status

func displayMessage(status: Status) -> some View {
switch(status) {
case .loggedIn:
return Text("Welcome!")
case .loggedOut:
return Text("Please log in")
case .expired:
return Text("Session expired")
}
}

var body: some View {
displayMessage(status: userStatus)
// more views
}
}

那么有人对我如何简化和缩短第二个代码有任何建议吗?

最佳答案

这是可能的方法

struct ContentView: View {

enum Status: String {
case loggedIn = "Welcome!"
case loggedOut = "Please log in"
case expired = "Session expired"
}

@State var userStatus: Status = .loggedOut

var body: some View {
Text(userStatus.rawValue)

// more views
}
}

关于Swift:对 SwiftUI View 的多个条件进行内联评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61837099/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com