【问题标题】:How can I cast an @Binding in Swift如何在 Swift 中转换 @Binding
【发布时间】: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


    【解决方案1】:

    我认为没有办法进行转换,但您可以基于第一个绑定创建另一个绑定:

    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) })
    

    【讨论】:

    • 感谢 sas - 如果 SwiftUI 库有 Slider 的重载,这样就不需要了。干杯
    • 抱歉,这似乎不完整,您能否发布一个完整的工作示例。如何使用此代码将绑定双精度设置为 bd?
    • 您将获得来自其他来源的Binding&lt;Double&gt;bd 只是为了提供完整的工作示例而创建的。问题是如何构造bi。无论您的Binding&lt;Double&gt; 来源是什么,都可以将其替换为bd
    猜你喜欢
    • 2013-10-22
    • 1970-01-01
    • 2023-03-08
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 1970-01-01
    • 2023-01-18
    相关资源
    最近更新 更多