在长时间停顿之前,我已经在iOS应用程序上工作了很多年。在我的新项目中,我决定尝试Interface Builder和Storyboards的新功能(Swift 3,Xcode 8.2.1)。因此,我已经为所有受支持的设备提供了一个具有精确定义约束的工作应用程序,遵循"常规"和"紧凑"宽度/高度范例。一切似乎都有效,我喜欢这种方法。
在我决定在iPhone模拟器上运行应用程序以检查布局之前,我正在最终确定iPad模拟器的第一个视图(及其控制器)。事实证明,所有工作都按预期进行,但对于一个视图。
此视图具有以下行为:
一旦显示视图(自定义segue或默认推送。所有视图都在导航控制器内),它会显示缩小/最大为我在故事板上选择的预览大小的内容。然后它动画(从左上角缩放)以填充屏幕。例如:如果我选择"查看为iPhone 5"并且在iPad上运行,视图显示在iPad模拟器的左上角,大小与iPhone 5相同。然后它会向上扩展以填充具有我想要的确切布局的屏幕。
应该在这一个视图中添加内容,所有设备的布局看起来都一样,只是缩小/缩小。所以它真的只是错误的视图大小。
这一切都只发生在我的一个观点中,我所有的观点都是以同样的方式设计和制定的(约束)。这种情况每时都会发生,它发生在模拟器和真实设备上。
上周我在网上尝试了各种建议,但我没有找到能够帮助我的任何主题(在Stack Overflow上)。
我输了。我很高兴有任何建议!
谢谢。
答案 0 :(得分:1)
从我的视图中逐步删除所有内容并构建每一步后,我发现我的self.view.layoutIfNeeded()
里面有一个viewDidLoad()
,它位于一个动画块中,可以动画单个子视图,但由于某种原因导致上述问题。删除它解决了这个问题。