NavigationController,保持徽标在顶部没有转换

时间:2016-10-26 20:33:11

标签: ios swift uinavigationcontroller

我的所有UIViewController都有一个徽标(由NavigationController控制)。

当我在UIViewController之间进行转换时,徽标也会滑动。

我想要的是:我希望标识(60像素高度)始终保持。并且滑动过渡显示在徽标下方。

我已经在视图委托中尝试了这个,但徽标也会滑动:(

     let logo = UIImage(named: "logo.png") 
     let imageView =UIImageView(image:logo)
     self.navigationItem.titleView = imageView

2 个答案:

答案 0 :(得分:0)

问题:您在转移到下一个VC时会刷徽标。

所需结果:您希望在没有滑动动画的情况下在每个VC上显示徽标。但仍然可以在徽标下方的所有内容中运行滑动动画。

我要做的是制作一个UIScrollView并将徽标保存为UIImageView。

如果你有这个应用程序的github repo我可以看看你。

答案 1 :(得分:0)

UINavigationController的子类,在viewDidLoad中,配置徽标图片视图,并将其作为子视图添加到navigationBar。此外,由于我们将其添加到高度仅为44px的导航栏,因此高度为60px的徽标将溢出边界。

class NavigationController: UINavigationController {

    override func viewDidLoad() {

        super.viewDidLoad()

        let logo = UIImage(named: "logo.png")!
        let imageView = UIImageView(image: logo)
        let width = logo.size.width * 60 / logo.size.height

        imageView.contentMode = .scaleAspectFit
        imageView.frame.size = CGSize(width: width, height: 60)
        imageView.center = navigationBar.convert(navigationBar.center, to: navigationBar)

        navigationBar.addSubview(imageView)
    }
}