将我的项目升级到iOS7后
当我执行“后退”按钮并且 UINavigationController 返回到上一页时,屏幕顶部的 ImageView 会向下移动。
我使用 IB 进行布局。这些是我的模拟指标:
我有自动布局。关于问题可能是什么的任何想法吗?我不确定是否有人想查看特定的代码,并且我不想用太多的代码使问题变得混乱。
Updates:根据评论问题,我想进行以下更新:
- 在应用程序 .h 或 .m 文件中的任何位置,我都不会对图像视图的大小或位置进行任何更改。
- 在这两个
viewDidLoad
and viewDidAppear
我调用一个用户定义的方法recalculateAll
但它们根本没有参考任何图像视图尺寸。只是为了尝试一下,我注释掉了整个部分并运行了代码,它仍然跳下来。
- In my
init
我确实使用它们的 x 和 y 以编程方式设置了一些图像视图(您会看到 #132 看起来像是一个气泡)。
这是我用于从视图控制器移动到表视图控制器的典型导航:
GetTimeOffByType *showTimeOffReport = [[GetTimeOffByType alloc] initWithNibName:@"GetTimeOffByType" bundle:nil];
showTimeOffReport.timeOffType = @"Vacation";
[self.navigationController pushViewController:showTimeOffReport animated:YES];
这些都是.xib
文件,根本没有故事板。它基本上是一个具有嵌入式视图控制器UINavigationController
有 6 个按钮。每次按下按钮时,都会推动一个UITableViewController
传递不同的参数并显示不同的数据。我用来返回原始状态的转换UIViewController
只是 iOS 生成的BACK
按钮(因此没有代码可显示)
Update#2希望这能帮助有人解决这种奇怪的行为。因此,如果我单击表格视图单元格showTimeOffReport
获取单元格详细信息,然后使用 BACK 一直导航回来,它不会跳下来。
Update#3好吧,这是我刚刚发现的:跳不跳的问题与 UINavigationBar 的半透明有关。如果您有半透明=是,它将从窗口顶部开始。如果你有一个半透明= NO,它将从 UINavigationBar 的底部开始。
您可以尝试在 UIViewController 上设置新属性edgesForExtendedLayout
to UIRectEdgeNone
.
这是一个很好的资源,详细解释了 iOS 7 中视图布局的变化。
请参阅苹果文档
如果您计划向后兼容,如果设备未运行 iOS 7,您可能需要进行一些运行时检查并调整位置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)