当前位置:  开发笔记 > 编程语言 > 正文

如何在所有UIViewControllers中的navigationBar中居图像?Swift/Obj-C

如何解决《如何在所有UIViewControllers中的navigationBar中居图像?Swift/Obj-C》经验,为你挑选了2个好方法。

视觉问题:

徽标位于空白区域的中心,而不是在navigationBar中

我试过把图像放在自己框架的中心,没有运气.我也试图将它与xCGRect一起玩,但没有运气.我认为我可以放一个与导航栏背景相同的空图标; 但是,我不想这样做.我右边可能有2-3个图标; 什么呢?

    let image = UIImage(named: "some_logo")!
    let imageSize = CGSizeMake(60, 42)
    let marginX: CGFloat = (self.navigationController!.navigationBar.frame.size.width / 2) - (imageSize.width / 2)
    let imageView = UIImageView(frame: CGRect(x: marginX, y: 0, width: imageSize.width, height: imageSize.height))
    imageView.image = image
    imageView.contentMode = .ScaleAspectFit

    self.navigationItem.titleView = imageView

我更喜欢快速但是obj-c解决方案也受到欢迎.

任何指针赞赏.

这个应用程序与KIA无关,它只是一些我从谷歌搜索中搜索的标识,搜索"一些标识".



1> 小智..:

我遇到了同样的问题.然后我尝试了下面显示的一个代码.

 override func viewDidAppear(animated: Bool) {

    let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 150, height: 40))
    imageView.contentMode = .ScaleAspectFit

    let image = UIImage(named: "googlePlus")
    imageView.image = image

    navigationItem.titleView = imageView
  }

当我使用左右按钮测试时,此代码工作正常.

但在我以前的代码中没有右键按钮.

所以图像正朝着正确的方向发展.

为了解决这个问题,我创建了一个右栏按钮并将色调颜色更改为清晰的颜色.

所以一切似乎都运转正常.这是您的问题的一个临时解决方案.



2> 小智..:

最简单的方法是在Interface Builder中.

只需从对象库拖动一个'NavigationItem'并将其放入ViewController,然后放置标题所在的UIView(确保将背景设置为'clear')然后将UIImageView放入该视图并在Attributes中设置图像检查员到您需要的图像.相应地缩放UIImage并相应地设置约束.

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有