我有一个自定义的png我设置为UINavigationBar的后退按钮,如下所示:
UIImage *navBackgroundPortait = [[UIImage imageNamed:@"nav_bg_portrait.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UINavigationBar appearance] setBackgroundImage:navBackgroundPortait forBarMetrics:UIBarMetricsDefault];
在viewDidLoad方法的视图控制器中,我使用此hack显示没有标题/文本的后退按钮:
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStyleBordered target:nil action:nil];
但是我的后退按钮png在宽度上拉伸,我真的希望它根本不这样做。我只是想在所有视图上显示一个静态png图像作为我的后退按钮,上面没有任何文字,并且永远不会拉伸它。我可以这样做,我该怎么做?
最好的问候 索伦
答案 0 :(得分:6)
使用此:
UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 30)];
[backButton setImage:[UIImage imageNamed:@"nav_bg_portrait.png"] forState:UIControlStateNormal];
[backButton addTarget:self action:@selector(popNavigationControllerFunction) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
答案 1 :(得分:0)
因为您通过 resizableImageWithCapInsets:告诉图像延伸 如果要按原样显示图像,只需执行以下操作:
UIImage *navBackgroundPortait = [UIImage imageNamed:@"nav_bg_portrait.png"];