我如何在Swift中投射@Binding

问题描述 投票:1回答:1

很快我就可以使用Int(doubleVariable)将Int转换为Double。

但是如何将Binding 强制转换为Binding

然后我可以将@Binding var intVar:Int传递给需要Double绑定的函数。

(此上下文是我有一个要传递给SwiftUI中的Slider的Int。)

swift casting binding slider swiftui
1个回答
0
投票

我认为没有办法进行投射,但是您可以根据第一个绑定创建另一个绑定:

import SwiftUI
var d = 1.0
// Create a Binding<Double> (for lack of another source)
var bd = Binding<Double>(get: { d }, set: { d = $0 })
// "Convert" to Binding<Int> by recreating another Binding
let bi = Binding<Int>(get: { Int(bd.wrappedValue) },
                      set: { bd.wrappedValue = Double($0) })
© www.soinside.com 2019 - 2024. All rights reserved.