如何在 NHRangeSlider 中设置以前的值?

Posted

技术标签:

【中文标题】如何在 NHRangeSlider 中设置以前的值?【英文标题】:how to make previous values to set in NHRangeSlider? 【发布时间】:2017-09-23 07:44:05 【问题描述】:

我曾在我的应用程序中使用 NHRangeSlider 设置价格范围,该应用程序放置在表格视图中,在设置最小和最大范围后,当我移动到另一个视图控制器时出现错误,并且最后设置的值和正常值已设置滑块如何清除这个错误?

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        if indexPath.section == 0
            let cell = tableView.dequeueReusableCell(withIdentifier: "sliderCell", for: indexPath) as! SliderCell
            tableView.isHidden = false
            activityIndicator.stopAnimating()
            activityIndicator.hidesWhenStopped = true
            let sliderView = NHRangeSliderView(frame: CGRect(x: 16, y: 28, width: self.view.bounds.width - 32, height: 80))
            sliderView.sizeToFit()
            cell.contentView.addSubview(sliderView)
            return cell
        
        else
            let cell = tableView.dequeueReusableCell(withIdentifier: "brandCell", for: indexPath) as! BrandCell
            if selected == true
            let value = values.count
            if (value == 1) 
                cell.brandsLabel.text = values[indexPath.row]
            
            else if (value == 0) 
                let string = "no brand selected"
                cell.brandsLabel.text = string
            
            else 
                let total = " &"+" \(value-1) more"
                print(total)
                cell.brandsLabel.text = "\(values[0])" + total
            
            
            return cell
        
    

image is as shown here

【问题讨论】:

【参考方案1】:

您似乎总是在向您的单元格添加NHRangeSliderView 的新实例:

let cell = tableView.dequeueReusableCell(withIdentifier: "sliderCell", for: indexPath) as! SliderCell
tableView.isHidden = false
activityIndicator.stopAnimating()
activityIndicator.hidesWhenStopped = true
let sliderView = NHRangeSliderView(frame: CGRect(x: 16, y: 28, width: self.view.bounds.width - 32, height: 80))
sliderView.sizeToFit()
cell.contentView.addSubview(sliderView)
return cell

假设您在其他地方重新加载单元格/表格视图,您会发现这段代码总是在单元格的内容视图中添加一个全新的滑块视图,因为它正在重用已经有一个实例的单元格里面的NHRangeSliderView

在这种情况下,我建议创建一个已经附加了滑块视图的自定义表格视图单元格,这样您将有一个稍微简单的cellForRow(atIndexPath:) 方法,而且您不必担心不断添加视图。

【讨论】:

当我们滚动 tableview 时,滑块值发生了变化,并再次将其添加到内容视图中,我们为此做了什么。?

以上是关于如何在 NHRangeSlider 中设置以前的值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在输入文本中设置唯一可能的值

如何在映射模型中设置反向关系的值?

如何在 boto3 中设置 executionRoleArn 的值?

如何在 C# 模型类中设置数组属性的值

如何使用 Renderer2 在 Angular 中设置本机元素的值?

如何使用变量在批处理文件中设置 FI 的值[重复]