DDTraitCollection 0.0.2

DDTraitCollection 0.0.2

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布最后发布2015年7月

Vasco Orey维护。



iOS 7 的 UITraitCollections

目标

目标是让其中的一些有用 UITraitCollection API 在 iOS 7 中可用,以便在编写布局代码时减少分支路径。

API

目前以下 API 应该对 iOS 7 可用:

  • -traitCollection - 当前 UITraitCollectionUIViewUIViewController,iOS 7 上将返回一个 DDTraitCollection 实例(它应该与 UITraitCollection 兼容 API)
  • -traitCollectionDidChange: - 此方法将在任何之前调用过 -dd_registerForTraitCollectionUpdates 的 iOS 7 viewviewController 上被调用

示例

首先,您应该在需要访问 traitCollection 的任何文件中导入 #import <DDTraitCollection/UIView[Controller]+DDTraitCollection.h>

如果要在代码中创建 UITraitCollection(或 DDTraitCollection)实例,应导入

以下如何使用此功能的快速示例

- (void)updateConstraints {
  UITraitCollection *currentTraitCollection = self.traitCollection;

  if(currentTraitCollection.horizontalSizeClass == UIUserInterfaceSizeClassCompact) {
    // Update constraints for compact horizontal size class
    ...
  } else {
    // Do stuff for regular
    ...
  }

  [super updateConstraints];
}

警告

如果您需要在 iOS 7 和 8 之间共享的代码中创建 UITraitCollection 实例,应通过 DDTraitCollection 类方法实现(在 iOS 7 中使用 UITraitCollection 将只会使某些内容变为 nil)。

在 iOS 7 中,它将返回一个 DDTraitCollection 实例,而在 iOS 8 中,它将正确地返回 UITraitCollection 实例。