标题徽标在Swift 4/XCode 9/iOS 11上的大小错误
我刚刚将XCode更新为版本9,并且在没有重大更改的情况下运行我的项目时,标题徽标已增大其大小以填充标题。在升级之前,它的大小按照我的意愿覆盖了导航栏的大约50%。标题徽标在Swift 4/XCode 9/iOS 11上的大小错误
,我定位标识的代码如下:
//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
以下是如何使用的标志(和它应该)外观:
而且Xcode的更新后,这是它的外观:
为什么会发生这种情况的任何想法?
为了在iOS 11中做到相同,在titleView中添加一个子视图并根据需要调整其大小。
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)
你可以请编辑你的答案,使x和y为0,然后等于它的中心titleview?这样的尺寸可以是我选择的任何尺寸。 –
与该代码我得到UIImageView居中。将变量更改为您的案例。 – Raffista
我也是......但是当我缩小尺寸时就不再这样了。以一个额外的电话为中心是一种确保它正确显示的方式,无论人们选择的尺寸如何。此外,它应该是scaleToFit,使徽标是正确的比例,无论其纵横比。 –
这可能有助于https://stackoverflow.com/a/46275449/285190 – Flexicoder
你能设置'imageView.height'吗?它没有给出任何错误? –
没有错误..它编译并运行 –