2017-11-14 5 views
1

Ich habe dieses Problem, hoffe, Sie können mir helfen.Schaltfläche in TabelleViewheader erkennt Header-Nr nicht. 0

Dies ist der Code, den ich in viewForHeaderInSection haben:

let button = UIButton(frame: CGRect(x: view.frame.width - (cancel.frame.width + xImage.frame.width + 100), y: view.frame.origin.y, width: cancel.frame.width + xImage.frame.width + 120, height: view.frame.height)) 
button.backgroundColor = UIColor.blue.withAlphaComponent(0.5) 
button.addTarget(self, action: #selector(action), for: .touchUpInside) 
view.addSubview(button) 

und das ist action func:

@objc func action(sender: UIButton) { 
    let position: CGPoint = sender.convert(CGPoint.zero, to: self.tableView) 
    if let indexPath = self.tableView.indexPathForRow(at: position) { 
     let section = indexPath.section 
     print(section) 
    } 
} 

wenn ich auf jedem Header mit Ausnahme der ersten (Header 0) druckt tippen Jetzt der richtige Abschnitt. Wie wird es gemacht, um den Header 0 zu erkennen?

+0

zuweisen Sie die Schaltfläche Tag während Hinzufügen Schaltfläche im Abschnitt Header. –

+0

@NishantBhindi was meinst du? –

+1

Abschnitt als Schaltfläche Tag festlegen und wenn Aktion ausgelöst wird überprüfen Sie die Schaltfläche Tag und identifizieren, dass die Schaltfläche zu welcher Sektion gehören. –

Antwort

2

Wenn Sie wissen wollen, die den Abschnitt der Schaltfläche ist, könnten Sie den Abschnitt die Tag-Taste zuweisen, zB:

Ihr in viewForHeaderInSection

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
    let button = UIButton(frame: CGRect(x: view.frame.width - (cancel.frame.width + xImage.frame.width + 100), y: view.frame.origin.y, width: cancel.frame.width + xImage.frame.width + 120, height: view.frame.height)) 
    button.backgroundColor = UIColor.blue.withAlphaComponent(0.5) 
    button.addTarget(self, action: #selector(action), for: .touchUpInside) 
    view.addSubview(button) 
    button.tag = section // this is the trick 
} 

und dann innerhalb der Aktion:

@objc func action(sender: UIButton) { 
    let section = sender.tag 
    print(section) 
} 
Verwandte Themen