我(希望)观看了所有相关的 WWDC2014 会议视频并阅读了文档,所以这个问题主要是为了证实我的怀疑,但请赐教。
我想做的是使用自动布局为视图添加动画效果。这本身并不是问题。但这些动画的端点随着不同的方向而变化。我想我也许可以使用尺寸类来自动旋转移动视图,但苹果的开发人员指南说动画必须以编程方式完成,并且据我所知,尺寸类是仅 Interface-Builder 的东西。
我的另一个想法是使用自定义布局指南,例如 IB 提供的顶部/底部指南,但这些指南似乎是硬编码的。
我能做的最后一件事是在监听旋转事件后手动更新约束,但这并不是什么新鲜事,而且我觉得尺寸类应该不仅仅可用于静态接口。我是否高估了他们的目的?
TLDR:给定视图可以有其原点的两个点 A 和 B(由于动画),我如何使用尺寸类或类似的东西移动这两个点?
经过对文档的进一步挖掘,我终于找到了一些有用的东西。这UIContentContainer
协议定义willTransitionToTraitCollection(:withTransitionCoordinator:)
,以及该方法的第一个参数(aUITraitCollection
)包含水平和垂直尺寸类别以及UIUserInterfaceIdiom
(可用于了解应用程序是否在 iPhone 或 iPad 上运行,尽管尺寸类别应用于大多数情况)。
此外,由于 iOS 8 在横向视图中隐藏了状态栏,traitCollectionDidChange(previousTraitCollection:)
是发生变化后调用的相应方法,因此值UIApplication.sharedApplication().statusBarHidden
调用此方法时已更改。可以用于UIScrollView
's contentInset
例如。
最后,如果您需要确切的屏幕尺寸(当然以点为单位,但上面提到的特征集合也知道像素密度),那么有viewWillTransitionToSize(:withTransitionCoordinator:)
.
希望这也对其他人有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)