我目前正在尝试将图像添加到一个视图的导航项中。在视图的viewDidLoad()
中,使用以下代码调用函数,类似于this post:
let logo = UIImage(named: "Menu_Logo")
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 122, height: 26))
imageView.contentMode = .scaleAspectFit
imageView.clipsToBounds = true
imageView.image = logo
self.navigationItem.titleView = imageView
而不是给我预期的大小,视图最终看起来像这样:
从UIImageView中删除UIImage使视图的大小正确如下:
这对我来说似乎很奇怪,特别是因为我确实将内容模式设置为.scaleAspectFit
。关于添加UIImageView
作为navigationItem.titleView
?
答案 0 :(得分:1)
在UINavigationBar
上,如果内容很大,标题视图将采用其完整大小。
通过尺寸(122,26)调整图像大小而不是
UIImageView
。这将解决您的问题。
func imageResize(sizeChange: CGSize) -> UIImage {
let hasAlpha = true
let scale: CGFloat = 0.0 // Use scale factor of main screen
UIGraphicsBeginImageContextWithOptions(sizeChange, !hasAlpha, scale)
self.draw(in: CGRect(origin: CGPoint.zero, size: sizeChange))
let scaledImage = UIGraphicsGetImageFromCurrentImageContext()
return scaledImage!
}