2017-10-07 3 views
1

Ich möchte eine benutzerdefinierte Unteransicht in der großen Titelansicht von UINavigationBar hinzufügen, wie App Store in iOS11 tut. ("user icon" auf der rechten Seite)Wie kann ich eine benutzerdefinierte Ansicht in der großen Titelansicht von UINavigationBar in iOS11 eingeführt

Wir können über UINavigationItem.titleView auf den traditionellen Navigationsleistenbereich zugreifen, aber es scheint, dass es keine API für den Zugriff auf den großen Titelansichtsbereich gibt.

https://developer.apple.com/documentation/uikit/uinavigationitem/ https://developer.apple.com/documentation/uikit/uinavigationbar/

bestätigte ich den Namen "_UINavigationBarLargeTitleView" mit View-Hierarchie Debugger ist. Kann ich eine benutzerdefinierte Ansicht hinzufügen?

+0

Sie auch Titelansicht der Navigationsleiste und ändern Höhe von Navigationsleiste zu – Govaadiyo

+0

Sie bedeutet, ich brauche, um eine Unterklasse von UINavigationBar verwenden kann? –

+0

Keine Unterklasse erforderlich, die titleView -Eigenschaft mit Ihrer benutzerdefinierten Unteransicht würde ausreichen – pesch

Antwort

1

Ich denke, es sollte mehr oder weniger so sein, basierend auf diesem Artikel.

https://qiita.com/KikurageChan/items/4152c2d8ac89c601a054
import UIKit 
@IBDesignable class CustomNavigationBar: UINavigationBar { 
override func layoutSubviews() { 
    super.layoutSubviews() 
    if #available(iOS 11.0, *) { 
     for subview in self.subviews { 
      let stringFromClass = NSStringFromClass(subview.classForCoder) 
      if stringFromClass.contains("UINavigationBarLargeTitleView") { 
       //subview.frame.size.height = 30 
       // Custom view 
       subview.addSub..... 

      } 
     } 
    } 
    } 
} 

CustomNavigationBar

Verwandte Themen