ios - 你怎么能以编程方式检查外观代理?

  显示原文与译文双语对照的内容
0 0

我添加了以下代码,以便在较旧版本的操作系统上使用外观,而不对旧版本执行任何操作:

if ([UINavigationBar respondsToSelector:@selector(appearance)])
{
 [[UIBarButtonItem appearance] setTintColor:[UIColor blackColor]]; 

它编译好了,似乎正在工作。

然后,我打开了一串默认的生成警告,默认情况下在中禁用,并开始获取错误"未实现的选择器'。

那么,如果出现出现时,检查运行时的正确方法是什么?

时间:原作者:2个回答

0 0

做这些:

if ([UIBarButtonItem conformsToProtocol:@protocol(UIAppearance)])
{
 [[UIBarButtonItem appearance] setTintColor:[UIColor blackColor]]; 
}
原作者:
0 0

我 想 你 已 无法 回头. UIView标头声称符合UIAppearance协议,因这里你必须知道你预先执行的操作。 检查外观选择器是否不可靠。 另外,你必须知道哪些属性支持 UIAppearance,而不是所有明显的属性。

但是,如果你想知道哪些类和属性支持 UIAppearance,那么希望。 如果我想让你有兴趣,我有 grepped 5的UIKit头,并且我相信你可以为 iOS 6做同样的事情。 我的博客上的UIView子类列表符合UIAppearance在我的博客上的使用

编辑:

我忘记了CSmith在他的答案中提到的conformsToProtocol: 方法。 无论如何,我要把这个答案 leaving,因为这个链接仍然相关。

原作者:
...