2014-01-30 48 views
2

我在一個項目中需要創建自定義UINavigationBarUITabBar。 我的問題在於項目的顏色(淺色!)。 我不想爲我的物品添加任何色調。我試圖把它弄清楚,但這隻會讓它消失(它變得透明)。自定義iOS UINavigationBar/UITabBar並刪除色調

因此,重述一下,我有我自己的圖片爲我的酒吧項目,他們每個都包含自己的特定顏色。我已經讀過,爲了做我想做的事情,我必須繼承我的UIBar,但我沒有得到更多的信息。我應該在我的子類中修改哪些以消除色調約束?謝謝。

編輯: 色彩不適用於該項目,而是應用於欄(所有項目)。所以我的問題是,我想我的項目具體顏色

編輯2: 好吧,我想我明白了!該解決方案是使用UIBarButtonItem方法:initWithCustomView:

UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
backBtn.bounds = CGRectMake(0, 0, 26, 26); 
[backBtn setImage:[UIImage imageNamed:@"BackBtn.png"] forState:UIControlStateNormal]; 
[backBtn addTarget:self.navigationController action:@selector(popViewControllerAnimated:) forControlEvents:UIControlEventTouchUpInside]; 

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:backBtn]; 
self.navigationItem.leftBarButtonItem = item; 

但這只不過是因爲它需要UIBarButtonItem工作的UINavigationBar。另一方面,UITabBar只需要UITabBarItem,不符合initWithCustomView。所以我仍然在那裏泡菜...

+0

我不明白,是不是去除顏色一樣透明?你可以嘗試whiteColor? – Woodstock

+1

不透明意味着色彩將是透明的,因此形成圖像的內容(線條)將變得透明。換句話說,圖像將變得透明(即使圖像將在那裏也不會出現) – Plot

回答

3

好吧,我想我明白了!該解決方案是使用UIBarButtonItem方法:initWithCustomView:

UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
backBtn.bounds = CGRectMake(0, 0, 26, 26); 
[backBtn setImage:[UIImage imageNamed:@"BackBtn.png"] forState:UIControlStateNormal]; 
[backBtn addTarget:self.navigationController action:@selector(popViewControllerAnimated:) forControlEvents:UIControlEventTouchUpInside]; 

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:backBtn]; 
self.navigationItem.leftBarButtonItem = item; 

但這只不過是因爲它需要UIBarButtonItem工作的UINavigationBar。另一方面,UITabBar只需要UITabBarItem,不符合initWithCustomView。所以我仍然在泡菜有...

3

有人問前一段時間,但我發現它在谷歌,讓別人也可能會發現它:)

的答案是使用這個方法 UITabBarItem(title:, image:, selectedImage:)

隨着對原有總是渲染模式

image.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)

希望幫助圖像旋轉!