• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

UIAppearance 的“当不包含在"时

用户头像
it1352
帮助1

问题说明

我目前正在构建一个复杂的 UIAppearance 修饰符网络*,并且遇到了一个问题.

I am currently spinning a complex web of UIAppearance modifiers*, and have come across a problem.

我使用 FlatUIKit 的自定义 UIBarButton 外观协议导致 MFMailComposerViewController 抱怨并停止工作.

My usage of FlatUIKit's custom UIBarButton appearance protocol is causing MFMailComposerViewController to complain and stop working.

因此,不是使用 UIAppearancewhenContainedIn 方法来指定导致发生修改的类,而是有没有办法排除某些类,即when not包含在?

Therefore, instead of using UIAppearance's whenContainedIn method to specify classes that cause modification to occur, is there a way to exclude certain classes, i.e. a "when not contained in"?

*我说的是 UIAppearance 协议,该协议用于在应用的委托中预定义对象外观设置.

*I am talking about the UIAppearance protocol that is used to predefine object appearance settings in the app's delegate.

正确答案

#1

您可以使用 appearanceWhenContainedIn: 指定 nil 修改,这将给出默认外观:

You can use appearanceWhenContainedIn: to specify nil modification, which will give the default appearance:

[[UIBarButton appearance] setBarTintColor:[UIColor redColor]];
[[UIBarButton appearanceWhenContainedIn:[MFMailComposerViewController class], nil] setBarTintColor:nil];

从 iOS 9 SDK 开始,还有

As of iOS 9 SDK, there is also

[[UIBarButton appearance] setBarTintColor:[UIColor redColor]];
[[UIBarButton appearanceWhenContainedInInstancesOfClasses:@[[MFMailComposerViewController class]] setBarTintColor:nil];

可以像这样使用 Swift-2:

Which can be used Swift-2 like so:

UIBarButton.appearance().barTintColor = UIColor.redColor()
UIBarButton.appearanceWhenContainedInInstancesOfClasses([MFMailComposerViewController.self]).barTintColor = nil

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /reply/detail/tanhcfkehj
系列文章
更多 icon
同类精品
更多 icon
继续加载