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
中的值已更改)
结果如下:
后退按钮图像有点扁平化,但没关系。
谢谢大家的建议! :-)
我想在整个应用程序中自定义 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
中的值已更改)
结果如下:
后退按钮图像有点扁平化,但没关系。
谢谢大家的建议! :-)