7
我想添加一個「書籤」按鈕,我的導航欄作爲rightBarButtonItemsetImage方法改變的UIBarButtonItem寬度,即使圖像的大小沒有改變
- (void)viewDidLoad
{
[super viewDidLoad];
// Add bookmark button
UIBarButtonItem *bookmarkBarButton = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStyleBordered target:self action:@selector(bookmark:)];
[bookmarkBarButton setImage:[UIImage imageNamed:@"greyBookmark.png"]];
[self.navigationItem setRightBarButtonItem:bookmarkBarButton];
bookmarkBarButton.tintColor = [UIColor colorWithRed:0.4 green:0.4 blue:0.4 alpha:0.9f];
b_bookmarked = false;
}
// Will call this method when the bookmark button is pressed
- (IBAction)bookmark:(id)sender
{
// Toggle color of bookmark icon on button
if ((b_bookmarked = !b_bookmarked))
{
[self.navigationItem.rightBarButtonItem setImage:[UIImage imageNamed:@"blueBookmark.png"]];
}
else
{
[self.navigationItem.rightBarButtonItem setImage:[UIImage imageNamed:@"greyBookmark.png"]];
}
// Save bookmark
}
greyBookmark.png和blueBookmark.png都有10x26尺寸。出現視圖時,按鈕外觀變窄。但是當我點擊這個按鈕時,按鈕會變寬,但圖像仍然會改變。 在bookmark:method中調用setImage方法時,寬度發生變化(恢復爲默認大小)。我試圖通過調用[navigationItem.rightBarButtonItem setWidth:]顯式設置寬度 - 也沒有幫助。在此之前,根據文檔,width屬性被設置爲0,並且按鈕應該根據其圖像大小調整大小。
我想rightBarButtonItem有一個const寬度。 第二次調用setImage之後爲什麼會變寬?
哦,我明白了。所以你可以創建一個UIButton並將它用作BarButton。按鈕的寬度不再改變,這很好。但要改變圖像,我必須將barbuttonItem的customView投射到UIButton並調用setImageNamed:forState: – AzaFromKaza 2013-03-01 05:55:08
對不起,不能投票,沒有足夠的代表。 投票我的問題,我會有足夠的聲望(15)投票你的答案。 – AzaFromKaza 2013-03-01 05:55:38