Ich habe eine Kopfzeile in meiner Tabellenansicht, die ein Bild und ein Label hat. Ich möchte das UII-Bild zentrieren und das Etikett darunter stecken lassen. Das ist mein Code zur Zeit:Programmgesteuert Hinzufügen von Einschränkungen zu einem UITableView-Header
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let headerLabel = UILabel()
let logoView = UIImageView()
headerLabel.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: 21)
headerLabel.text = self.navigationItem.title
headerLabel.textColor = UIColor.white
headerLabel.backgroundColor = UIColor.clear
headerLabel.textAlignment = NSTextAlignment.center
logoView.frame = CGRect(x: 0, y: 0, width: 90, height: 90)
let logo: UIImage = UIImage(named: self.navigationItem.title!)!
logoView.image = logo
logoView.contentMode = .scaleAspectFill
view.addSubview(headerLabel)
view.addSubview(logoView)
return topView
}
Damit liegt das Etikett auf der Oberseite des Kopfes zentriert, und das Logo in der linken oberen Ecke. Wie kann ich Einschränkungen (programmatisch, kein Storyboard) hinzufügen, um das Bild zu zentrieren und die Beschriftung darunter zu pinkeln? Ich habe programmatische Beschränkungen ziemlich ein bisschen benutzt (d. H. something.leftAnchor.constraint(equalTo....
), aber ich bin nicht sicher, wie man es in dieser Situation anwendet, da es meine erste Verwendung eines Headers ist.
Haben Sie versucht, eine benutzerdefinierte Ansicht Klasse für Ihre Header Erstellen und Hinzufügen alle Frames/Einschränkungen gibt? Dann laden Sie diese Ansicht in derselben viewForHeaderInSection-Methode? –
Ihr Code macht keinen Sinn. Wenn du 'view.addSubview' sagst, was ist' view'? – matt