我目前正在尝试将图像添加到一个视图的导航项中。在视图的viewDidLoad()
,使用以下代码调用函数,类似于这个帖子 https://stackoverflow.com/questions/24803178/swift-navigation-bar-image-title:
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
as the navigationItem.titleView
?
On UINavigationBar
,如果内容很大,标题视图将采用完整大小。
调整图像大小而不是UIImageView
如下,传递尺寸 (122, 26)。这将解决您的问题。
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!
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)