我想在导航栏中添加一个“书签”按钮作为 rightBarButtonItem
- (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
}
grayBookmark.png 和 blueBookmark.png 的大小均为 10x26。出现视图时按钮看起来变窄。但是当我单击此按钮时,按钮变宽,图像仍然会发生变化。在书签中调用 setImage 方法时宽度会发生变化:方法(恢复为默认大小)。我试图通过调用 [navigationItem.rightBarButtonItem setWidth:] 来明确设置宽度 - 也无济于事。根据文档,在此之前,宽度属性设置为 0,并且按钮应根据其图像大小调整大小。
我希望 rightBarButtonItem 具有 const 宽度。在第二次调用 setImage 之后它变得更宽有什么原因吗?