3

Apple Watch Extension を使用して iOS で使用している SwiftUI ビューのサンプルがあり、WatchOS の「デバイス」でプレビューしようとすると、このエラーが発生します。

実行先のiPhone 12 miniは有効ではありませんスキーム「TestApp WatchKit App」を実行していますすべてを試しました。ここで提案されているようにXcodeを再起動することは、最初のことの1つでした。

4

1 に答える 1

4

最終的に「動作」させる方法は、固定されたプレビューを使用することでした。

これは私のサンプル ビューです。「SharedViews」フォルダーにあり、TestApp のターゲット メンバーシップと TestApp WatchKit 拡張機能を持っています。

struct CustomTextView: View {
    let caption: String
    let foreground: Color
    var body: some View {
        VStack {
            Text(caption)
                .padding()
            Text("Colored\r" + caption)
                .foregroundColor(foreground)
                .padding()
        }
    }
}

//struct CustomTextView_Previews: PreviewProvider {
//    static var previews: some View {
//        CustomTextView(caption: "Shared Preview", foreground: .blue)
//    }
//}

ウォッチ デバイスでこのビューをプレビューするために、TestApp WatchKit 拡張機能で「ヘルパー」フォルダーを作成し、この中に TestApp WatchKit 拡張機能のメンバーのみである「コンテナー ビュー」を作成しました。

struct CustomTextViewWatchPreview: View {
    var body: some View {
        CustomTextView(caption: "Watch Preview Container", foreground: .red)
    }
}

struct CustomTextViewWatchPreview_Previews: PreviewProvider {
    static var previews: some View {
        CustomTextViewWatchPreview()
    }
}

CustomTextView をプレビューするには、..Preview ファイルを開き、プレビューを固定します。次に、CustomTextView ファイルに戻り、変更を適用して、ピン留めされたプレビューで確認します。「プレビューできません...」というエラーを取り除くために、上記のように CustomTextView の独自のプレビューをコメントアウトします。

iPhone でプレビューするには、実行ターゲットを変更し、独自のプレビューのコメントを外し、Watch Preview の固定を解除します。

誰かがより良い解決策を持っていますか? おそらく、iPhone と Apple Watch でビューを同時にプレビューできるものでしょうか?

于 2021-01-24T13:23:12.930 に答える