我在導航欄上有一個UIBarButtonItem。我想讓它箭頭形。我的意思是我希望它是正方形,除了一個尖尖的一面。有誰知道如何做到這一點?iPhone:製作箭頭形狀的UIBarButtonItem
謝謝!
我在導航欄上有一個UIBarButtonItem。我想讓它箭頭形。我的意思是我希望它是正方形,除了一個尖尖的一面。有誰知道如何做到這一點?iPhone:製作箭頭形狀的UIBarButtonItem
謝謝!
我在這一個方面與幾種方法摔跤,並最終使用來自多個來源的所有答案找出它。有幾個技巧;這個片段將顯示所有(我創建一個自定義rightNavButton
,但你可以爲任何UIBarButtonItem
容易適應這一點):
// Produces a nice "right arrow" style button that mirrors the back arrow
// automatically added by the navController
//
UIImage *buttonImage = [UIImage imageNamed:@"forwardButton.png"];
UIButton *forwardButton = [UIButton buttonWithType:UIButtonTypeCustom];
[forwardButton setBackgroundImage:buttonImage forState:UIControlStateNormal];
[forwardButton setTitle:@"Meter" forState:UIControlStateNormal];
forwardButton.font = [UIFont boldSystemFontOfSize:12];
forwardButton.frame = CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height);
[forwardButton addTarget:self action:@selector(showMeter)
forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]
initWithCustomView:forwardButton];
注:事實證明,如果你想直接設定目標和行動上按鈕項目後,使用UIButton
分配自定義視圖,它不會採取 - 你必須設置按鈕本身的目標和行動 - 顯然navBar
使用逐字提供的按鈕。
這是我使用的不透明的黑色
navBar
(你可以使用任何東西,很明顯)圖像:
http://raretiger.com/images/forwardbutton.png
您可以創建一個UIImageView的或用的UIButton所需要的圖像,然後使用:
[[UIBarButtonItem alloc] initWithCustomView: arrowButton];
希望這有助於。
製作自定義背景。有關如何參見Creating a left-arrow button (like UINavigationBar's "back" style) on a UIToolbar。
您可能-pushNavigationItem:animated:
使內置的後退按鈕出現,但你不能指定自定義操作它。
對於無證的方法,你可以使用
UIButton* backButton = [UIButton buttonWithType:101];
創建後退 「按鈕」。
在繼續@Plamen Dragozov的想法:我注意到,如果你離開的UIButton的是,它觸摸時會觸發圖片調整,這與正常的導航後退按鈕完全相反。所以我所做的就是取消選中「突出顯示調整圖像」,它就像一個魅力。
希望這能幫助像我這樣的新手。
更優雅的解決方案:
UIBarButtonItem * backButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Title" style:UIBarButtonItemStylePlain target:self action:@selector(back:)];
[backButtonItem setBackgroundImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
self.navigationItem.leftBarButtonItem = backButtonItem;
我的問題是重命名該推視圖控制器上出現後退按鈕。我發現一個骯髒的解決方法,如果你忽略了非理想的動畫問題,你會得到一個帶你想要的標題的後退按鈕。在viewWillAppear
(不用說,在默認情況下,如果沒有leftBarButtonItem
集,UINavigationController
將呈現回
關鍵是要改變第一個VC稱號viewWillDisappear
並重新設置課程與推動當前VC)
在你把你的當前VC對VC的VC的標題按鈕,做
-(void) viewWillDisappear:(BOOL) animated {
[super viewWillDisappear:animated];
self.title = @"Back";
}
-(void) viewWillAppear:(BOOL) animated {
[super viewWillAppear:animated];
self.title = @"Original Title";
}
您可以在這裏下載與Retina兼容的透明圖像:[link] http://handleopenurl.com/assets/docs/arrow-buttons.zip [/ link] 後退箭頭左側有15鍵,5 (正常大小的按鈕) – 2011-09-30 12:41:31
你有一個內存泄漏,你分配'UIBarButtonItem''保留+1',然後將它分配給屬性'rightBarButtonItem''保留+1'。這意味着UIBarButtonItem現在的保留計數爲2,並且永遠不會被釋放。你需要自動釋放UIBarButtonItem: 'self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:forwardButton] autorelease];' – Camsoft 2012-01-16 10:29:41
圖片鏈接消失了 – Esqarrouth 2014-03-03 11:23:44