我希望默认按钮的图像始终具有静态大小,而不是由sizeToFit()
在UIButton的私有API中的某个位置计算的帧。
所以,我不想调整图像本身的大小,例如,如果我的图像是2500x1600
,我希望图像始终是24x24
,所以它不应该调整大小实际按钮。在这种情况下,button.imageEdgeInsets
对我不起作用。此外,imageRect
方法覆盖未提供正确的结果,因为此时contentRect
已经错误。另外,我不希望使用任何类型的resizing image
代码。我只想让原生imageView
具有静态大小。
有没有办法用本地image
属性来做到这一点。在我最终决定使用自定义imageView子视图
更新 它应该没有按钮的静态宽度。因此按钮的宽度应取决于文本。但图像大小应该是静态的。
答案 0 :(得分:1)
尝试以下行按钮,
myButton.imageView.contentMode = .ScaleAspectFill
如果它不起作用,请给我一些关于你的项目的更具体的细节你如何给UIButton框架。
答案 1 :(得分:0)
给出按钮fix width and fix height
约束!它会根据按钮的框架管理图像大小!
只需将一个按钮拖放到storyboard或xib即可演示。设置fixed width, fixed height, top and leading
约束并将任何图像设置为它!
答案 2 :(得分:0)
你可以使用
button.imageView.clipsToBounds = YES;
和
button.imageView.contentMode = .ScaleAspectFill
将按钮的框架设置为所需的高度和宽度后,可以使用界面构建器中的约束或viewDidLoad()中的自己的方法来执行此操作
答案 3 :(得分:0)
我认为您可以使用
let inset: CGFloat = 10
closeButton.imageEdgeInsets = UIEdgeInsets(top: inset, left: inset, bottom: inset, right: inset)
您可以根据edgeInsets调整imageView
的宽度/高度。