【问题标题】:Make navigation button bigger让导航按钮变大
【发布时间】:2013-07-26 11:24:05
【问题描述】:

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


}

【问题讨论】:

  • 请检查 [UIImage imageNamed:@"done_button.png"] 大小

标签: ios uinavigationitem image-scaling


【解决方案1】:

如果您的框架是 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.

如果您不介意让 Objective-C 完成繁重的工作,您也可以尝试通过 storyboard/xibs 实现一个正常的后退按钮,并简单地调用 setImage。 (见:How not to stretch an image for UIButton

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多