J'ai une application construite avec Swift3, avec une tableview. J'utilise storyboard, et tableview est placé à l'intérieur du contrôleur de vue. J'utilise des sections et l'en-tête de section de réglage par l'intermédiaire du code. Je souhaite que l'en-tête de section affiche le même arrière-plan gris que celui que j'ai défini pour la vue de la table. J'ai essayé de définir le même code couleur, mais cela n'a pas aidé. J'ai donc essayé de paramétrer comme UIColor.clear, mais il apparaît en fond blanc pour l'en-tête de la section. J'en ai besoin pour utiliser l'arrière-plan de la table. Pouvez-vous me guider sur ce qui ne va pas.UIColor.Clear ne donne pas le résultat attendu lors de l'utilisation de l'en-tête de section dans swift3
code:
func tableView(_ tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) {
print("willDisplayFooterView.. for section \(section) ")
(view as! UITableViewHeaderFooterView).backgroundView?.backgroundColor = UIColor.clear //UIColor(red: 232.0, green: 232.0, blue: 232, alpha: 1.0)
}
func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
print("willDisplayHeaderView,... for section \(section) ")
(view as! UITableViewHeaderFooterView).backgroundView?.backgroundColor = UIColor.clear //UIColor(red: 232.0, green: 232.0, blue: 232, alpha: 1.0)
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
print("titleForHeaderInSection")
return self.section [section ]
}
J'ai essayé d'utiliser viewForHeaderInSection, mais qu'il ne soit pas appelé du tout.
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
print("in viewForHeaderInSection")
let view = UIView()
let label = UILabel()
label.text = self.section [section ]
view.addSubview(label)
view.backgroundColor = UIColor.clear
label.translatesAutoresizingMaskIntoConstraints = false
let horizontallayoutContraints = NSLayoutConstraint(item: label, attribute: .centerX, relatedBy: .equal, toItem: view, attribute: .centerX, multiplier: 1, constant: 0)
view.addConstraint(horizontallayoutContraints)
let verticalLayoutContraint = NSLayoutConstraint(item: label, attribute: .centerY, relatedBy: .equal, toItem: view, attribute: .centerY, multiplier: 1, constant: 0)
view.addConstraint(verticalLayoutContraint)
return view
}
salut .. encore ne me donne pas le comportement attendu. J'ai essayé de l'utiliser comme vous l'avez suggéré et j'ai reçu un avertissement indiquant qu'il s'agit d'un comportement obsolète et d'utiliser à la place la couleur d'arrière-plan contentView. J'ai donc essayé d'utiliser ça, mais toujours pas de chance. func tableView (_ tableView: UITableView, willDisplayFooterView view: UIView, section forSection: Int) { print ("willDisplayFooterView .. pour la section \ (section)") (voir aussi! UITableViewHeaderFooterView) .contentView.backgroundColor = UIColor.clear } – csharpnewbie
redéfinissez-vous cette méthode? "func tableView (tableView: UITableView, section viewForHeaderInSection: Int) -> UIView?" –
salut .. comme je l'avais édité dans la question originale, j'ai essayé d'utiliser viewForHeaderInSection, mais il n'est pas appelé du tout. – csharpnewbie