lia*_*923 5 apple-watch swiftui
我已经开始通过制作一个独立的 WatchOS 应用程序来使用 SwiftUI。目前,我正在登录屏幕上工作,我在模拟器中看到的内容与在预览中看到的内容之间存在差异:
我知道这似乎是一个小问题,但我有文本似乎表明正在发送代码,当出现该代码时,文本在模拟器中被截断:
这是视图的代码:
struct PhoneView: View {
@State private var phone = ""
@State private var sending = true
@Binding private(set) var error: TError?
@Binding private(set) var auth: TPhoneAuth?
var body: some View {
VStack {
Text("Let's get started!")
.font(.largeTitle)
.lineLimit(nil)
.multilineTextAlignment(.center)
Spacer()
if sending {
Text("Sending code...")
.multilineTextAlignment(.center)
}
TextField($phone, placeholder: Text("Enter Phone"), onCommit: {
let phone = self.phone.filter { $0.isNumber }
let auth = TPhoneAuth(phone: phone)
self.sending = true
auth.sendCode { error in
self.sending = false
if let error = error {
print(error)
self.error = error
} else {
print(auth.phone)
self.auth = auth
}
}
})
.textContentType(.telephoneNumber)
.multilineTextAlignment(.center)
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以本质上,它是一个由 Text、Spacer、条件文本和 TextField 组成的 VStack。至于视图如何呈现,无论是在预览还是在应用程序中,视图都是主体的整体(即没有 VStacks、HStacks、Groups 或任何类似的东西包装它)。
此外,我尝试在 iOS 上复制该问题,但它在那里的行为符合预期,并且预览和模拟器给出了相同的结果。如果有人遇到类似的问题或对正在发生的事情有想法(我可能只是遗漏了一些明显的东西),我们将不胜感激:)