为一个按钮覆盖 [UIButton Appearance]

Posted

技术标签:

【中文标题】为一个按钮覆盖 [UIButton Appearance]【英文标题】:Override [UIButton Appearance] for one button 【发布时间】:2014-07-10 19:03:24 【问题描述】:

见主题。这可能吗?当我使用 UIButton Appearance 添加色调时......它适用于所有 UIButtons,不仅仅是“系统”按钮,甚至是自定义按钮。

我只想能够设置几个带有红色文本的破坏性按钮,同时为其他所有内容保持可自定义的色调。

【问题讨论】:

只需为这些特殊按钮显式设置色调即可。 我这样做了,但 UIAppearance 仍然会覆盖它们。 你应该显示一些相关的代码。展示您如何(以及何时)使用UIAppearance 设置所有按钮,然后展示您如何(以及何时)尝试使用自己的颜色设置特定按钮。 我认为这个例子不需要代码。这并不复杂。将应用程序委托中的 [UIButton 外观] 色调颜色设置为绿色,将按钮放在表单上并尝试以某种方式将该按钮的色调颜色更改为红色,在情节提要或代码或其他任何内容中都不起作用。我认为 Nirav 的回答可能是唯一的解决方案。 【参考方案1】:

查看UIAppearance appearanceWhenContainedIn

当您的控件包含在特定视图(例如 UIToolbar 或 UINavigationBar)中时,这提供了一种自定义外观的方法。您可以检查您自己的包含自定义 UIButton 的父视图类。

【讨论】:

以上是关于为一个按钮覆盖 [UIButton Appearance]的主要内容,如果未能解决你的问题,请参考以下文章

UITapGestureRecognizer 正在覆盖 Scrollview 上的 UIButton 操作

当我覆盖“drawRect”时,UIButton 样式设置被忽略

如何在 UIButton 子类中覆盖 -drawrect?

将静态 UIButton 覆盖到 UICollectionView

UIButton 删除边框与触摸覆盖

如何正确自动缩放 UIButton 和标题文本?