1

Ich habe Text, der aus zwei Saiten gebaut: A (B)UINavigationItem Titel Abschneiden

ich beide Saiten als Titel für die UINavigationItem verwenden möchten, aber im Falle der Verkürzung möchte ich A nur abgeschnitten werden und nicht B.

Beispiel: der Titel I "The quick brown fox (über den faulen Hund) springt" ist wollen. Die Bildschirmgröße zu klein ist, so der Titel abschneidet und es ist jetzt „Der schnelle braune Fuchs springt (über ...“

Was ich will, es sein. „Der schnelle br ... (über den faulen Hund)“

wie kann ich das tun?

+0

Es würde helfen, wenn Sie der Frage etwas mehr Kontext bieten können, was versuchen Sie zu tun. Zeig uns bitte einen Code. – Jeet

+0

Es wäre besser, wenn Sie mehr zu erklären ... –

+0

hinzugefügt und Beispiel – YogevSitton

Antwort

1

Erste Prüfnummer der Navigationsleiste Zeichen als Titel ermöglicht, ohne zu Kürzen. als nächstes, bevor Sie Titel überprüfen, ob die gesamte Saitenlänge kleiner als diejenigen Anzahl der Zeichen oder nicht, basierend auf der Bedingung, dass entweder eine kombinierte Zeichenfolge oder nur B

festgelegt wurde
+0

Wie kann ich die Anzahl der Zeichen überprüfen, die die Navigationsleiste zulässt? – YogevSitton

+0

Standardmäßig sind maximal 28 Zeichen zulässig. Es ist besser zu überprüfen, Länge des Titels Zeichenfolge sollte weniger als 18 Zeichen sein –

+0

Es erlaubt 28 Zeichen auf jeder Bildschirmgröße? – YogevSitton

1

Da xcode nicht erkennen kann, in welchem ​​Teil Ihres Titels Sie stoppen möchten und welchen Teil Sie erneut starten möchten, müssen Sie dies selbst tun.

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.navigationItem.title = "Heal the world make it a better place for you and for me and the entire human race" 
    setNavTitle(title: self.navigationItem.title!) 
} 

func setNavTitle(title: String) 
{ 
    //get the last 10 characters of your title, change the number to your need 
    let last10 = title.substring(from:title.index(title.endIndex, offsetBy: -14)) 

    //get the first 10 characters of your title, change the number to your need 
    let first10 = title.substring(to: title.index(title.startIndex, offsetBy: 14)) 

    //concatenate the strings 
    let title = first10 + " ... " + last10 
    self.navigationItem.title = title 
} 
+0

Das Problem mit diesem Code ist, dass es nicht immer 10 Zeichen ist. Es sind Änderungen basierend auf der Bildschirmgröße. – YogevSitton

+0

Holen Sie sich die Bildschirmgröße (CGFloat width = [UIScreen mainScreen] .bounds.size.width;), von dort passen Sie Ihre Titellänge an Ihre Bedürfnisse an – bubibu