使用图像快速设置按钮约束

Posted

技术标签:

【中文标题】使用图像快速设置按钮约束【英文标题】:Swift set button constraints with an image 【发布时间】:2017-06-09 15:45:55 【问题描述】:

我只有一个简单的按钮,我正在尝试向其中添加图像,但无论我对约束做什么,图像总是只是更改按钮的大小以匹配图像大小。我是否需要更改图像大小以匹配按钮的大小,或者我缺少什么?我曾尝试使用此约束修饰符来设置固定的宽度和高度,但它似乎没有做任何事情。 http://imgur.com/zUoxpbz

我知道这是基本的,但我似乎找不到任何可用的资源。

【问题讨论】:

是否在情节提要中设置?如果是这样,您可以发布您的属性 我不知道你的意思是什么 【参考方案1】:

创建 UIButton 的子类并覆盖 imageRect 方法并传递您需要的任何图像矩形。无论图片大小,按钮现在都将具有您想要的任何大小。

在下面的代码中,我从按钮的 (0,0) 开始设置图像。图像将采用按钮的高度和相对于按钮高度的宽度。

import UIKit

class MyTestButton: UIButton 

    override func imageRect(forContentRect contentRect: CGRect) -> CGRect 
        return CGRect(x: 0, y: 0, width: contentRect.height * 2.285, height: contentRect.height)
    

奖金:

您也可以通过覆盖设置按钮标题的矩形

override func titleRect(forContentRect contentRect: CGRect) -> CGRect 
        // return the rect you want
 

使用这些方法以您想要的方式设置标题图像和文本的框架:) 现在添加您想要添加到按钮的任何约束,按钮将遵循:)

【讨论】:

以上是关于使用图像快速设置按钮约束的主要内容,如果未能解决你的问题,请参考以下文章

如何使用情节提要在 Tableview Cell 中为 2 个标签和一个图像视图设置约束?

快速更改按钮图像在旧图像上附加新图像

使用自动布局和约束设置按钮

快速设置重置我的自定义按钮的状态

使用带有约束的持续时间动画快速移动按钮并在其中检测触摸

如何快速修复横向模式下的约束?