【问题标题】:Correct placement of UIImageView in UIBarButtonItem在 UIBarButtonItem 中正确放置 UIImageView
【发布时间】: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


【解决方案1】:

最终解析为:

imageView.widthAnchor.constraint(equalToConstant: (navigationController?.navigationBar.frame.height)!).isActive = true

【讨论】:

    猜你喜欢
    • 2020-09-30
    • 2019-01-11
    • 1970-01-01
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多