Apple Watch 实时活动(Live Activity)中带App Intent的Toggle组件不显示问题求助
Apple Watch 实时活动(Live Activity)中带App Intent的Toggle组件不显示问题求助
大家好,我目前在为iPhone的Live Activity适配Apple Watch端显示时遇到了一个棘手的问题:
我已经采用Apple Watch的尺寸类来做自定义适配,配置了:
.supplementalActivityFamilies([.small])
大部分功能都符合预期,但带App Intent的Toggle组件在真实Apple Watch设备上完全不显示。奇怪的是,它在预览画布上能正常展示;如果把Toggle换成带App Intent的Button,也能在设备上正常显示。我试过切换不同的Toggle样式,包括自定义的样式,结果还是看不见这个Toggle。
更诡异的是,点击设备上本该是Toggle所在的区域时,功能是正常响应的——也就是说这个Toggle其实是存在的,只是视觉上不可见。
以下是相关的代码片段,麻烦大家帮忙看看问题出在哪里:
var body: some View { switch activityFamily { case .small: smartStackContent case .medium: content default: content } } var smartStackContent: some View { HStack{ VStack(alignment: .leading){ Text(trackName) .font(.system(size: 14, weight: .medium, design: .rounded)) .foregroundStyle(.primary) .lineLimit(2) Text(artistName) .font(.footnote) .fontWeight(.semibold) .foregroundStyle(.gray) } Spacer() Toggle(isOn: isPlaying, intent: PlaybackIntent()) {} .toggleStyle(PlayWatchToggleStyle()) } .padding(8) } struct PlayWatchToggleStyle: ToggleStyle { func makeBody(configuration: Configuration) -> some View { Button { configuration.isOn.toggle() } label: { Label { configuration.label } icon: { Image(systemName: configuration.isOn ? "pause.circle.fill" : "play.circle.fill") .font(.system(size: 40, weight: .light, design: .default)) .foregroundStyle(.sonoOrange) } } .buttonStyle(.plain) } }
有没有朋友遇到过类似的问题?或者能从代码里看出哪里可能导致Toggle在Watch设备上不可见吗?感谢大家的帮助!
备注:内容来源于stack exchange,提问作者Paul Boyce




