gpt4 book ai didi

ios - Apple 在导航堆栈中使用的后退按钮图形在哪里?

转载 作者:行者123 更新时间:2023-11-28 05:57:53 25 4
gpt4 key购买 nike

我想将代码添加到 UINavigationController 中显示的后退按钮。但是,我希望后退按钮看起来与 Apple 展示的相同。

我已完成所有设置以在 leftBarButton 中使用我的图形,但无法使图形看起来完美。为此,有没有一种方法可以让我在自己的自定义按钮中使用内部 iOS 后退按钮?

最佳答案

不幸的是,导航栏的后退按钮不是很可定制。没有简单的方法来访问此图像。

如果您熟悉 Sketch 或 Photoshop,我建议您截取后退按钮的屏幕截图,然后在确切位置上追踪您的图像。

如果您不能这样做,从技术上讲,您可以通过一些小的 UI 操作来访问后退按钮图像。您必须首先在屏幕上有一个后退按钮。一旦您知道它在屏幕上,例如在您的 viewDidAppear 中,您将想要查看 leftBarButtonItem 的 subview 。一种方法是调用 navigationBar.subviews 并导航到 View 。另一种方法是公开项目目标 View 。

extension UIBarButtonItem {
var targetView: UIView? {
guard let view = value(forKey: "view") as? UIView else {
return nil
}
return view
}
}

现在您可以调用 leftBarButtonItem.targetView.subviews。你的 for 循环看起来像,

for subview in leftBarButtonItem.targetView.subviews {
if let imageView = subview as? UIImageView {
self.image = imageView?.image
}
}

所有这些都是伪代码,未经测试。通常 UIKit 在构建 View 时会使用标准类(例如 UIImageView)。然而,在较早的类(class)中,他们以手动绘制图像而闻名。因此,如果没有图像,您始终可以使用箭头拍摄 View 快照。

view.snapshotView(afterScreenUpdates: false)

一旦你有了你的图像/ View ,你将把它保存在一个属性中(很可能在你的自定义导航 Controller 中)然后你就可以在你推送新的 View Controller 时访问它。

关于ios - Apple 在导航堆栈中使用的后退按钮图形在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50913118/

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