2014-02-05 17 views
0

我在下面的代碼中創建了兩個UIBarButtonItem。稍後,我將它們添加到rightBarButtonItems,但只有其中一個按鈕出現(我首先放在列表中的那個按鈕)。 我認爲也許標題的視圖(沒有設置)將位於右邊的BarButtonItems前面,因爲Apple文檔顯示「如果沒有足夠的空間來顯示數組中的所有項目,那些項目會重疊標題視圖(如果存在)或者欄左側的按鈕不顯示「 但是,由於視圖的框架= {0,0} {0,0}rightbarbuttonitems中的額外按鈕沒有顯示

我無法弄清楚我做錯了什麼。任何人都可以告訴我如何讓所有正確的BarButtonItems顯示?代碼:

UIBarButtonItem *shareButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(shareAction:)]; 

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[button setFrame:CGRectMake(0, 0, 30, 30)]; 
[button setBackgroundImage:[UIImage imageNamed:@"custom-bar-button.png"] forState:UIControlStateNormal]; 
[button addTarget:self action:@selector(barButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; 

UIBarButtonItem *wishlistButton = [[UIBarButtonItem alloc] initWithCustomView:button]; 

[self.navigationItem setRightBarButtonItems:[[NSArray alloc] initWithObjects:shareButton, wishlistButton, nil]]; 

回答

0

使用UIBarButtonItem

UIBarButtonItem *button = [UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"custom-bar-button.png"] style:UIBarButtonItemStylePlain target:self action:@selector(barButtonTapped:)]; 

代替:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[button setFrame:CGRectMake(0, 0, 30, 30)]; 
[button setBackgroundImage:[UIImage imageNamed:@"custom-bar-button.png"] forState:UIControlStateNormal]; 
[button addTarget:self action:@selector(barButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; 
+0

我確實嘗試這一點,但沒有奏效。除此之外,它與'initWithCustomView:button'基本相同,我還必須調整png的大小,這更容易使用帶有UIBarButtonItem的按鈕來完成 – BoBro