如何为 UIButton 创建动态叠加层?

Posted

技术标签:

【中文标题】如何为 UIButton 创建动态叠加层?【英文标题】:How can I create a dynamic overlay for a UIButton? 【发布时间】:2012-01-12 16:14:12 【问题描述】:

我的应用程序有几个部分有非常大的按钮(640x130、230x150 等)。我需要有一种方法来更新按钮的不同部分,使用不同的文本。最初,我假设在我的代码中我可以创建各种 UILabel,然后将它们作为子视图添加到我的按钮中。但是,一旦我尝试将 UILabel 作为子视图添加到按钮,我的应用程序就会崩溃。

为按钮创建叠加层的最简单方法是什么,我可以完全自己进行布局,而不会阻止对按钮点击感兴趣使用叠加控件?

我想有多种方法可以解决这个问题。但是,我的案例的最佳解决方案应该使用最少的代码行(我有很多此类按钮),并且我希望能够继续在 IB 中使用某种形式的可配置按钮。

我不反对继承 UIButton,但如果我这样做,我希望能够在 IB 中使用它。我从来没有为这种情况创建过自定义 UIView,所以我需要帮助定义这种类型的子类,以便它可以在 IB 中正常工作。

【问题讨论】:

【参考方案1】:

您需要将子视图添加到包含视图 - 而不是按钮。为确保它不会干扰按钮按下,请务必将其设置为:

[myCustomTextOverlay setUserInteractionEnabled:NO];

【讨论】:

以上是关于如何为 UIButton 创建动态叠加层?的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式为处于触摸状态的 UIButton 创建灰色叠加层?

显示自定义 UIButton 上的灰色叠加层

如何为 iOS 应用动态设计或创建带有动态 ui 控件的视图

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

如何为为 UIButton 创建的自定义背景艺术实现 scale-9 (9-slice)

如何为 UIButton 设置自定义渐变背景?