我的所有UIViewController都有一个徽标(由NavigationController控制)。
当我在UIViewController之间进行转换时,徽标也会滑动。
我想要的是:我希望标识(60像素高度)始终保持。并且滑动过渡显示在徽标下方。
我已经在视图委托中尝试了这个,但徽标也会滑动:(
let logo = UIImage(named: "logo.png")
let imageView =UIImageView(image:logo)
self.navigationItem.titleView = imageView
答案 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)
}
}