2009-11-17 80 views
2

將圖像添加到UINavigationItem的titleView非常簡單,但是當我在堆棧上推新視圖時,會將UINavigationItem和titleView一起向左滑動,並加載一個新的UINavigationItem。UINavigationBar與靜態圖像

我可以想出很多方法可以讓圖片保持原樣,但它們都顯得很黑。有沒有一種正常的做法,我找不到?以下是添加圖像到我的視圖控制器的UINavigationItem代碼:

UIImage *tImage = [[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"logo_topbar" ofType:@"png"]]; 
UIImageView *tImageView = [[UIImageView alloc] initWithImage:tImage]; 
self.navigationItem.titleView = tImageView; 
[tImage release]; 
[tImageView release]; 

謝謝你們/加侖

回答

2

我想你可以嵌入整個視圖成超圖,用靜態圖像在您現有的用戶界面下。然後,您可以將UINavigationItems中的標題變爲透明,這樣按鈕將在圖像上滑動,但圖像將保持放置狀態。

+0

這個解決方案聽起來很有趣,但我不相信這是最好的方法。你是否在談論如何讓整個導航欄透明,除了按鈕?然後在它下面基本放置一個酒吧+徽標的屏幕截圖?因爲如果您只是將底層圖像上的UINavigationItem設置爲透明,則它在轉換期間也會移動,從而對底層徽標造成更奇怪的窗口效果。 – DougW 2009-11-17 22:22:13

+0

我認爲這有點含糊,但我會繼續接受它,因爲我認爲這種方法的變體是沒有完全自定義導航欄的唯一方法。爲了避免奇怪的窗口,您可能必須至少子類化整個欄並自行管理子元素的佈局。 – DougW 2009-12-18 20:16:11

2

您可以在同一titleview的添加到您希望它出現在所有UIViewControllers,但是我猜想這樣可以讓ImageView左側動畫,並從右側進入新的相同動畫。

我看到的唯一方法是添加像這樣的UIImageView:

[self.navigationController.view addSubview:tImageView]; 

或試試這個

[self.navigationController.navigationBar addSubview:tImageView];