見出し画像

[WatchOS]SwiftUI swipeActionsでのTextって使えないの?

興味半分で、WatchOSアプリのサンプルを作っててぶち当たる

iOSアプリでは、普通にText出るけど、WatchOSでは、Textでないじゃん。
コードはこんな感じ

import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack {
            Image(systemName: "globe")
                .imageScale(.large)
                .foregroundColor(.accentColor)
            Text("ようこそ、こねこねこねこ")
            List {
                Text("ぴょりんこ")
                .swipeActions(edge: .trailing , allowsFullSwipe: true) {
                    Button {
                        print("逃げますよ")
                    }label: {
                        Text("逃げませんよ")
                    }
                    .tint( .red)
                }

            }
        }
        .padding()
    }
}

iOSでの表示はこんな感じ

iOSでの表示 ちゃんと逃げない

WatchOSでの表示はこんな感じ

WatchOSでの表示 何も出ない


解決法を探る

よくわからんので、「SWIFTUI swipeActions Watch Text」でぐぐる
StackOverFlowで回答を発見

英語そこまで得意じゃないけど、回答の中に
「Watchは、画面ちっちゃいから、Imageしか対応してないかもねぇ」
みたいなこと言ってる。

試してみる


なのでソースをちょっと修正してみる。

                .swipeActions(edge: .trailing , allowsFullSwipe: true) {
                    Button {
                        print("逃げますよ")
                    }label: {
                        Text("逃げませんよ")
                        Image(systemName: "globe")
                            .imageScale(.large)
                            .foregroundColor(.accentColor)
                    }
                    .tint( .red)

labelの中にお試しでImageを追加。あえてTextも残してみた。

Imageだと出るのね。

おお、ちゃんと出るじゃん。

愚痴

てかさー。Appleさん、TEXTサポートしてないんだったらさー。
ちゃんと、Worning出すとかさー、Errorにするとかしてくれよー。


いいなと思ったら応援しよう!