小编Tig*_*old的帖子

UIViewRepresentable 未更新与 ObservedObject 属性的绑定?

此视图是一个适应我的 SwiftUI 项目的 UIKit 滑块,因为在 SwiftUI 中Slider无法更改其轨道颜色,这可能是一个错误,因为您应该能够使用.accentColor.

不管怎样,这个滑块根据它的值改变它的轨道颜色,从绿色到红色。value如果绑定到普通属性,整个事情就完美地工作了(尽管我的渐变还不是很好)@State,但是当你尝试将它附加到它的属性时,@ObservedObject它就会中断,尽管轨道颜色仍然有效,但它永远不会改变基础价值。我想这只是一个错误,但更可能的是这里有一些东西需要修复。

struct RedscaleSlider: UIViewRepresentable {
    
    @Binding var value: Double
    
    var min: Double
    var max: Double
    
    class Coordinator: NSObject {
        @Binding var value: Double
        var min: Double
        var max: Double
        
        init(value: Binding<Double>, min: Double = 0, max: Double = 100) {
           _value = value
            self.min = min
            self.max = max
        }
        
        @objc func valueChanged(_ sender: UISlider) {
            self.value = Double(sender.value)
            sender.minimumTrackTintColor = green_to_red_gradient(value: (Double(sender.value) …
Run Code Online (Sandbox Code Playgroud)

swift swiftui uiviewrepresentable swiftui-14.2-defect

5
推荐指数
1
解决办法
4677
查看次数