如果我将属性添加到UIViewController“myisLandscape”(BOOL)
每次调用viewWillTransitionToSize
时都会更新此属性
-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
// will execute before rotation
[coordinator animateAlongsideTransition:^(id _Nonnull context) {
self.myIsLandscape = (UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation]));
} completion:^(id _Nonnull context) {
// will execute after rotation
}];
}
除了这个方法之外,还有其他方法需要更新self.myIsLandscape以便它始终具有正确的值吗?
我需要这个属性来访问从后台线程检查UIViewController的当前方向(我不想使用dispatch)
答案 0 :(得分:0)
- (void)viewWillTransitionToSize:(CGSize)size
withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
此方法是UIContentContainer协议的一部分。此协议定义了根据大小更改重新设计视图控制器内容的方法。当您实现上面的方法时,它会通知View Controller它的视图大小即将发生变化。
因此,您正在进行的检查将始终返回正确的值。无需担心。