如何使用RxSwift将FloatRatingView评级绑定到变量

时间:2017-03-28 07:28:48

标签: rx-swift

我正在尝试将此库与我的RxSwift项目https://github.com/glenyi/FloatRatingView

集成

我无法获得更新的评分。 以下是我在控制器

中创建FloatRatingView的方法
let starRater : FloatRatingView = {
let floatRatingView = FloatRatingView()
floatRatingView.emptyImage = UIImage(named: "EmptyStar")
return floatRatingView
}()

模型包含以下内容,

let my_rating = Variable<Float?>(nil)

我希望能够做的是在用户通过点击星号更改评级时更新my_rating变量中的值。以下是我为此所写的内容,

_ = starRater.rx.rating
   .asObservable()
   .bindTo(viewModel.my_rating.rx_value)

但这是我收到的错误。

  

类型的值&#39; Reactive FloatRatingView&#39;没有会员评级&#39;

以下是我将如何从my_rating变量

中检索值
let stars = self.my_rating.value

请帮助我。感谢。

1 个答案:

答案 0 :(得分:0)

你需要为属性添加一个可绑定的接收器,它将是这样的:

extension Reactive where Base: FloatRatingView {

    /// Bindable sink for `rating` property
    public var progress: UIBindingObserver<Base, Float> {
        return UIBindingObserver(UIElement: self.base) { floatRatingView, rating in
            floatRatingView.rating = rating
        }
    }

}