ios - 更改 UINavigationBar 后退按钮的后退箭头位置

标签 ios swift uinavigationbar

是否可以在自定义 UINavigationBar 子类中调整后退按钮箭头的位置。这是必需的,因为在具有自定义调整高度的导航栏中位置错误。

最佳答案

我最终使用 imageWithAlignmentRectInsets 如下修复它:

 self.backIndicatorImage = UIImage(named: "back_detail")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal).imageWithAlignmentRectInsets(UIEdgeInsetsMake(0, 0, -3, 0))
 self.backIndicatorTransitionMaskImage = UIImage(named: "back_detail")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal).imageWithAlignmentRectInsets(UIEdgeInsetsMake(0, 0, -3, 0))

编辑

添加了更多解释以阐明实现:

class VDLNavigationBar: UINavigationBar {

    override func awakeFromNib() {
        // Back button
        self.backIndicatorImage = UIImage(named: "back_detail")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal).imageWithAlignmentRectInsets(UIEdgeInsetsMake(0, 0, -3, 0))
        self.backIndicatorTransitionMaskImage = UIImage(named: "back_detail")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal).imageWithAlignmentRectInsets(UIEdgeInsetsMake(0, 0, -3, 0))    
    }
}

在您的 UINavigationController 中使用这个自定义子类

关于ios - 更改 UINavigationBar 后退按钮的后退箭头位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27355076/

相关文章:

IOS- Swift-Firebase Auth token 在删除应用程序后仍然存在

swift - HealthKit 通过 "Date Added to Health"搜索样本

swift - Xcode - 2 个 View Controller 和 2 个 Swift 文件,并从 View Controller 2 的 View Controller 1 读取 TextField

swift - 在 NSView 上创建简单的动画循环

ios - 如何在 iOS 中模仿 UISearchBar 的 Safari 行为

ios - swift 中标签的页面控制

ios - 在 iOS 中使用 SFPro 字体

ios - 更改图标会导致 SwiftUI 动画出现故障?

ios - 导航栏不断重新出现

objective-c - 在 iOS 7 中自定义导航栏 - 标题颜色不起作用