簡體   English   中英

如何在iPhone應用程序的導航欄中顯示圖像?

[英]how to display an image in the navigation bar of an iPhone application?

如何在iPhone應用程序的導航欄中顯示圖像? (比如,在標題之后)

以下是如何將圖像置於NavBar中心。

UIImage *image = [UIImage imageNamed: @"NavBarImage.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage: image];

self.navigationItem.titleView = imageView;

[imageView release];

此代碼實際上包含在NavBar的Apple源代碼中,可以在Apple的iPhone開發人員中心找到。 源顯示了各種操作StatusBar和NavBar的方法。

我沒有測試過這個,但是因為UINavigationBar是一個視圖,你可以添加子視圖。

UIImage* myImage = [UIImage imageNamed:@"Myimage.png"];
UIImageView* myImageView = [[UIImageView alloc] initWithImage:myImage];
myImageView.frame.origin.x = 30.0; // You will have to find suitable values for the origin
myImageView.frame.origin.y = 5.0;

[myTabbar addSubView:myImageView];
[myImageView release];

您可以使用backItem屬性之類的內容來計算圖像視圖的位置。

如果您想要導航欄右側的圖像,您可以將其定義為自定義按鈕,在預設時不執行任何操作,如下所示

UIButton* fakeButton = (UIButton *) [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourimage.png"]];
UIBarButtonItem *fakeButtonItem = [[UIBarButtonItem alloc] initWithCustomView:fakeButton];
self.navigationItem.rightBarButtonItem = fakeButtonItem;
[fakeButtonItem release];
[fakeButton release];

只需將代碼放入- (void)viewWillAppear:(BOOL)animated; 所以它會正常工作並添加一個名為Top Bar的尺寸為320x40的圖像

UIImage *image = [UIImage imageNamed: @"TopBar.png"];
[self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];

導航欄有一個名為標題視圖的屬性 - 將其設置為您喜歡的圖像。 由於titleView會覆蓋導航欄的標題,因此您必須在圖像文件中包含所需的標題。 仍然將標題設置為您想要的標題,以便在按下視圖控制器時它顯示在后退按鈕上

我遇到了同樣的問題。找出最佳解決方案

 [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"background_image.png"] forBarMetrics:UIBarMetricsDefault];

希望這會有所幫助....

只需編寫自己的導航欄。 因此,您必須禁用導航欄拳頭:

通過在故事板中選擇導航控制器來禁用界面構建器中的頂部欄:屬性檢查器 - >模擬度量標准 - >頂欄:選擇無

之后你可以添加你喜歡的任何HeaderView ......

UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, sFrame.size.width, 100)];
UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"header_image.png"]];
self.headerView.backgroundColor = background;

// ...add buttons and labels

[self.view addSubview:headerView];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM