Ich habe einen benutzerdefinierten Navigationselementtitel, bei dem es sich einfach um zwei übereinander liegende Beschriftungen handelt, die aus einer .xib-Datei geladen werden.Benutzerdefinierter Nav-Titel-Offset ios 11
Es ist durch den Aufruf dieser geladen:
class Utilities {
/// Title and subtitle format custom title in Navigation bar. Top and bottom text are centered on one another.
///
/// - Parameters:
/// - navigationItem: The receiving controller's navigation item.
/// - titleText: Top text to be displayed a little larger and more bold.
/// - subtitleText: Bottom text to be displayed a little smaller and less bold.
class func addCustomNavigationTitle(navigationItem: UINavigationItem, titleText: String, subtitleText: String) {
let customNavigationTitleView = LabelSubLabelCustomHeaderView.instanceFromNib() as! LabelSubLabelCustomHeaderView
customNavigationTitleView.titleLabel.text = titleText
customNavigationTitleView.dateLabel.text = subtitleText
navigationItem.titleView = customNavigationTitleView
}
...
}
Es ist definiert als das:
class LabelSubLabelCustomHeaderView: UIView {
@IBOutlet var titleLabel: UILabel!
@IBOutlet var dateLabel: UILabel!
class func instanceFromNib() -> UIView {
return UINib(nibName: "LabelSubLabelCustomHeaderView", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! UIView
}
}
Jetzt ist es genau um 22 Pixel nach unten gedrückt, die den Boden Etikett verbirgt.
Ich muss den Rahmen dieser Ansicht in der viewDidAppear setzen, um es gerade zu setzen. Ich habe ViewWillAppear und einige andere Dinge ausprobiert. Ich muss es buchstäblich verstecken, einstellen und dann zeigen, was eindeutig nicht stimmt.
Vor iOS 11 funktionierte das kein Problem.
Hier ist sie nun, ohne meinen Hack fix, was ich hoffe ich richtig machen kann:
Und hier ist, wie es aussehen soll, wie es vor dem iOS sah 10 und wie es mit meinem Hack fix aussieht:
bitte beachten sie auch, dass, wenn der Abwickler segue belebt, die im Hinblick auf den falschen Rahmen geht zurück, 22 Pixel zu niedrig zu sein. Wie kann ich das beheben? Danke für jede Hilfe im Voraus.
Edit: Detailliertere Constraint Info:
Ich glaube, der Fehler/die Lösung wird in Ihren Layoutbeschränkungen enthalten sein, jede Chance, dass Sie zeigen könnten, was Sie bisher definiert haben? – ekscrypto
Danke. Deshalb habe ich den Screenshot mit den Einschränkungen versehen, aber ich kann weiter gehen und einen detaillierteren Screenshot zeigen ... Ich werde den ursprünglichen Post bearbeiten, denke ich ... –
Okay, ich habe mehr Screenshots gemacht. Beachten Sie, dass diese Datei von .xib geladen und als benutzerdefinierte Titelansicht für Navigation Item festgelegt wird. Ich weiß nicht, wie man die Beschränkungen für die geladene Ansicht einstellt, oder ob das überhaupt möglich ist. Ich würde denken, dass das Navigationselement das für mich tut. Auf jeden Fall hat es mit den aktuellen Einschränkungen vor iOS 11 gut funktioniert. –