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 具有默认填充 - 如何删除?的主要内容,如果未能解决你的问题,请参考以下文章
如果将 UIButton 作为子视图添加到 UIImageView,则单击 UIButton 不起作用