
Photo by
hisuiiro
[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での表示はこんな感じ

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も残してみた。

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