2016-04-21 8 views
0

Ich habe eine Feder als benutzerdefinierte Zelle auf UITableViewCellController. Es gibt eine UIView mit einem Erkenner darauf. Und ich habe die Spitze in cellForRowAtIndexPath hinzugefügt, aber ich kann nicht auf die UIView auf der Spitze klicken.Tap Recognizer von CustomCell auf UITableViewCell kann nicht geklickt werden

CustomButton.swift (ich übersprang die tapRecognizer, da es nicht wichtig ist, hier zu zeigen):

@IBOutlet weak var customButton: CustomButton! 

override func awakeFromNib() { 
    self.customButton.tappable = true 
} 

Der Code aus:

class CustomButton: UIView { 
    var tappable = false 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 

     let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(CustomButton.tapRecognizer)) 
     self.addGestureRecognizer(tapGestureRecognizer) 
    } 
} 

Dies ist der Code für die Spitze ist die UITableViewCellController:

override func viewDidLoad() { 
    // register nib 
    let nib = UINib(nibName: "CustomCell", bundle: nil) 
    self.tableView.registerNib(nib, forCellReuseIdentifier: "customNib") 
} 

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("customNib") as! CustomCell 
    return cell 
} 

Wenn ich versuchte, die Ansichtshierarchie zu debuggen, wird die ganze Seite (einschließlich der Schaltfläche (orange)) durch eine UITableViewCellContentView abgedeckt.

enter image description here

Bin ich etwas auf dem Code fehlt?

Antwort

0

Ich glaube, Sie vergessen userInteractionEnabled. Aktivieren Sie die Benutzerinteraktion, um die Ansicht anzuzeigen, mit der Sie tippen möchten.

fügen etwas wie

self.view.userInteractionEnabled = true 

Update:

Fügen Sie Ihre Ansicht (buttonview) auf InhaltAlle der Zelle nicht auf Zelle steuern.

Hoffnung, das wird helfen :)

+0

Vielen Dank, aber es funktioniert auch nicht. Ich habe etwas wie "tappable" hinzugefügt, um die Interaktion zu bewältigen. Als ich versuchte, die Ansichtshierarchie zu debuggen, wird die Schaltfläche durch eine UITableViewCellContentView abgedeckt. –

+0

Update in Antwort prüfen – Lion

+0

Bedeutet das, dass ich meine Feder wechseln muss? Ich muss das ButtonView aus der Feder nehmen und es manuell in die Zelle einfügen? –

0

zuerst einen Blick in der Spitze Ihrer Zelle hinzufügen und dann auf dieser Ansicht auf die Schaltfläche hinzufügen. Durch direktes Hinzufügen der Schaltfläche auf der Zellenspitze wird diese hinter der Inhaltsansicht verborgen.

0

Ich sollte statt Ansicht, eine Spitze mit TableViewCell haben erstellen und es ist Arbeit. Ich danke dir sehr. :)

Verwandte Themen