SwiftUI, кажется, игнорирует Spacer на WatchOS - PullRequest
3 голосов
/ 24 июня 2019

Я начал играть с SwiftUI, создав автономное приложение WatchOS. В настоящее время я работаю над экраном входа в систему, и у меня есть несоответствие между тем, что я вижу в симуляторе, и тем, что я вижу в превью:

Preview (what I'm looking for) Предварительный просмотр (что я ищу)

Simulator Simulator

Кажется, это небольшая проблема, но у меня есть текст, который показывает, что код отправляется, и когда он появляется, текст в симуляторе обрезается:

Preview (what I'm looking for) Предварительный просмотр (что я ищу)

Simulator 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 Text, Spacer, условного Text и TextField. Что касается представления представления как в предварительном просмотре, так и в приложении, то представление представляет собой целостное тело (т. Е. Нет VStacks, HStacks, Groups или чего-либо подобного, оборачивающего его).

Кроме того, я попытался повторить проблему на iOS, но там она работает так, как ожидалось, и предварительный просмотр и симулятор дают тот же результат. Если кто-то сталкивался с подобной проблемой или имеет представление о том, что происходит (я могу просто упустить что-то очевидное), это было бы очень ценно:)

...