2016-04-24 60 views
0

我在xcode項目中將自定義圖像添加到assets.xcassets爲3x。它顯示很好。 接下來,我通過選擇系統項目作爲自定義和選定的圖像作爲自定義圖像,將iage添加到選項卡欄項目。還通過選擇自定義圖像填充條形圖項目圖像。xcode 7.3自定義圖像在故事板中灰顯

在我的故事板中,圖像圖標在選項欄條目和條形圖條目中都完全變灰。

形象在瘸子創建爲透明圖像尺寸調整爲75x75

有人能告訴我如何解決這一問題? aimage in assets.xcassets setting custom image on tab bar

+0

截圖可能會有所幫助。 Xcode中有很多「變灰」的東西,包括大小類的東西。 –

回答

1

像@luiyezheng說,這是由圖像渲染模式造成的。 的渲染模式適用於您的TabBar的所有項目一個更好的辦法,是把這段代碼在你的TabBarController viewDidLoad方法:

for item in self.tabBar.items! { 
      item.image = item.image?.imageWithRenderingMode(.AlwaysOriginal) 
      item.selectedImage = item.selectedImage?.imageWithRenderingMode(.AlwaysOriginal) 
     } 
+0

我的標籤欄控制器是初始視圖控制器。沒有TabBarController.swift。所以將代碼添加到ViewController.swift的viewDidLoad方法中。不起作用。 (self.tabBarController?.tabBar.items!)!item.image = item.image?.imageWithRenderingMode(.AlwaysOriginal) } – vrao

+0

您需要創建一個繼承UITabBarViewController的新類並將該類指派給故事板中的tabbarcontroller – Gil

+0

謝謝,是的,圖像現在出現在標籤欄中。但是,當我選擇條形圖項目時,藍色覆蓋整個圖標,並且圖標內不顯示任何文本,因爲圖標內的文本也被藍色覆蓋。所以看起來像我的圖標裏面的內容像文本沒有正確創建。你能告訴我什麼設置我應該用來創建圖標。 – vrao

0

iOS7後,您可以設置一個UIImage是否渲染使用當前視圖的色調色彩搭配imageWithRenderingMode

AlwaysOriginal

總是吸引原始圖像,而無需將其視爲一個模板。

AlwaysTemplate

始終繪製圖像作爲模板圖像,而忽略它的顏色 信息。

自動

使用默認渲染模式適用於圖像是使用 上下文。

所以,你想要的是:

self.barItem.image = UIImage(named: "yourImage")?.imageWithRenderingMode(.AlwaysOriginal) 

通過一套renderingMode到AlwaysOriginal,該UIImage的總是會得出原始圖像,並且不會應用模板。然後你可以得到你想要的。

好運:-)