【发布时间】:2019-05-14 22:55:52
【问题描述】:
当尝试将 UIImageView(UIImage) 放入 UINavigationBar 上的 UIBarButtonItem 时,图像会放置在条形图的中间,并且具有覆盖整个条形图的宽域。所以,看起来不像是左边的小按钮。
我尝试了各种调整框架大小、设置 contentMode 的技巧。
以下代码来自我的视图控制器,它是导航控制器堆栈的一部分。将此图像添加到资产中:
http://pluspng.com/img-png/png-hd-bike-ktm-bike-png-500.png
为了测试,将其命名为bike.png,并在下面的UIImage中使用。
override func viewDidLoad() {
super.viewDidLoad()
let image = UIImage(named: "bike")
let imageView = UIImageView(image: image)
imageView.backgroundColor = .blue //for debugging
imageView.contentMode = .scaleAspectFit
navigationItem.leftBarButtonItem = UIBarButtonItem(customView: imageView)
}
预期的结果是摩托车的图像在左侧,而不是在中间。此外,图像的左侧和右侧(以蓝色突出显示以进行调试)没有空白字段。
预期(在画笔中绘制):
现实:
【问题讨论】:
-
我认为需要添加宽度约束来限制图像视图的宽度。
-
谢谢。最终解析为:
imageView.widthAnchor.constraint(equalToConstant: (navigationController?.navigationBar.frame.height)!).isActive = true
标签: ios uiimageview uinavigationbar uibarbuttonitem