使导航按钮更大

时间:2013-07-26 02:55:06

标签: ios uinavigationitem image-scaling

我的导航栏上有一个自定义图标,即使我将尺寸设置为600 x 400,它仍然在条形图上显示为小。

enter image description here 我的代码是:

-(void)goBackOne {
    [self.navigationController popToRootViewControllerAnimated:YES];
}
- (void)viewDidLoad
{
    UIButton *backbtn = [UIButton buttonWithType:UIButtonTypeCustom];
    backbtn.frame = CGRectMake(0, 0, 35, 25);
    [backbtn setBackgroundImage:[UIImage imageNamed:@"done_button.png"] forState:UIControlStateNormal];
    [backbtn addTarget:self action:@selector(goBackOne) forControlEvents:UIControlEventTouchUpInside];
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backbtn];//set new button
    self.navigationItem.hidesBackButton = YES;//hide original back button


}

1 个答案:

答案 0 :(得分:0)

如果你的相框是35x25(...frame = CGRectMake(0, 0, 35, 25)),那么你的相片是否为4096x2160无关紧要。

您有几个选择。

您可以将图片设置为合适的尺寸,并且:

UIImage buttonImage* = [UIImage imageNamed:@"done_button.png"]; // png size ~40x40 for retina
backbtn.frame = CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height);

或用明显的

手动设置框架
backbtn.frame = CGRectMake(0, 0, 40, 35); 

并以编程方式使您的UIImage在帧边界内缩放或拉伸。 Stretch a UIImage

你也可以尝试通过storyboard / xibs实现一个普通的后退按钮,如果你不介意让Objective-C做繁重的工作,只需调用setImage。 (见:How not to stretch an image for UIButton