Ich habe einen Schieberegler und eine Beschriftung erstellt, um den Wert des Schiebereglers anzuzeigen. Beide getan programmatisch:'sliderChanged: unerkannter Selektor an Instanz gesendet'
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"
}
}
in meinem Tableview nenne ich die Funktion, den Wert des Schiebereglers zu ändern:
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
}
Der Schieber und das Label Display in Ordnung. Wenn ich mit dem Schieberegler interagiere, um den Wert zu ändern, stürzt er ab und 'sliderChanged:]: unerkannter Selektor wird an Instanz 0x7fb06d0df040 gesendet'.
Das nächste Mal, wenn Sie ein „Unbekannter Selektor“ Fehler erhalten, umfassen die vollständige Fehlermeldung (wie das Bit vor dem „' sliderChanged'“) sagt uns etwas wichtig, nämlich mit welcher Art von Objekt versucht wurde, den Selektor durchzuführen. – Rob