加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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]

官方的文档说,这个方法的参数可以是一个没有终止的多个类的列表,但是在我的情况下,它不会按照它的方式工作。我在这里遗漏了什么吗?

解决方法

从文档:

appearanceWhenContainedIn:

The appearance proxy for the receiver in a given containment
hierarchy
.

这实际上意味着无终结的列表不是定义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:方法

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读