Ich versuche 2 Labels zu setzen, eins unter anderem mit unterschiedlicher Schriftgröße in der Kopfzeile. Die Funktion wird wie folgt aufgerufen:2 Label im Header programmatisch setzen - nicht Label gesehen
viewController.navigationItem.titleView = self.setHeader()
und Code für die Erzeugung Label:
private func setHeader(agentName: String = "", isTyping: Bool = false) -> UIView {
let headerLabel: UILabel = {
let label = UILabel()
label.text = self.title
label.font = UIFont.systemFont(ofSize: 21)
label.textColor = UIColor.white
return label
}()
let subheaderLabel: UILabel = {
let label = UILabel()
label.font = UIFont.systemFont(ofSize: 10)
return label
}()
let headerView: UIView = {
let view = UIView()
view.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(headerLabel)
view.addConstraints([
NSLayoutConstraint(item: headerLabel, attribute: .centerY, relatedBy: .equal, toItem: view, attribute: .centerY, multiplier: 1.0, constant: 0),
NSLayoutConstraint(item: headerLabel, attribute: .leading, relatedBy: .equal, toItem: view, attribute: .leading, multiplier: 1.0, constant: 0),
NSLayoutConstraint(item: headerLabel, attribute: .width, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: 16),
NSLayoutConstraint(item: headerLabel, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: 16)
])
return view
}()
if (!agentName.isEmpty) {
if (isTyping) {
subheaderLabel.text = agentName + " is typing ..."
} else {
subheaderLabel.text = agentName
}
headerView.addSubview(subheaderLabel)
}
return headerView
}
Wenn ich IOS App läuft nichts im Header gezeigt ist. Was ist ein Grund?
Hallo Änderungen anwenden, aber sehe nur ... nicht 2 Label. –
größeren Rahmen verwenden, ist es wahrscheinlich Label minimiert .. und denken Sie daran, Auto-Layout für das zweite Etikett –
@MarceliJanowski einzurichten, wenn die Antwort hilfreich war, bitte akzeptieren Sie es –