首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪里都找不到UI_APPEARANCE_SELECTOR

哪里都找不到UI_APPEARANCE_SELECTOR
EN

Stack Overflow用户
提问于 2012-06-19 15:45:45
回答 2查看 1.3K关注 0票数 1

关于iOS协议参考的UIAppearanceContainer文档说:

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

但是,例如,当我打开UIButton.h时,我在任何地方都找不到UI_APPEARANCE_SELECTOR,尽管我可以使用这样的方法解决问题:

代码语言:javascript
复制
    [[UIButton appearance] setBackgroundImage:[[UIImage imageNamed:@"UIButton"] resizableImageWithCapInsets:UIEdgeInsetsMake(5.0, 5.0, 5.0, 5.0)] forState:UIControlStateNormal];

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-19 16:11:37

您无法找到它,因为访问器是从UIView继承的(UIButton继承自;UIControlUIViewUIResponderNSObject)。因此,在执行[UIButton appearance]时,只因为UIView采用了UIAppearanceUIAppearanceContainer协议,就可以获得传递类的外观代理。我希望这是有意义的。

PS。如果您查找例如UIBarButtonItem的头文件,您将看到UI_APPEARANCE_SELECTOR在那里。

票数 1
EN

Stack Overflow用户

发布于 2012-06-19 15:54:28

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

UI_APPEARANCE_SELECTOR是一个简单的#define,我认为它只是编译器使用@属性执行一些特殊操作的一个提示。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11104622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档