Swift 4 / XCode 9 / iOS 11上的标题标识大小错误

时间:2017-09-25 15:06:46

标签: swift xcode ios11 swift4 xcode9

我刚刚将XCode更新为版本9,并且在没有重大更改的情况下运行我的项目时,标题徽标已增加其大小以填充标题。在升级之前,它的大小覆盖了我想要的导航栏的50%左右。

我定位徽标的代码如下:

//Logo on NavBar
        let logo = UIImage(named: "logo.png")
        let imageView = UIImageView(image:logo)
        imageView.height = (self.navigationController?.navigationBar.height)! - 25
        imageView.contentMode = .scaleAspectFit
        self.navigationItem.titleView = imageView

以下是徽标的使用方式(以及它应该如此):

enter image description here

在XCode更新之后,它的外观如下:

enter image description here

为什么会发生这种情况的任何想法?

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题 - 只是出现在iOS 11中。 所以我已经以编程方式为imageview设置了高度和宽度约束。

imageView.widthAnchor.constraint(equalToConstant: YOUR_WIDTH).isActive = true
imageView.heightAnchor.constraint(equalToConstant: YOUR_HEIGHT).isActive = true

答案 1 :(得分:1)

要在iOS 11中进行相同操作,请在titleView中添加一个subView并根据需要调整其大小。

let imagen = UIImageView(frame: CGRect(x: -view.view.frame.width/3, y: -(view.navigationController?.navigationBar.frame.height)! / 2, width: view.view.frame.width/1.5 , height: (view.navigationController?.navigationBar.frame.height)!))
imagen.image = #imageLiteral(resourceName: "logo")
view.navigationItem.titleView = UIView()
view.navigationItem.titleView?.addSubview(imagen)