如何在 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 的值?