2

我有一个自定义 png 设置为 UINavigationBar 的后退按钮,如下所示:

UIImage *navBackgroundPortait = [[UIImage imageNamed:@"nav_bg_portrait.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UINavigationBar appearance] setBackgroundImage:navBackgroundPortait forBarMetrics:UIBarMetricsDefault];

在 viewDidLoad 方法的视图控制器中,我使用这个技巧来显示没有标题/文本的后退按钮:

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStyleBordered target:nil action:nil];

但是我的后退按钮 png 的宽度被拉长了,我真的希望它根本不这样做。我只是想在所有视图上显示一个静态 png 图像作为我的后退按钮,上面没有文字,并且永远不会拉伸它。我可以这样做,我该怎么做?

最好的问候
索伦

4

2 回答 2

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];
于 2013-02-22T15:52:26.387 回答
0

因为您告诉图像使用resizableImageWithCapInsets 进行拉伸: 如果您想按原样显示图像,只需执行以下操作:

UIImage *navBackgroundPortait = [UIImage imageNamed:@"nav_bg_portrait.png"];
于 2013-02-22T15:51:22.330 回答