gpt4 book ai didi

ios - UINavigationBar 带有图案图像的后退按钮

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:48:13 25 4
gpt4 key购买 nike

我需要按照设计者的计划创建一个navBar 后退按钮。背面按钮的周边有图案图像和缝合皮革。

这里是:

enter image description here

我的问题是,是否可以在没有大量麻烦和头痛的情况下创建它?或者如果可能的话,因为后退按钮有不同的宽度?

谢谢!

更新

好吧,事实证明在 PartiallyFinite 的帮助下这很容易。如果您正确设置了 UIEdgeInsets,它将保持左侧固定,右侧固定,然后根据后退按钮的宽度复制图像的中间部分。

这是我用于后退按钮的图像:

enter image description here

这些是我的插图设置。您可以自己尝试:

backButtonImage = [backButtonImage resizableImageWithCapInsets:UIEdgeInsetsMake(5, 17, 5, 12)];

希望这对以后的人有帮助。

最佳答案

您需要为按钮提供一个可拉伸(stretch)图像,以便它知道如何正确显示:

UIImage *buttonImage = [[UIImage imageNamed:@"backButtonImage"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 15, 0, 6)]

您不需要对图像本身做任何特殊的事情,但您需要为可调整大小的图像指定适当的边缘插入,以指示图像边缘周围的区域不应该被拉伸(stretch),如上所示(该示例显示了从左边开始 15 个像素,从右边开始 6 个像素的插图)。该区域应覆盖箭头和弯曲的右边缘,以便可以根据需要拉伸(stretch)中间区域。 Read the documentation有关此方法的更多信息。

更新:默认情况下,图像的可调整大小区域将平铺到新大小,但是如果您想让它拉伸(stretch),您可以使用 resizableImageWithCapInsets:resizingMode: 并传递 UIImageResizingModeStretch 以实现该行为。对于您的情况,显然平铺更好,因为它保留了拼接,但对于某些背景图像,拉伸(stretch)是更好的解决方案。只是将它放在这里以帮助将来看到它的任何人。

获得可拉伸(stretch)图像后,您可以使用以下代码更改后退按钮的外观:

[myBackButtonItem setBackButtonBackgroundImage:buttonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

或者,您可以使用以下代码为应用中的所有 后退按钮设置此自定义外观:

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

在您的应用启动时运行它,它会影响您应用中的所有后退按钮。

请注意,与其他一些答案的建议相反,您不需要手动创建任何后退按钮。如果您创建一个 UINavigationController 并以推荐的方式使用它(请阅读 in the documentation ,当您推送 View Controller 时,导航栏和后退按钮将为您创建使用 pushViewController:animated:。如果您使用全局 UIAppearance 代码片段来应用自定义按钮样式,它将自动应用于您拥有的所有后退按钮。

您可以阅读有关 setBackButtonBackgroundImage:forState:barMetrics: 的更多信息 in the official documentation .

还有许多在线教程可以更深入地解释它的工作原理和操作方法,这里有一些不错的教程:

关于ios - UINavigationBar 带有图案图像的后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16895928/

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