0

Ich füge die Linke Navigation Zurück-Schaltfläche im Auflistungsansicht-Controller mit Code hinzu.
Fügen Sie die UINavigation Zurück-Schaltfläche in UICollectionView mit Swift 3 hinzu

//Add Navigation Bar 

    navbar.autoresizingMask = [.flexibleWidth, .flexibleBottomMargin, .flexibleRightMargin] 
    navbar.delegate = self 

    UINavigationBar.appearance().barTintColor = UIColor(red: 0.0/255.0, green:49.0/255.0, blue:79.0/255.0, alpha:0.1) 
    UINavigationBar.appearance().tintColor = UIColor.white 
    UINavigationBar.appearance().isTranslucent = true 
    UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName : UIColor.white] 

    navItem.title = prefs.value(forKey: "PROVIDER_NAME") as! String? 

    let image = UIImage(named: "back_image") 
    navItem.leftBarButtonItem = UIBarButtonItem(image: image, style: .plain, target: self, action: #selector(addTapped)) 

    navItem.leftBarButtonItem?.imageInsets = UIEdgeInsetsMake(0, 0, 0, 0) 


enter image description here
Zurück-Taste ist auf der linken Seite so nah. Ich möchte Padding etwa 10px von links hinzufügen.
Also änderte ich den Code in

navItem.leftBarButtonItem?.imageInsets = UIEdgeInsetsMake(0, 15, 0, 0) 

aber es funktioniert nicht und Bild Zurück-Taste sieht kleiner. Wie kann ich tun, um links neben der Schaltfläche Zurück Platz hinzuzufügen?

+0

Haben Sie diese Ansicht Controller einbetten in 'UINavigationController'? –

+0

@ArtemStepanenko, ich bin nicht in UINavigationController bro –

+0

brocken Zuerst müssen Sie Ihre ViewController mit NavigationController eingebettet und überprüfen Sie diese Beiträge https://stackoverflow.com/questions/43546132/how-to-customize-the-navigation-back -symbol-und-navigation-back-text/43556837 # 43556837 und https://stackoverflow.com/questions/40504860/how-to-change-back-button-title-on-navigation-controller-in-swift3/40505660 # 40505660 – Joe

Antwort

2

Ich würde UINavigationBar mit einem einfachen UIView ersetzen. Auf diese Weise erhalten Sie eine vollständige Kontrolle über das Layout der Navigationsleiste. Es wäre nichts mehr als ein transparenter UIView mit einer Zurück-Taste und einem Titel-Etikett im Inneren. So einfach ist das.

Die echte UINavigationBar ist mehr als das. Es soll einen Stapel von UINavigationItem Objekten verwalten. Es stellt sich selbst ein, hängt vom aktuellen Gegenstand ab und weiß, wie man einen Übergang von einem Zustand in einen anderen animiert (und sogar interaktiv) macht. Deshalb können Sie an der Erscheinung der Bar nicht viel ändern. Sie sollten es nicht als normale Ansicht behandeln.

UPDATE

Ein anderer Weg, dies zu erreichen, ist ein wenig kompliziert. Sie können es komplett aus einem Storyboard heraus implementieren und Sie brauchen kein Chaos mit Aussehen.

  1. Fügen Sie UINavigationBar zu einem View-Controller hinzu.
  2. Fügen Sie eine Ebene UIView auf der linken Seite UINavigationBar hinzu und machen Sie die Hintergrundfarbe vollständig transparent.
  3. Fügen Sie der im vorherigen Schritt hinzugefügten Ansicht UIButton hinzu und legen Sie ein Zurück-Symbol als Bild fest.
  4. Fügen Sie der Schaltfläche Beschränkungen hinzu, um sie an der rechten Seite ihrer Superansicht auszurichten.
  5. Passen Sie die Breite der Ansicht so an, dass die Position der hinteren Taste genau dort ist, wo Sie sie haben möchten.

Dies ist eine Ansicht Hierarchie im Storyboard: A view hierarchy

Dies ist, wie Sie Ihre UINavigationBar aussehen wird (für Sie der Hintergrund transparent sein): <code>UINavigationBar</code>

Verwandte Themen