'sliderChanged: unrecognized selector sent to instance'
'sliderChanged: unrecognized selector sent to instance'
我创建了一个滑块和一个文本标签来显示滑块的值。两者均以编程方式完成:
class FilterCell: UITableViewCell {
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupViews()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
let slider : UISlider = {
let slider = UISlider()
slider.minimumValue = 0
slider.maximumValue = 50
slider.value = 50
slider.continuous = true
slider.userInteractionEnabled = true
slider.translatesAutoresizingMaskIntoConstraints = false
return slider
}()
var distanceLabel : UILabel = {
let label = UILabel()
label.text = "Distance: 50km"
label.font = UIFont.systemFontOfSize(15.0)
label.textColor = UIColor.blackColor()
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
func sliderChanged(sender: UISlider) {
var sliderValue = sender.value
distanceLabel.text = "Distance: \(sliderValue)km"
}
}
在我的表格视图中,我调用函数来更改滑块的值:
func tableView(tableView:UITableView, cellForRowAtIndexPath indexPath:NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(filterCellId) as! FilterCell
cell.slider.addTarget(self, action: #selector(FilterCell.sliderChanged(_:)), forControlEvents: .ValueChanged)
return cell
}
滑块和标签显示正常。当我与滑块交互以更改值时,它崩溃并 'sliderChanged:]: unrecognized selector sent to instance 0x7fb06d0df040'.
尝试将目标添加到 cell
,而不是 self
cell.slider.addTarget(cell, action: #selector(FilterCell.sliderChanged(_:)), forControlEvents: .ValueChanged)
我创建了一个滑块和一个文本标签来显示滑块的值。两者均以编程方式完成:
class FilterCell: UITableViewCell {
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupViews()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
let slider : UISlider = {
let slider = UISlider()
slider.minimumValue = 0
slider.maximumValue = 50
slider.value = 50
slider.continuous = true
slider.userInteractionEnabled = true
slider.translatesAutoresizingMaskIntoConstraints = false
return slider
}()
var distanceLabel : UILabel = {
let label = UILabel()
label.text = "Distance: 50km"
label.font = UIFont.systemFontOfSize(15.0)
label.textColor = UIColor.blackColor()
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
func sliderChanged(sender: UISlider) {
var sliderValue = sender.value
distanceLabel.text = "Distance: \(sliderValue)km"
}
}
在我的表格视图中,我调用函数来更改滑块的值:
func tableView(tableView:UITableView, cellForRowAtIndexPath indexPath:NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(filterCellId) as! FilterCell
cell.slider.addTarget(self, action: #selector(FilterCell.sliderChanged(_:)), forControlEvents: .ValueChanged)
return cell
}
滑块和标签显示正常。当我与滑块交互以更改值时,它崩溃并 'sliderChanged:]: unrecognized selector sent to instance 0x7fb06d0df040'.
尝试将目标添加到 cell
,而不是 self
cell.slider.addTarget(cell, action: #selector(FilterCell.sliderChanged(_:)), forControlEvents: .ValueChanged)