【发布时间】:2019-10-16 21:25:28
【问题描述】:
我可以使用 Int(doubleVariable) 将 Int 转换为 Double。
但是如何将 Binding 转换为 Binding ?
然后我可以将 @Binding var intVar: Int 传递给需要 Double 绑定的函数。
(上下文是我有一个 Int,我想将它传递给 SwiftUI 中的 Slider。)
【问题讨论】:
标签: swift casting binding slider swiftui
我可以使用 Int(doubleVariable) 将 Int 转换为 Double。
但是如何将 Binding 转换为 Binding ?
然后我可以将 @Binding var intVar: Int 传递给需要 Double 绑定的函数。
(上下文是我有一个 Int,我想将它传递给 SwiftUI 中的 Slider。)
【问题讨论】:
标签: swift casting binding slider swiftui
我认为没有办法进行转换,但您可以基于第一个绑定创建另一个绑定:
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) })
【讨论】:
Binding<Double>,bd 只是为了提供完整的工作示例而创建的。问题是如何构造bi。无论您的Binding<Double> 来源是什么,都可以将其替换为bd。