在 iOS 导航控制器的代码中自定义图像大小
Posted
技术标签:
【中文标题】在 iOS 导航控制器的代码中自定义图像大小【英文标题】:Customizing image size in code in iOS navigation controller 【发布时间】:2018-10-16 18:40:04 【问题描述】:这是我用来在导航栏标题中设置图像的代码,
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;
问题是图像看起来有点太大了。如何在代码中调整图像大小?我尝试了许多宽度和高度的组合,但似乎不起作用。
【问题讨论】:
【参考方案1】:根据documentation:
自定义标题视图以导航栏为中心,可以调整大小以适应。
这就是您的图像视图发生的情况。解决方案可以是将imageView
作为子视图添加到UIView
并将UIView
分配给titleView
属性。
更简单的解决方案可能是将imageView.contentMode
设置为.center
,但在这种情况下,您需要确保您的fullLogo
图像实际上是100x30,如果它大于ios 计算的titleView
帧您的图像将覆盖导航栏和视图控制器的视图。
您可以使用frame: .zero
初始化您的UIImageView
或容器UIView
,因为它的框架将在运行时重新计算。
【讨论】:
【参考方案2】:设置
imageView.clipsToBounds = true
对于调整图像大小,SO Post 会有所帮助。希望这可以帮助。
快乐编码。
【讨论】:
以上是关于在 iOS 导航控制器的代码中自定义图像大小的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 8 中自定义 PeoplePicker NavigationController 导航栏