使用 UIView 作为 UIButton 的背景?

Posted

技术标签:

【中文标题】使用 UIView 作为 UIButton 的背景?【英文标题】:Use a UIView as the background of a UIButton? 【发布时间】:2014-03-14 15:13:23 【问题描述】:

我有一个 UIButton。我不想给它一个背景图像,而是想使用一个自定义 UIView 对象作为背景。我意识到我可以通过将 UIView 渲染成图像然后使用它来做到这一点。但是有更好的方法吗?

我研究过使用 Button 的视图树,但这似乎有不良的副作用。

【问题讨论】:

【参考方案1】:

为了达到同样的效果,我通常这样做:

将子视图添加到父视图

在父视图中添加一个带有clearColor的UIButton,与子视图具有相同的框架。

您可以通过创建具有此视图和按钮作为其属性的自定义 UIView 类来实现相同的目的。

【讨论】:

你能让showsTouchWhenHighlighted以这种方式工作吗? 很高兴它有帮助。除非您想方便地使用 UIButton 功能,否则您还可以按照@Logan 的建议使用轻击手势识别器。【参考方案2】:

如果您想将 UIView 用作按钮,您只需向 UIView 添加轻击手势识别器并使用它。您是否正在寻找特定的东西?

【讨论】:

以上是关于使用 UIView 作为 UIButton 的背景?的主要内容,如果未能解决你的问题,请参考以下文章

Objective C-以编程方式插入UIButton的标题,在选中时更改背景和标题颜色

iOS开发UIView的动画与嵌入的UIButton的问题

使用 UIView 作为按钮

我的 UIView 有一个 UIButton 作为它的子视图之一,但不响应 Objective-c 中的事件

如何让 UIButton 粘在 UIView 的底部

IOS为UIButton添加了阴影