ios - UIImageView 在 UIBarButtonItem 中的正确放置

标签 ios uiimageview uinavigationbar uibarbuttonitem

当尝试将 UIImageView(UIImage) 放入 UINavigationBar 上的 UIBarButtonItem 时,图像被放置在栏的中间并且还有覆盖整个酒吧的宽阔 field 。所以,看起来不像左侧的一个小按钮。

我尝试了各种调整框架大小、内容模式设置的技巧。

下面的代码来 self 的 View Controller ,它是导航 Controller 堆栈的一部分。将此图像添加到 Assets 中:
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)
  }

预期的结果是摩托车的图像位于左侧,而不是中间。此外,图像的左侧和右侧没有空字段(以蓝色突出显示以进行调试)。

预期(用画笔绘制):

enter image description here

现实:

enter image description here

最佳答案

最终解决为:

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

关于ios - UIImageView 在 UIBarButtonItem 中的正确放置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56139663/

相关文章:

iphone - 硬件音量按钮更改应用程序音量

ios - 从Parse.com中的用户类删除对象

ios - 在不使用编码的情况下在AFMultipartFormData中发送NSString

iphone - 在呈现 View 之前如何设置 UIImageView 的图像?

ios - 覆盖 UIImageView 的图像 getter/setter 方法

ios - Collection View 单元格不在 ImageView 中显示图像

ios - Swift 3 GCD 锁定变量和 block_and_release 错误

iphone - 如何动态调整导航栏中的标题大小

iphone - UITableView 上方的 UINavigationBar

ios - 为什么我的 leftBarButtonItem 在 iOS 11.4 上呈现得更小