Der*_*ews 7 struct func swift watchos swiftui
我有一个带有此堆栈的名为 MyWatchView 的 SwiftUI 视图:
VStack (alignment: .center)
{
HStack
{
Toggle(isOn: $play)
{
Text("")
}
.padding(.trailing, 30.0)
.hueRotation(Angle.degrees(45))
if play
{
MyWatchView.self.playSound()
}
}
}
Run Code Online (Sandbox Code Playgroud)
它还具有如下@State private var play = false功能playSound:
static private func playSound()
{
WKInterfaceDevice.current().play(.failure)
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误,Type '()' cannot conform to 'View'; only struct/enum/class types can conform to protocols我认为这可能是我不理解结构在 Swift 中的工作方式。
您的 MyWatchView.self.playSound() 函数不会返回视图,因此您无法在 HStack 中使用它。
如果没有看到你的完整代码,我只能假设你想要做什么,但这是我的猜测:如果状态变量 play 为 true,你想执行 func playSound() 吗?
你可以这样做:
@State private var play = false {
willSet {
if newValue {
WKInterfaceDevice.current().play(.failure)
}
}
}
Run Code Online (Sandbox Code Playgroud)
每当 State 变量 play 更改为 true 时,这将执行您的静态函数。
| 归档时间: |
|
| 查看次数: |
18668 次 |
| 最近记录: |