1

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

在此处输入图像描述 我的代码是:

-(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


}
4

1 回答 1

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 在框架范围内缩放或拉伸。拉伸 UIImage

您也可以尝试通过故事板/xibs 实现一个正常的后退按钮,setImage如果您不介意让 Objective-C 完成繁重的工作,只需调用即可。(请参阅:如何不为 UIButton 拉伸图像

于 2013-07-26T03:24:05.803 回答