IOS7:Pop ViewController强制UIImageView丢弃

log*_*ist 1 ios ios7

将我的项目升级到iOS7后

初始加载时

当我执行BACK按钮并且UINavigationController返回上一页时,屏幕顶部的ImageView会向下移动.

图像向下移动

我用IB做我的布局.这些是我的模拟指标:

模拟指标

我关闭了AutoLayout.关于问题可能是什么的任何想法?我不确定是否有人想看到特定的代码,我不想用太多的代码来混淆问题.

更新:根据评论问题,我想进行以下更新:

  • 在应用程序.h或.m文件中的任何位置,我都不会对imageview的大小或位置进行任何更改.
  • viewDidLoadviewDidAppear我调用一个用户定义的方法调用,recalculateAll但他们根本没有参考任何imageview大小.只是为了尝试它,我注释掉了整个部分并运行了代码,它仍然跳了下来.
  • 在我的init编程中,我使用他们的x和y以编程方式设置了一些图像视图(你看到#132看起来像是一个泡泡).

这是我用于从视图控制器移动到tableviewcontroller的典型导航:

 GetTimeOffByType *showTimeOffReport = [[GetTimeOffByType alloc] initWithNibName:@"GetTimeOffByType" bundle:nil];
    showTimeOffReport.timeOffType = @"Vacation";
    [self.navigationController pushViewController:showTimeOffReport animated:YES];
Run Code Online (Sandbox Code Playgroud)

这些都是.xib文件,根本没有故事板.它基本上是一个视图控制器,嵌入UINavigationController了6个按钮.每按一次按钮,它就会推送UITableViewController不同的参数并显示不同的数据.我用来回到原版的过渡UIViewController只是iOS生成的BACK按钮(所以没有代码可以显示)

更新#2希望这有助于某人解决这种奇怪的行为.因此,如果我单击表格视图单元格showTimeOffReport以获取单元格细节,然后使用BACK导航一直向后它不会跳下来.

更新#3好的这是我刚刚发现的:跳下或不跳下的问题与UINavigationBar的半透明性有关.如果您有Translucent = YES,它将从窗口顶部开始.如果您有半透明= NO,它将从UINavigationBar的底部开始.

Chr*_*ner 5

您可以尝试在UIViewController中新的属性设置edgesForExtendedLayoutUIRectEdgeNone.

这是一个很好的资源,可以解释有关iOS 7中视图布局如何变化的更多信息.

请参阅Apple文档

如果您计划向后兼容,则可能需要进行一些运行时检查并在设备未运行iOS 7时调整定位.