gpt4 book ai didi

ios - 自定义 BackBarButtonItem

转载 作者:可可西里 更新时间:2023-11-01 03:27:02 24 4
gpt4 key购买 nike

我正在尝试使用自定义图像自定义 backBarButtonItem(该图像中包含文本“back”),这是当前结果:

http://i.imgur.com/rFxFt.png

有谁知道为什么会这样?

这是我在 viewDidLoad 上的代码(实际上在父 Controller 上运行,然后在具有后退按钮的新 Controller 上再次运行)

UIImage *backButtonImage = [UIImage imageNamed:@"Graphics/Shared/navigation_back_button.png"];


UIBarButtonItem *backButton = [[UIBarButtonItem alloc]
initWithImage:backButtonImage
style:UIBarButtonItemStylePlain
target:nil
action:nil];


self.navigationItem.backBarButtonItem = backButton;

编辑:顺便说一下,我使用的是 iOS 5!也许外观代理是可用的,但到目前为止,当我尝试将它用于后退按钮(在 appDelegate 中)时,应用程序简单地崩溃了。

最佳答案

好吧,我解决了这个问题,使用了一些粗略的技巧,但至少它有效。如果有人确实提出了更标准的解决方案,请告诉我!

这是我的代码:

UIImage *backButtonImage = [[UIImage imageNamed:@"Graphics/Shared/navigation_back_button.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, backButtonImage.size.height*2) forBarMetrics:UIBarMetricsDefault];

这是在我的 appdelegate 的方法中:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

为了在将它用作背景时阻止它拉伸(stretch),我使用了来自 iOS 5: How to implement a custom (image) back button 的想法。

但随后对其进行了调整,而不必设置-

self.title = @" ";

在每次 View 加载时(这也可能与导航栏标题本身混淆)

我只是将“后退”按钮文本的偏移量设置为图像高度的两倍,因此您永远不会看到它。

为什么要这么麻烦,而不是使用左键项和它自己的方法来弹出 View Controller ?

主要原因是您失去了用于更改 View 的标准后退按钮滑动动画。此外,这意味着我不需要使用自定义按钮或编写自定义返回方法。它只是有效。

希望这也能解决其他人的问题,我知道我已经坚持了 3 个小时了!

关于ios - 自定义 BackBarButtonItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10906980/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com