SwiftUI似乎忽略了WatchOS上的Spacer

时间:2019-06-24 05:04:16

标签: apple-watch swiftui

我已经通过制作独立的WatchOS应用程序开始使用SwiftUI。目前,我正在登录屏幕上,并且在模拟器中看到的内容与在预览中看到的内容之间存在差异:

Preview (what I'm looking for) 预览(我正在寻找的东西)

Simulator 模拟器

我知道这似乎是一个小问题,但是我的文字似乎表明正在发送代码,并且当出现该文字时,模拟器中的文字会被截断:

Preview (what I'm looking for) 预览(我正在寻找的东西)

Simulator 模拟器

以下是该视图的代码:

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)
        }
    }
}

从本质上讲,它是文本,空格,条件文本和文本字段的VStack。至于视图的呈现方式,无论是在预览中还是在应用程序中,视图都是整个主体(即没有VStack,HStack,Group或将其包装的任何类似内容)。

此外,我尝试在iOS上复制该问题,但在该处的行为符合预期,预览和模拟器给出的结果相同。如果有人遇到类似问题或对正在发生的事情有任何想法(我可能只是缺少明显的东西),将不胜感激:)

0 个答案:

没有答案