2017-09-14 112 views
0

我已經嘗試了很多事情,但不可能找到一種方法來將customNumber的lineNumber標記爲UITabBarItem.0(我想在兩行中獲得標題)。UITabBarItem標籤中的多行

有沒有辦法做到這一點?

+1

@ chirag90這是關於一個導航欄的標題,而不是一個標籤欄項目的冠軍。 – the4kman

+0

你想在UITabBarItem標籤它的意思是你也希望它的觸摸事件(我猜)?那麼你可以直接使用多行的UIButton。 –

+0

「標題標籤」未公開...您幾乎可以肯定需要使用自定義標籤欄。 – DonMag

回答

2

現在它包含兩個子視圖。在0處它是imageView,在1處它是標籤。 現在讓imageview的高度稍微小一些,這樣就可以讓標籤的高度稍大一些,以便有多條線。通過代碼將標籤的numberoflines的設置爲0。

 let viewTabBar = tabBarItem.value(forKey: "view") as? UIView 
    let imageView = viewTabBar?.subviews[0] as? UIImageView 
    let label = viewTabBar?.subviews[1] as? UILabel 

現在玩這個標籤。

+1

你應該得到一個獎章;)我很確定你的答案將幫助噸人! –

+0

嘿感謝的人.....它感覺很好回​​答這樣的問題 – Arnav

+1

請注意,如果你沒有圖像,UILabel的索引將爲0,我已經發布了更多的通用解決方案下面 – eXhausted

0

你不能這樣做UIBarButtonItem,因爲它沒有財產titleViewUINavigationItem

您只能將字符串設置爲標題和標籤圖像!而已!

如果您可以選擇將標籤設置爲tabbaritem的titleview,那麼您可以使用numberofline 0獲取標籤,但在此您只能設置字符串!

1

更穩定的解決方案:

guard let view = tabBarItem?.value(forKey: "view") as? UIView, 
     let label = (view.subviews.flatMap{ $0 as? UILabel }).first, 
     let imageView = (view.subviews.flatMap{ $0 as? UIImageView }).first else { return }