iOS > 如何去除自定义后退按钮右侧的白色标记

iOS > how to remove white marks to the right of custom back button

我想在整个应用程序中自定义 iOS 后退按钮。所以我在我的文件中添加了这些行 AppDelegate.m :

UIImage *backButton = [UIImage imageNamed:@"btn_return"];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[backButton resizableImageWithCapInsets:UIEdgeInsetsMake(0, backButton.size.width, 0, 0)] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

结果如下:

如您所见,右侧有一个白色标记....有人知道为什么吗?我怎样才能删除它?

之前的视图控制器有一个白色的 space 作为后退按钮标题(在他的导航项中),因为我不需要任何标签。 也许是因为那个?!是否有其他解决方案无法看到默认的 "Back" 标签?

非常感谢您的帮助

[编辑] 当我尝试 Cy-4AH 的答案时,我得到:

这样使用

UIImage *image1 = [[UIImage imageNamed:@"btn_return"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
[self.menuBarBtn setImage:image1];

你需要使用

[[UINavigationBar appearance] setBackIndicatorImage: backButton];
[[UINavigationBar appearance] setBackIndicatorTransitionMaskImage: backButton];

如果您的部署目标 IOS 7+

否则请您的设计师在右侧添加一个像素的空列。

使用此代码:

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60)
                                                     forBarMetrics:UIBarMetricsDefault];
UIButton *backButton;
    backButton=[[UIButton alloc]initWithFrame:CGRectMake(0, 0,35 ,35)];
    backButton.imageEdgeInsets = UIEdgeInsetsMake(7, 7, 7, 7);
    [backButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [backButton addTarget:self action:@selector(btnBackAction:) forControlEvents:UIControlEventTouchUpInside];
    [backButton setImage:[UIImage imageNamed:@"your back button image name"] forState:UIControlStateNormal];
    UIBarButtonItem *Rightbarbutton=[[UIBarButtonItem alloc]initWithCustomView:backButton];
    self.navigationItem.leftBarButtonItem=Rightbarbutton;

使用此代码隐藏默认后退按钮

   self.navigationItem.hidesBackButton = YES;

感谢@DipenPanchasara,我更改了我的代码:

UIImage *backButtonImage = [[UIImage imageNamed:@"btn_return"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
GFloat leftInset = SYSTEM_VERSION_GREATER_THAN(@"9.0") ? -2.5 : backButtonImage.size.width -12;
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[backButtonImage resizableImageWithCapInsets:UIEdgeInsetsMake(0, leftInset, 0, 0)] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

UIEdgeInsetsMake 中的值已更改)

结果如下:

后退按钮图像有点扁平化,但没关系。

谢谢大家的建议! :-)