ios Custom UIButton scale setImage down not working

时间:2016-10-09 10:03:32

标签: ios swift uibutton

如果我通过编程方式添加UIButton,我在缩小setImage大小方面存在问题,而如果我按故事板添加UIButton,则UIButton大小保持正确。 图像是128x128,我想缩小到30x30

enter image description here 前一个是使用故事板创建的,Bottom是使用编程方式创建的

这些是我尝试的方法,无法缩小图像......

let checkBox = UIButton(type .system) 
checkBox.sizeThatFits(CGSize(width: 30, height: 30))
checkBox.contentMode = .scaleAspectFit
checkBox.contentVerticalAlignment = .fill
checkBox.contentHorizontalAlignment = .fill
checkBox.heightAnchor.constraint(equalToConstant: 15.0)
checkBox.widthAnchor.constraint(equalToConstant: 15.0)     

图像在运行时设置/更新     checkBox.setImage(UImage,for:。normal)

建议使用checkBox.frame.size.width,checkBox.frame.size.height 图像变得正确但UIButton现在有额外的空间。 如下图所示。我在touchUP UIButton上更新图像 enter image description here

2 个答案:

答案 0 :(得分:0)

这个怎么样:

checkBox.frame.size.width = 30
checkBox.frame.size.height = 30

答案 1 :(得分:0)

  

图像是128x128,我想缩小到30x30

在这种情况下,一个明显的解决方案是缩小图像。将图像重新绘制为30x30尺寸的30x30图形上下文并提取生成的图像。现在你有一个30x30的图像。那是最好的方式;以超大图像的方式处理运行时并要求它将其显示得更小是浪费内存。

现在,如果你想使用约束来调整按钮的大小和位置,那很好,但你没有正确地做到这一点。首先,您忘记将按钮的translatesAutoresizingMaskIntoConstraints设置为false。其次,您必须提供足够的约束,不仅要设置按钮的高度和宽度,还要设置其水平和垂直位置。