ios – viewWillTransitionToSize协调器忽略块

ios – viewWillTransitionToSize协调器忽略块,第1张

概述尝试游戏新的旋转方法,我需要知道设备是否正在旋转,以便推迟和取消旋转时不需要的动作. -(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator{ [super viewWillTransition 尝试游戏新的旋转方法,我需要知道设备是否正在旋转,以便推迟和取消旋转时不需要的动作.

-(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中指定的块在以下情况下被调用:

When a Transition changes from interactive to non-interactive then
handler is invoked.

但是,轮换不是交互式过渡.一旦启动,您就无法与之互动.这就是永远不会调用处理程序的原因.

我最终使用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;     }];}
总结

以上是内存溢出为你收集整理的ios – viewWillTransitionToSize协调忽略块全部内容,希望文章能够帮你解决ios – viewWillTransitionToSize协调器忽略块所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1077271.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存