【问题标题】:Orientation broken in iOS 9iOS 9 中的方向损坏
【发布时间】:2015-10-07 12:10:48
【问题描述】:

我开发了一个 iOS 应用程序,它也支持Orientation。直到iOS 8.4 根据Orientation 的变化,它在viewWillAppear 方法中给了我正确的视图大小(宽度和高度)。但现在我用iOS 9Xcode 7 中运行我现有的应用程序,然后Orientation 已损坏,因为如果您在viewWillAppear 方法中显示它,则视图大小不正确。我正在通过viewWillAppear 方法更新框架的所有控制器,但现在它不起作用。有没有其他解决方案来实现它。我正在使用 Xib 而不启用 Autolayout。请帮帮我。

【问题讨论】:

  • 返回的尺寸是多少?
  • 它曾经根据纵向或横向更新/提供尺寸,但现在它没有发生。在 viewDidAppear 中,它返回正确的大小。

标签: objective-c iphone ios9 xcode7 uiinterfaceorientation


【解决方案1】:

在我身上发生了非常相似的事情,我在谷歌搜索答案时偶然发现了这个问题。 我的问题是因为自定义的UIViewControllerAnimatedTransitioning 实现未能为新视图分配正确的框架。

- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext {
    UIViewController *toVC = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
    UIView *toView = toVC.view;
    toView.frame = [transitionContext finalFrameForViewController:toVC];
    // transition animation goes here...
}

我不知道为什么,但在 iOS 9 之前,如果缺少这条线,则不会有问题。

希望对你有帮助

【讨论】:

  • 问题在 iOS 10.0 上仍然存在,这个解决方案解决了它。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-24
  • 2014-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-11
相关资源
最近更新 更多