UIButton 内的 UIImageView 具有默认填充 - 如何删除?

Posted

技术标签:

【中文标题】UIButton 内的 UIImageView 具有默认填充 - 如何删除?【英文标题】:UIImageView inside UIButton has default padding - how to remove? 【发布时间】:2019-03-06 01:29:23 【问题描述】:

这一定很简单,但我有一个 System.UIButton 类型的 UIButton。我务实地在代码中设置了图像,但是当它被渲染时,它注意到图像没有填满整个按钮。下面屏幕截图中突出显示的框是 UIImageView。它周围的外框是 UIButton。

self.customNavigationBar.rightButton.setImage("icon".toImage, for: .normal)

有什么想法吗?

【问题讨论】:

【参考方案1】:

如果您的图片资源与按钮的大小相匹配,请确保按钮的 insets 设置为零:

let button = self.customNavigationBar.rightButton
button.setImage("icon".toImage, for: .normal)
button.imageEdgeInsets = .zero

如果不是这样,更通用的方法是更改​​内部UIImageView 内部UIButton 的约束:

let button = self.customNavigationBar.rightButton
button.setImage("icon".toImage, for: .normal)
button.imageView!.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
  button.imageView!.widthAnchor.constraint(equalTo: button.widthAnchor, multiplier: 1),
  button.imageView!.heightAnchor.constraint(equalTo: button.heightAnchor, multiplier: 1),
  button.imageView!.centerXAnchor.constraint(equalTo: button.centerXAnchor),
  button.imageView!.centerYAnchor.constraint(equalTo: button.centerYAnchor),
])

【讨论】:

以上是关于UIButton 内的 UIImageView 具有默认填充 - 如何删除?的主要内容,如果未能解决你的问题,请参考以下文章

在 UIImageView 的右上角添加 UIButton

使用 UIButton 移动 UIImageView

IOS中UIButton和UIImageView的区别

如果将 UIButton 作为子视图添加到 UIImageView,则单击 UIButton 不起作用

UIButton,UIImageView,UITextField

添加到 UIImageView 时无法单击 UIButton