1

私は2つの文字列から構築されているテキストがあります。 A(B)私は唯一の切り捨てしたいUINavigationItem用タイトルとしてではなく切り捨ての場合は両方の文字列を使用したいUINavigationItemタイトル切り捨て

をし、いいえB.

例:私が欲しいタイトルは「茶色のキツネが怠惰な犬に飛ぶ」です。 画面サイズがそうタイトルが切り捨てられ、それが今ある小さすぎる「速い茶色のキツネジャンプ(オーバー...」

である私はそれになりたい:。 「クイックBR ...私はそれを行うことができますどのように

「(怠惰な犬以上)?

+0

あなたが何をしようとしているのか、より多くの文脈を質問に提供できれば助けになります。私たちにいくつかのコードを教えてください。 – Jeet

+0

詳細を説明すると良いでしょう... –

+0

追加された例 – YogevSitton

答えて

1
タイトルは合計、文字列の長さがそれよりも小さいかどうかを確認し設定する前に。次に、切り捨てずにタイトルとして可能な文字のナビゲーションバーの

最初のチェック番号文字数かどうかを判断します。条件に基づいて組み合わせ文字列またはBのみを設定します。

+0

ナビゲーションバーが許可する文字数を確認するにはどうすればよいですか? – YogevSitton

+0

デフォルトでは、最大28文字まで使用できます。タイトル文字列の長さが18文字未満であることを確認する方が良い –

+0

すべての画面サイズで28文字まで使用できますか? – YogevSitton

1

xcodeはタイトルのどの部分を停止したいのか、またどの部分を再開したいのかを検出することができないため、自分で行う必要があります。

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

このコードの問題は、必ずしも10文字であるとは限りません。画面サイズに基づいて変更されます。 – YogevSitton

+0

画面のサイズを取得する(CGFloat width = [UIScreen mainScreen] .bounds.size.width;)、そこからあなたのタイトルの長さを調整します – bubibu

関連する問題