wie diese möchte ich meine Anwendung verhalten Zentrierung:zwei Ansichten in Navigation Titleview
Es ist wichtig, das genaue Verhalten für meine NavigationItem.titleView zu haben
ich diese Schritte befolgt so weit:
Ich erstelle drei Ansichten programmgesteuert in meiner Anwendung:
(1) container
=> hält (2) und (3) => hat eine GestureRecognizer angebracht
let container = UIView(frame: CGRectMake(0,0,200,40))
(2) imageContainer
=> hat ein Bild
let imageContainer = UIImageView(frame: CGRectMake(0, 0, 30, 30))
imageContainer.image = UIImage(named: "mock.jpg")
(3) textContainer
= > hat einen Text
let textContainer = UILabel(frame: CGRectMake(0,0, 180, 20))
textContainer.text = "Group xY"
nach ich in der Mitte der Bilder setze sie ausrichten:
imageContainer.center = CGPointMake(container.frame.size.width/2,
container.frame.size.height/2)
textContainer.center = CGPointMake(container.frame.size.width/2,
container.frame.size.height/2)
Jetzt bin Hinzufügen ich alle Subviews meiner Ansicht und
self.navigationItem.titleView = (1)
die App zeigt Starteinstellung, dass die Elemente des Titleview nicht richtig
ausgerichtetGibt es eine Möglichkeit, dieses genaue Verhalten korrekt zu implementieren?
Hinweis: mach dir keine Sorgen über das kreisförmige Bild. Ich weiß, wie man das umsetzt.
Danke. Das hilft sehr. Gibt es eine Möglichkeit, eine maximale Breite der Ansicht festzulegen? wenn ich einen längeren Text darin lege, ist die ganze Navbar bevölkert, aber ich möchte auch meine Navigationbar.barButtonitems haben – JVS
Ich aktualisierte meine Antwort. Sie können einfach die Breite des Etiketts nach 'sizeToFit' überprüfen, wenn es größer ist als die größte Breite, die Sie auf die maximale Breite setzen möchten, ansonsten lassen Sie es unverändert (zB' min (maxWidth, textContainer.frame.size.width) 'Sie können auch Passen Sie den Beschriftungsskalierungsfaktor so an, dass der Shrink passt, obwohl Sie ihn wahrscheinlich nicht um einen Titel verkleinern möchten. – beyowulf