从表视图中快速收集数据

时间:2017-09-21 16:18:02

标签: ios swift uitableview

我已经创建了一个应用程序到目前为止,用户输入主题,并且表格视图显示每个主题的名称,以及它自己的滑块和滑块值标签。见下文:

Click Here for Image (I don't have enough reputation yet to embed an image.)

我希望能够收集和处理每个主题的数据和滑块的值,以及所有组合滑块的总值。

我不知道该如何解决这个问题。我已经尝试了下面的代码来获取所有滑块的总数,但它不起作用,我不知道如何从这里尝试。:

class SubjectsViewControllerTableViewCell: UITableViewCell {

var isSliderTotal: Float = Float(GlobalSubjects.subjects.count) * 50
var lastUp: Float = 50
var lastDown: Float = 50
@IBOutlet var subjectLabel: UILabel!
@IBOutlet var percentLabel: UILabel!
@IBOutlet var slider: UISlider!
@IBAction func slider(_ sender: Any) {
    (sender as AnyObject).setValue(Float(roundf(slider.value * 1) / 1), animated: true)
    print("test")
    let sliderValueAsVar = String(slider.value)
    percentLabel.text = String(sliderValueAsVar.components(separatedBy: ".")[0])
    if slider.value > 50 {

        let currentSlider = slider.value - lastDown
        lastDown = slider.value
        isSliderTotal += currentSlider
        print (isSliderTotal)

    }
    else if slider.value < 50 {

        let currentSlider = slider.value + lastUp
        lastUp = slider.value
        isSliderTotal -= currentSlider
        print (isSliderTotal)

        }
    }
    override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

}

我也不知道如何获得每个滑块和主题的值,除非您可能使用字典?

非常感谢任何帮助:)

提前致谢。

1 个答案:

答案 0 :(得分:0)

你可以使用委托。 在你的tableViewController中:

var isScrolledIntoView = function(element) {
  var windowTop = $(window).scrollTop();
  var windowBottom = windowTop + $(window).height();
  var elementTop = $(element).offset().top; 
  var elementBottom = elementTop + $(element).height();

  if ((elementBottom <= windowBottom) && (elementTop >= windowTop)) {
    return true; 
  } 
};

var showButtonAnimation = function(element, className) {
  $(window).on("scroll", function() {
    if (isScrolledIntoView(element)) {
      $(element).addClass(className);
    } else {
      $(element).removeClass(className);
    }
  });
};

showButtonAnimation(".button", "in");

在yourTableViewCell.swift中 添加属性:

protocol YourTableViewCellDelegate {
    func passSliderValue()
}

class YourTableViewController: UITableViewController, YourTableViewCellDelegate {
     override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let currentCell = tableView.dequeueReusableCell(withIdentifier: "YourCellIdentifier", for: indexPath) as! YourTableViewCell
        currentCell.delegate = self
    }

    func passSliderValue(){
    //deal with your data
    }
}

然后在你的func滑块(_ sender:Any)中,调用:

var delegate: YourTableViewCellDelegate!

当你需要传递滑块的值