【问题标题】:How to do an action when Eureka Slider is released?释放 Eureka Slider 时如何做一个动作?
【发布时间】:2020-12-01 08:11:21
【问题描述】:

我有一个SliderRow,我想采取行动,但前提是释放滑块。

.onChange 会在用户每次滑动一点(当然)时执行该操作。 .onCellHighlightChanged 不适用于 SliderRow

.onSliderReleased 的选项会很棒;)

同时我还有其他选择吗?

<<< SliderRow("Barrel") { row in
                    row.title = "Barrel"
                    row.value = Float(UserDefaultsManager.Barrel())
                    row.steps = 19
                    row.displayValueFor = { row in
                       return "\(Int(row ?? 0)) bbl"
                    }

                }.cellSetup { cell, row in
                    cell.imageView?.image = UIImage(systemName: "antenna.radiowaves.left.and.right")
                    cell.slider.minimumValue = 5
                    cell.slider.maximumValue = 100

                }.onChange { row in
                    let Barrel = Double(row.value ?? 50)
                    UserDefaultsManager.set(Barrel: Barrel)

                    ConnectionManager.reconnect()

                }

【问题讨论】:

  • 我建议你完全放弃 Eureka ;)

标签: ios swift netflix-eureka eureka-forms


【解决方案1】:
cell.slider.isContinuous = false

已经完成了一半,坦克就完成了
但它也会禁用滑块的值更新
所以用户必须“猜测”将设置什么值

让它工作

cell.slider.addTarget(self, action: #selector(self.sliderDidEndSliding), for: [.touchUpInside, .touchUpOutside])

@objc private func sliderDidEndSliding() {
   //do some magic
}

【讨论】:

    【解决方案2】:

    UISlider 中有一个属性isContinuous 控制行为。

    .cellSetup { cell, row in
        cell.imageView?.image = UIImage(systemName: "antenna.radiowaves.left.and.right")
        cell.slider.minimumValue = 5
        cell.slider.maximumValue = 100
        cell.slider.isContinuous = false
    

    【讨论】:

      猜你喜欢
      • 2014-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-27
      • 1970-01-01
      • 1970-01-01
      • 2015-10-29
      • 1970-01-01
      相关资源
      最近更新 更多