首页 > 解决方案 > 在 iOS 导航控制器的代码中自定义图像大小

问题描述

这是我用来在导航栏标题中设置图像的代码,

let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 100, height: 30))
imageView.contentMode = .scaleAspectFit

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

self.navigationItem.titleView = imageView;

问题是图像看起来有点太大了。如何在代码中调整图像大小?我尝试了许多宽度和高度的组合,但似乎不起作用。

标签: iosswiftuiimageviewuinavigationbar

解决方案


根据文件

自定义标题视图以导航栏为中心,可以调整大小以适应。

这就是您的图像视图发生的情况。解决方案可以是添加imageView为子视图UIView并分配UIViewtitleView属性。

更简单的解决方案可能是设置imageView.contentMode为,.center但在这种情况下,您需要确保您的fullLogo图像实际上是 100x30,如果它大于titleViewiOS 计算的帧,您的图像将覆盖导航栏和视图控制器的视图。

你可以用它来初始化你的UIImageView或容器UIViewframe: .zero因为它的框架将在运行时重新计算。


推荐阅读