如何使用图像和文本制作自定义 UIButton?

Posted

技术标签:

【中文标题】如何使用图像和文本制作自定义 UIButton?【英文标题】:How can I make Custom UIButton with image and text? 【发布时间】:2017-04-11 10:20:57 【问题描述】:

正如我在 android 上所做的那样,在布局下安排 ImageView 和 TextView 并在布局上设置 ClickListener,所以我如何在 swift (3.0) Xcode 8 上做同样的事情。 没有像 XML 这样的标记。拖放很难做到。

如何使此视图对所有设备屏幕都具有响应性。

我的用户界面图片如下:

提前致谢。

使用 CollectionView 后显示如下

【问题讨论】:

使用 UICollectionView 并创建您的自定义单元格,如果您想在 uibutton 中使用它,请使用 titleInset 和 image inset,所有屏幕都使用自动布局 您可以使用图像视图和标签来显示图像和文本。然后在没有任何文本/图像的情况下放置一个 UIButton。将这些 UI 元素放在 UICollection 单元格中。 我只有 3 个这样的项目,在这三个项目下放置了另一个项目水平滚动有什么建议吗? 使用 UICollectionView 进行水平滚动。 【参考方案1】:

您可以使用此代码为按钮设置图像和标题

let imageSize: CGSize = button.imageView!.image!.size
button.titleEdgeInsets = UIEdgeInsetsMake(26 , -imageSize.width, 0.0, 0.0);
let labelString = NSString(string: button.titleLabel!.text!)
let titleSize = labelString.sizeWithAttributes([NSFontAttributeName: button.titleLabel!.font])
button.imageEdgeInsets = UIEdgeInsetsMake(-15, 0.0, 0.0, -titleSize.width);

【讨论】:

在哪里或在哪个文件中,以及我在 swift 中使用的具体方法。 创建一个以按钮为参数的方法。为按钮设置图像和标题后,将该按钮传递给创建的方法。【参考方案2】:

可以在 UIButton 中设置 UIImage + UIText ,供参考 https://developer.apple.com/documentation/uikit/uibutton

【讨论】:

以上是关于如何使用图像和文本制作自定义 UIButton?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用图像和标签制作自定义正确的 UIBarButtonItem?

如何为数组中的每个创建一个具有唯一图像和选择器的自定义 UIButton?

使用普通/高亮图像创建自定义 UIButton

如何在 iOS 中创建一个非常自定义的 uibutton,如 UITableViewCellStyleSubtitle

iOS 如何让 UISlider 和 UIButton 像 Apple 的 Music 应用一样?

如何使用代码为 UIButton 创建自定义图像?