首页 > 解决方案 > 无法推断通用参数“标签”SWIFTUI

问题描述

有人能告诉我为什么在第 9 行我得到错误 Generic parameter 'Label' could not be inferred

struct PlayerControlsView : View {
  @State var playerPaused = true
  @State var seekPos = 0.0
  let player: AVPlayer
  var body: some View {
    HStack {
      Button(action: {
        self.playerPaused.toggle()
        if self.playerPaused {
          self.player.pause()
        }
        else {
          self.player.play()
        }
      }) {
        Image(systemName: playerPaused ? "play" : "pause")
          .padding(.leading, CGFloat(20))
          .padding(.trailing, CGFloat(20))
      }
      Slider(value: $seekPos, from: 0, through: 1, onEditingChanged: { _ in
        guard let item = self.player.currentItem else {
          return
        }

        let targetTime = self.seekPos * item.duration.seconds
        self.player.seek(to: CMTime(seconds: targetTime, preferredTimescale: 600))
      })
        .padding(.trailing, CGFloat(20))
    }
  }
}

当然还有如何解决它。

标签: swiftui

解决方案


你的Slider初始化不正确。没有具有from:和的版本through:in: [0...1]不过,这是默认设置,因此您无论如何都不需要它。

  Slider(value: $seekPos, onEditingChanged: { _ in

SwiftUI 错误消息通常是无用的。找到错误的方法是在编译之前一直注释掉内容,然后将它们重新添加。

但是,你在这里做的事情是行不通的。你不能把 a 放在 aAVPlayer里面View。AView是一个结构体,它们一直被创建、复制和销毁。请参阅如何在 iOS 13 中流式传输远程音频?(SwiftUI)


推荐阅读