objective-c-iOS 6包含在多个类中的外观
发布时间:2020-12-15 01:59:08 所属栏目:百科 来源:网络整理
导读:我正在使用我在iOS 6应用程序中定制的某些UI元素上的外观WhenContainedIn方法。我发现的问题是,如果我尝试提供多个容器类,那么我的自定义是不适用的,像这样: // Works neither for toolbar nor navbar items[UIBarButtonItem appearanceWhenContainedIn:
我正在使用我在iOS 6应用程序中定制的某些UI元素上的外观WhenContainedIn方法。我发现的问题是,如果我尝试提供多个容器类,那么我的自定义是不适用的,像这样:
// Works neither for toolbar nor navbar items [UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class],[UIToolbar class],nil] // Works fine (but only for navbar items,obviously) [UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class],nil] 官方的文档说,这个方法的参数可以是一个没有终止的多个类的列表,但是在我的情况下,它不会按照它的方式工作。我在这里遗漏了什么吗? 解决方法
从文档:
这实际上意味着无终结的列表不是定义UIBarButtonItem的容器类的列表,而是从顶部到底部定义容器层次结构,所以 [UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class],nil] 返回UINavigationBar内部的UIBarButtonItem的外观代理,UINavigationBar依次在UIToolbar内。 要么 [[UIBarButtonItem appearanceWhenContainedIn:[UIToolbar class],[ViewController class],nil] setTintColor:[UIColor redColor]]; 为UIBarButtonItem设置红色色调,它们位于ViewController类中的任何UIToolBar中。 因此,要分别设置UINavigationBar和UIToolBar的外观,您需要对外观进行两次单独调用.WhenContainedIn:方法 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |