swift-UIButton设置image上下左右位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift-UIButton设置image上下左右位置相关的知识,希望对你有一定的参考价值。

参考技术A ios15:比较简单了(苹果为啥到了iOS15才想起来按钮还需要这个功能呢)。Button新增UIButton.Configuration用来配置

iOS15之前,需要extension UIButton

使用:

Swift - UIButton 以编程方式设置约束

【中文标题】Swift - UIButton 以编程方式设置约束【英文标题】:Swift - UIButton setting constraints programmatically 【发布时间】:2019-11-22 18:51:37 【问题描述】:

我在为UIButton 设置heightwidth constraints 时遇到问题。我不知道为什么这段代码不起作用:

let wishButton: UIButton = 
    let v = UIButton()
    v.setImage(UIImage(named: "wishButton"), for: .normal)
    v.translatesAutoresizingMaskIntoConstraints = false
    v.addTarget(self, action: #selector(wishButtonTapped), for: .touchUpInside)
    return v
()

这些是我的限制:

wishButton.centerXAnchor.constraint(equalTo: popUpView.centerXAnchor).isActive = true
wishButton.centerYAnchor.constraint(equalTo: popUpView.centerYAnchor, constant: 150).isActive = true
wishButton.heightAnchor.constraint(equalToConstant: 100).isActive = true
wishButton.widthAnchor.constraint(equalToConstant: 100).isActive = true

现在是这样的:

这很奇怪,因为其他两个 constraints 工作正常。可能只是一个愚蠢的错误,但我很新,感谢每一个帮助:)

【问题讨论】:

您能分享一下您的按钮当前外观的屏幕截图吗?另外,设置 v.clipsToBounds=true @KeshuRai 刚刚编辑了我的问题 :) 按钮是黑色方块,整个是wishButton 图像,还是里面有按钮的视图?如果您可以显示如何添加约束/呈现按钮的代码,这也会有所帮助。 【参考方案1】:

约束没有问题。问题在于图像。您的图像不够大,无法填满框架。您可以设置按钮的.setBackgroundImage,使其自动伸缩。

v.setBackgroundImage(UIImage(named: "wishButton"), for: .normal)

或者您可以使 content Alignment 在两个方向上都等于 .fill

【讨论】:

你说得对,这就是问题所在 :) @Ashmet Bhui 也说了,谢谢你们!【参考方案2】:

我注意到的一件事是您似乎没有设置按钮的框架

在初始化按钮后尝试添加这一行:

v.frame = CGRect(x: 0, y: 0, width: 100, height: 100)

我不确定是否需要,但如果您的按钮根本没有显示,这可能会解决问题

【讨论】:

我看到您发布了一张图片...哪个对象是看起来不正确的按钮?想要的外观是什么? 底部的圆圈。我只是想改变它的大小【参考方案3】:

将此添加到您的 UIButton 初始化中,它将起作用

v.contentVerticalAlignment = .fill
v.contentHorizontalAlignment = .fill

它将缩放您的图像。

let wishButton: UIButton = 
    let v = UIButton()
    v.setImage(UIImage(named: "wishButton"), for: .normal)
    v.translatesAutoresizingMaskIntoConstraints = false
    v.contentVerticalAlignment = .fill
    v.contentHorizontalAlignment = .fill
    v.addTarget(self, action: #selector(wishButtonTapped), for: .touchUpInside)
    return v
()

【讨论】:

就是这样 :) 非常感谢!

以上是关于swift-UIButton设置image上下左右位置的主要内容,如果未能解决你的问题,请参考以下文章

小程序 image跟view标签上下会有空隙

Swift - UIButton 以编程方式设置约束

div + css,UL的LI 中,对LI设置了list-style-image,LI中的文字是放在a标签中的,如何让图片和文字对齐?

调整UIbutton Image大小 及title和位置

html5在手机上手指左右滑动切换页面,哪位大虾做过,给个列子 例如:http://imag.jimi.com/dx/

delphi 谁知道如何让image自动有滚动条(当图片尺寸大于image尺寸时