ios Custom UIButton scale setImage down不工作
Posted
技术标签:
【中文标题】ios Custom UIButton scale setImage down不工作【英文标题】:ios Custom UIButton scale setImage down not working 【发布时间】:2016-10-09 10:03:31 【问题描述】:如果我以编程方式添加 UIButton,我在缩小 setImage 大小时遇到问题,而如果我通过情节提要添加 UIButton,则 UIButton 大小保持正确。 图片是 128x128,我想缩小到 30x30
顶部是使用故事板创建的,底部是使用编程创建的
这些都是我试过的方法,都不能缩小图片...
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 上更新图像
【问题讨论】:
我设法解决了它。 checkBox.heightAnchor.constraint(equalToConstant: 15.0) checkBox.widthAnchor.constraint(equalToConstant: 15.0) 是正确的方向,除了我必须将它设置为 isActive = true ......这是一个愚蠢的想法,将它也设置为额外的代码来激活.. . 【参考方案1】:这个呢:
checkBox.frame.size.width = 30
checkBox.frame.size.height = 30
【讨论】:
不,它没有用。我必须缩小项目中使用的图像文件吗?? 当我通过 setImage 更新时,你的 func 工作,但在添加过程中仍然像我的问题的屏幕截图一样保持巨大的图像大小,UIButton 只是图像缩小,但 UIButton 的大小仍然很大 对不起,我真的不明白你的目标是什么。您能否在您的问题中提供更多信息,例如您在情节提要中做了什么,或者“但在添加过程中仍然存在巨大的图像大小”是什么意思? 好的,让我重复一下我想要的,如果通过从情节提要添加 UIButton,按钮大小限制为 30 x30,就像顶部的屏幕截图一样。而如果我以编程方式添加 UIButton,则 UIButton 将与我不想要的图像大小 (128 x 128) 相同。所以我想检查一下我是否没有正确约束【参考方案2】:图片是 128x128,我想缩小到 30x30
在这种情况下,一个明显的解决方案是缩小图像。将图像重绘到 30x30 大小的 30x30 图形上下文中,然后提取生成的图像。现在你有一个 30x30 的图像。这是最好的方法;将超大图像交给运行时并要求它显示更小是浪费内存。
现在,如果您想使用约束来调整按钮的大小和位置,那很好,但您没有正确执行此操作。首先,您忘记将按钮的translatesAutoresizingMaskIntoConstraints
设置为false
。其次,您必须提供足够的约束,不仅要设置按钮的高度和宽度,还要设置其水平和垂直位置。
【讨论】:
以上是关于ios Custom UIButton scale setImage down不工作的主要内容,如果未能解决你的问题,请参考以下文章
UIButton无法在Custom UITableViewCell中工作