无法在任何地方找到UI_APPEARANCE_SELECTOR

时间:2012-06-19 15:45:45

标签: ios uiappearance

UIAppearanceContainer协议参考的iOS文档说:

  

“要参与外观代理API,请标记您的外观   使用UI_APPEARANCE_SELECTOR标题中的属性访问器方法。“

但是,例如,当我打开UIButton.h时,我找不到任何地方UI_APPEARANCE_SELECTOR,虽然我可以使用类似这样的问题:

    [[UIButton appearance] setBackgroundImage:[[UIImage imageNamed:@"UIButton"] resizableImageWithCapInsets:UIEdgeInsetsMake(5.0, 5.0, 5.0, 5.0)] forState:UIControlStateNormal];

有谁能告诉我发生了什么:D?

2 个答案:

答案 0 :(得分:2)

-[UIButton setBackgroundImage:resizableImageWithCapInsets:]不是属性,而是一种方法。因此Apple文档的引用仍然有效。

UI_APPEARANCE_SELECTOR是一个简单的#define,我想这只是编译器用@property做一些特殊内容的提示。

答案 1 :(得分:1)

您无法找到它,因为访问者是继承自UIViewUIButton继承自; UIControlUIViewUIResponder:{{1 }})。 因此,当您执行NSObject时,您将获得传递的类的外观代理,因为[UIButton appearance]采用UIViewUIAppearance协议。我希望这是有道理的。

PS。如果您查找示例UIAppearanceContainer的头文件,您会看到UIBarButtonItem就在那里。