以编程方式使用大小类

我(希望)观看所有相关的WWDC2014会话video并阅读文档,所以这个问题主要是为了证实我的怀疑,但请教育我。

我想要做的是使用自动布局的animation视图。 这本身不是问题。 但是这些animation的端点随着不同的方向而变化。 我认为我可以使用大小类来自动移动视图,但是苹果公​​司的开发者指南说,animation必须以编程的方式完成,而且从我可以收集的内容来看,大小类只是一个Interface-Builder的东西。

我的另一个想法是使用IB提供的顶部/底部自定义布局指南,但是这些指南似乎是硬编码的。

我能做的最后一件事情是在收听旋转事件后手动更新约束,但这并不是什么新鲜事,我觉得大小类应该可用于静态接口。 我是否高估了他们的目的?

TLDR:给出两点A和B,视图可以有其起源(由于animation),我怎样才能使用大小类或类似的东西移动这两个点?

经过一些更深入的文档挖掘,我终于find了一些有用的东西。 UIContentContainer协议定义了willTransitionToTraitCollection(:withTransitionCoordinator:) ,并且该方法的第一个参数(一个UITraitCollection )包含水平和垂直尺寸的类以及一个UIUserInterfaceIdiom (可以用来知道应用程序是在iPhone还是iPad上运行,尽pipe大小类应该用于大多数事情)。

此外,由于iOS 8将状态栏隐藏在横向视图中,因此traitCollectionDidChange(previousTraitCollection:)是更改发生后调用的相应方法,因此调用此方法时, UIApplication.sharedApplication().statusBarHidden的值已更改。 例如,可以用于UIScrollViewcontentInset

最后,如果你需要确切的屏幕大小(当然,以点为单位,但上面提到的特征集合也知道像素密度),有viewWillTransitionToSize(:withTransitionCoordinator:)

希望这可以帮助别人。