iOS8.0+后去横竖屏概念

从iOS8.0后苹果重新定义了横竖屏变化的回调函数,开始逐渐废弃UIInterfaceOrientationd,对应的will/didRotatateToInterfaceOrientation:回调函数也开始废弃,对应新加的了两个代理UIContentContainer和UITraintEvironment,UIViewController已经继承了这两个代理,而我们需要实现的方法是willTransitionToTraitCollection: 和 viewWillTransitionToSize。 

- (void)willTransitionToTraitCollection:(nonnull UITraitCollection *)newCollection withTransitionCoordinator:(nonnull id<UIViewControllerTransitionCoordinator>)coordinator
{
}

这个方法可以获取到变化后的controller的ClassSize属性,包括垂直方向和水平方法。

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(nonnull id<UIViewControllerTransitionCoordinator>)coordinator
{
}

这里的size就是变化后controller的size。


所以一般我们如果不考虑横竖屏会有设计差异,可以实现viewWillTransitionToSize:更新UI。

你可能感兴趣的:(iOS8.0+后去横竖屏概念)