检测自定义按钮的 UIAppearance 代理中的更改

Posted

技术标签:

【中文标题】检测自定义按钮的 UIAppearance 代理中的更改【英文标题】:Detect change in UIAppearance proxy for custom button 【发布时间】:2012-12-03 16:57:01 【问题描述】:

我正在创建一个自定义按钮,它有几个属性标记为UI_APPEARANCE_SELECTOR。如何通过外观代理检测属性何时更改?不调用属性设置器。

属性确实发生了变化,因为它在 drawRect: 中具有正确的值,但我仍然需要检测它何时发生变化。

【问题讨论】:

【参考方案1】:

您可以使用 KVO(Key-Value Observer)来做到这一点。我没有在这里放任何代码,因为在使用它之前阅读文档并理解这个概念非常重要。 来自 Apple 的 Key-Value Observing Programming Guide:

键值观察提供了一种机制,允许对象在其他对象的特定属性发生变化时得到通知。

Here is the link for the official documentation from Apple.

【讨论】:

以上是关于检测自定义按钮的 UIAppearance 代理中的更改的主要内容,如果未能解决你的问题,请参考以下文章

如何在MonoTouch中为继承的视图创建UIAppearance代理?

使用 UIAppearance 在更改后更新导航栏

限制 UIAppearance 代理范围

UIPageControl + UIAppearance

使用UIAppearance自定义iOS UIDatepicker

使用 UIAppearance 渲染图像