【问题标题】:Make image for back button fit the entire button使后退按钮的图像适合整个按钮
【发布时间】:2012-04-20 00:14:48
【问题描述】:
我正在开发一个使用UINavigationController 的应用程序。我想为后退按钮设置图像。我使用下面的代码执行此操作。
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"backArrow.png"] style:UIBarButtonItemStyleBordered target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;
但图像只出现在后退按钮的中间。如何将图像设置为跨越整个后退按钮?
【问题讨论】:
标签:
ios
objective-c
iphone
mobile
mobile-application
【解决方案1】:
对于UINavigationBar 中的后退按钮,如果您添加图像,它将仅在后退按钮的中心显示图像。您也不能在其中添加图像。因此,不要这样做,而是隐藏您的 backbutton 并将此代码添加到您的 viewDidload 方法中,为其添加图像,看起来就像您需要的那样。
self.navigationItem.hidesBackButton = YES;
UIButton *button = [UIButton buttonWithType: UIButtonTypeCustom];
[button setBackgroundImage:[UIImage imageNamed:@"back_normal"] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:@"back_pressed"] forState:UIControlStateSelected];
[button addTarget: nil action:@selector(popViewControllerAnimated:) forControlEvents:UIControlEventTouchUpInside];
button.frame = CGRectMake(0, 0, 50, 30);
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView: button];