iPhone - 设置应用程序宽导航栏后退按钮没有文本

标签 iphone uinavigationcontroller uiappearance

我使用外观属性将图像设置为应用程序中所有导航栏后退按钮的背景图像。我在 applicationDidLoad 方法中使用以下代码来完成此操作。

UIImage *backButton = [UIImage imageNamed:@"btn-nav-back"];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButton forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

我的问题是,每当出现后退按钮时,由于前一个 View 的名称被设置为后退按钮的标题,图像就会被拉伸(stretch)。有没有一种系统范围的方法可以阻止标题的设置?尝试在实际 View Controller 中将后退按钮的标题设置为空白也没有效果:(

[self.navigationItem.backBarButtonItem setTitle:@""];

最佳答案

我找到了一种方法来实现你想要的。

首先调整后退图像的大小,这样它就不会拉伸(stretch)到后退按钮的长度:

UIImage* backImage = [[UIImage imageNamed:@"back"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 20, 0, 0)];

通过UIAppearance将此图像设置为backButtonBackgroundImage:

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

最后,将标题移出可见区域:

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(-1000, -1000) forBarMetrics:UIBarMetricsDefault];

唯一的缺点是,backButton 的宽度没有改变,因此您的 UINavigationBar 标题可能会偏离中心。

关于iPhone - 设置应用程序宽导航栏后退按钮没有文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11979659/

相关文章:

iphone - 如何在 iPhone 上编写实时准确的音频音序器?

iphone - 有没有更新的用于使用最新 ffmpeg 的 iPad/iPhone 视频流的 http 分段器?

iphone - 防止UIWebView将7个数字做成超链接

ios - UINavigationBar isTranslucent false 但保持透明度

iOS UINavigationController 未显示在 ChildView 上

ios - 带悬垂的 UINavigationBar 自定义背景(iOS 5)

ios - 在 iOS 上更改主题

iphone - 在服务器和 iOS 应用程序之间同步文件目录

iphone - 我应该在哪里将 iPhone View 中的 "save"更改为对象的 'create new'?

c# - MonoTouch instancesRespondToSelector 实现在哪里?