You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

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

火山引擎 最新活动