我的导航栏上有一个自定义图标,即使我将尺寸设置为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
}
答案 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)