UIButton ImageView contentmode不起作用

时间:2019-05-24 09:36:36

标签: ios swift uibutton contentmode

我刚刚在Swift中启动了一个iOS应用程序,我正在以编程方式进行设计(我的意思是我没有使用情节提要)

我有一个带有图像的UIButton,我希望图像填充整个按钮。现在,它只是在我的按钮中显示图像,但是比按钮小,位于按钮框架顶部的中心。

我的代码是:

    let buttonLocation = UIButton(frame: CGRect(x: 0, y: 0, width: buttonRoundedSize, height: buttonRoundedSize))
    buttonLocation.setImage(UIImage(named: "locate_button"), for: .normal)
    buttonLocation.backgroundColor = .white
    buttonLocation.layer.cornerRadius = frame.width / 2
    buttonLocation.myExtension()

这是我尝试过的东西(这些都不起作用):

    self.imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
    self.autoresizingMask = .flexibleWidth
    self.autoresizingMask = .flexibleHeight
    self.imageView?.contentMode = .scaleAspectFill

如果我只是将contentMode行放在那也不行。 imageView不会返回零,我已经检查过了。

谢谢!

4 个答案:

答案 0 :(得分:0)

contentMode buttonLocation's的{​​{1}}设置为imageViewscaleAspectFill,以覆盖scaleToFill的整个frame。 / p>

button

示例:

enter image description here

答案 1 :(得分:0)

您需要使用setBackgroundImage属性而不是setImage。

buttonLocation.setBackgroundImage(UIImage(named: "locate_button"), for: .normal)

答案 2 :(得分:0)

也许这可以帮助您:

for ( $i = $startDate; $i <= $endDate; $i = $i + 86400 ) {
  $thisDate = date( 'Y-m-d', $i );
  $dayofweek = date('l', strtotime($thisDate));

}

您需要添加let buttonLocation = UIButton(type: .custom) buttonLocation.frame = CGRect(x: 0, y: 0, width: buttonRoundedSize, height: buttonRoundedSize) buttonLocation.setImage(UIImage(named: "locate_button"), for: .normal) buttonLocation.imageView?.contentMode = .scaleAspectFill buttonLocation.contentHorizontalAlignment = .fill buttonLocation.contentVerticalAlignment = .fill buttonLocation.backgroundColor = .white buttonLocation.layer.cornerRadius = frame.width / 2 buttonLocation.clipsToBounds = true contentHorizontalAlignment属性,并且不要忘记将contentVerticalAlignment设置为true才能看到拐角Raius效果。

答案 3 :(得分:0)

尝试使用以下代码,并删除为此按钮设置的其他属性:

let buttonLocation = UIButton(frame: CGRect(x: 50, y: 50, width: 100, height: 100))
        buttonLocation.setImage(UIImage(named: "cat"), for: .normal)
        buttonLocation.backgroundColor = .white
        buttonLocation.layer.cornerRadius = 50
        buttonLocation.imageView?.contentMode = .scaleAspectFill
        buttonLocation.clipsToBounds = true

        self.view.addSubview(buttonLocation)

在此请确保您在按钮中设置的图像大于按钮的边框。您可以在上面的代码中更改框架和拐角半径值。我只是尝试使用上面的代码并获得下面的输出。

enter image description here

如果这不是您的预期输出,则可以发表评论。

希望这会有所帮助。