我一直有麻煩得到這個工作,無處可見我在網上看到一個工作示例。現在提供賞金,因爲它讓我瘋狂。這應該很容易,但似乎並非如此。改變一個UIBarButtonItem視圖以編程方式透明
我希望我的UINavigationBar上的按鈕是半透明的,以便它們允許UINavigationBar上的任何背景顯示。這種效果見於許多應用程序,下面的圖像示例。你可以通過在項目上設置一個自定義背景來做到這一點,我認爲這是一個不可接受的解決方案,因爲它需要事先準備圖像,而且它們不適用於可變按鈕等。它們看起來不像Apple UI和I不相信有這樣做的理由,UIKit已經爲這些按鈕繪製背景,我們只需要改變它。正確的解決方案使用Apple的apis生成的條形圖項和視圖。
UIBarButtonItem不是UIView子類。當您創建一個並將其添加到UINavigationBar時,框架中某處的某個代碼會爲其繪製一個視圖。框架方法似乎抵制任何與允許欄項目透明度相關的任何事情,例如tintColor屬性。
例如,這不工作:
UINavigationItem *item = [[UINavigationItem alloc] init];
UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithTitle:@"SUCKS" style:UIBarButtonItemStyleBordered target:self action:@selector(whatever:)];
editButton.tintColor = [UIColor colorWithWhite:0.4 alpha:0.3];
item.leftBarButtonItem = editButton;
沒有我這樣做會讓UINavigationBar的允許半透明度的物品欄。我相信,在運行時,我們需要:
- 獲取圖像的欄項目
- 掩蓋它的透明度
- 坐落在欄項目
新的形象,但我沒有能夠在運行時獲得圖像或者正確掩蓋圖像。你怎麼做到這一點?
我研究你的建議,我不知道太多關於核芯顯卡,但似乎庫水平低和基礎:即不強大的,除非你知道如何使用他們IE:需要閱讀,練習和學習的時間。在示例圖像中,看起來效果可以通過圓形視圖實現,半透明,但也需要在形狀周圍追蹤邊框。 – 2012-01-10 04:37:46
除非您有工作代碼示例,否則我認爲您對使用填充了半透明矩形的自定義視圖的建議不起作用。一旦將具有自定義視圖的UIBarButtonItem添加到導航欄中,Alpha就會被忽略。 – 2012-01-15 15:24:23
@您可以創建具有圓角和透明度的可拉伸圖像,這適用於所有按鈕尺寸。我認爲這可能是這裏需要的。 – jrturton 2012-01-16 19:26:56