我已经创建了一个应用程序到目前为止,用户输入主题,并且表格视图显示每个主题的名称,以及它自己的滑块和滑块值标签。见下文:
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
}
}
我也不知道如何获得每个滑块和主题的值,除非您可能使用字典?
非常感谢任何帮助:)
提前致谢。
答案 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!
当你需要传递滑块的值
时