[英]viewWillTransitionToSize coordinator ignores block
嘗試游戲新的旋轉方法,我需要知道設備是否正在旋轉,以便推遲和取消旋轉時不需要的動作。
-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
_rotating = YES;
[coordinator notifyWhenInteractionEndsUsingBlock:^(id<UIViewControllerTransitionCoordinatorContext> context) {
_rotating = NO;
}];
}
看起來很直接,應該根據我對文檔的解釋工作,但顯然沒有。 似乎_rotating被設置為YES並且永遠不會被設置回NO。 因此,似乎永遠不會調用我的完成塊。
我有同樣的問題。 我潛入了文檔。 您在notifyWhenInteractionEndsUsingBlock
指定的塊在notifyWhenInteractionEndsUsingBlock
被調用:
當轉換從交互式更改為非交互式時,將調用處理程序。
但是,輪換不是交互式過渡。 一旦啟動,您就無法與之互動。 這就是永遠不會調用處理程序的原因。
我最終使用animateAlongsideTransition:completion:
方法。 它就像一個魅力。
- (void)viewWillTransitionToSize:(CGSize)size
withTransitionCoordinator:(id <UIViewControllerTransitionCoordinator>)coordinator
{
_rotating = YES;
[super viewWillTransitionToSize:size
withTransitionCoordinator:coordinator];
[coordinator animateAlongsideTransition:nil
completion:^(id<UIViewControllerTransitionCoordinatorContext> context)
{
_rotating = NO;
}];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.