UIButton图像静态大小

时间:2017-05-16 10:41:31

标签: ios swift uiimageview uibutton

我希望默认按钮的图像始终具有静态大小,而不是由sizeToFit()在UIButton的私有API中的某个位置计算的帧。

所以,我不想调整图像本身的大小,例如,如果我的图像是2500x1600,我希望图像始终是24x24,所以它不应该调整大小实际按钮。在这种情况下,button.imageEdgeInsets对我不起作用。此外,imageRect方法覆盖未提供正确的结果,因为此时contentRect已经错误。另外,我不希望使用任何类型的resizing image代码。我只想让原生imageView具有静态大小。

有没有办法用本地image属性来做到这一点。在我最终决定使用自定义imageView子视图

之前,我正在尝试寻找解决方案

更新 它应该没有按钮的静态宽度。因此按钮的宽度应取决于文本。但图像大小应该是静态的。

4 个答案:

答案 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的宽度/高度。