ios – 以编程方式使用大小类

前端之家收集整理的这篇文章主要介绍了ios – 以编程方式使用大小类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我(希望)看了所有相关的WWDC2014会议视频并阅读了文档,所以这个问题主要是为了确认我的怀疑,但请教我.

我想做的是使用自动布局的动画视图.这本身不是问题.但这些动画的终点会随着不同的方向而变化.我以为我可以使用大小类来自动移动视图,但Apple的开发人员指南说,动画必须以编程方式完成,从我可以收集到的内容中,大小类是一个仅限Interface-Builder的东西.

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

我可以做的最后一件事是在听取旋转事件之后手动更新约束,但这并不是什么新鲜事,我觉得大小类不仅可以用于静态接口.我高估了他们的目的?

TLDR:给定两个A点和B点,一个视图可以源于(由于动画),我如何使用大小类或类似的东西移动两个点?

解决方法

在文档中进一步挖掘之后,我终于找到了一些有用的东西. UIContentContainer协议定义了willTransitionToTraitCollection(:withTransitionCoordinator :),该方法的第一个参数(UITraitCollection)包含水平和垂直大小的类以及UIUserInterfaceIdiom(可以用来知道应用程序是在iPhone还是iPad上运行),尽管大多数事情应该使用大小类).

另外,由于iOS 8在横向浏览中隐藏了状态栏,所以traitCollectionDidChange(prevIoUsTraitCollection :)是在发生更改后被调用的相应方法,所以当调用方法时,UIApplication.sharedApplication().statusBarHidden的值已更改.对于UIScrollView的contentInset可以是有用的.

最后,如果你需要确切的屏幕大小(当然,上面提到的trait集合也知道像素密度),那么有viewWillTransitionToSize(:withTransitionCoordinator :).

希望这也有助于别人.

猜你在找的iOS相关文章