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

时间:2014-12-08 09:35:53

标签: ios swift uinavigationbar

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

2 个答案:

答案 0 :(得分:12)

我最后使用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中使用此自定义子类

答案 1 :(得分:-2)

你也可以尝试将UINavigationBar的隐藏属性设置为" True" 并制作UIView而不是使用UINavigationbar。

当您想要自定义UITabBarController的TabBar时,这也很好。