iOS 7-自动布局-旋转时如何更改视图位置

iOS 7-自动布局-旋转时如何更改视图位置,ios,objective-c,constraints,autolayout,uiinterfaceorientation,Ios,Objective C,Constraints,Autolayout,Uiinterfaceorientation,在这种情况下,我对使用autolayout处理UI旋转有点不理解。按钮不会更改大小或与边的距离,而是更改它们相对于彼此的位置 如何使这些视图旋转和布局,如图所示?此外,肖像中的视图为300 x 300。但是,当旋转到横向时,必须将其大小调整为300 x 290,以适合状态栏下 我真的很想知道最好的方法,以及不同的方法。我已经看到了一些可能的方法,例如在设备旋转时以编程方式创建新约束,以及根据设备旋转方向加载两个单独的NIB 谢谢你的帮助 好的,有几种方法 第一种方法:以智能方式使用自动布局 所以

在这种情况下,我对使用autolayout处理UI旋转有点不理解。按钮不会更改大小或与边的距离,而是更改它们相对于彼此的位置

如何使这些视图旋转和布局,如图所示?此外,肖像中的视图为300 x 300。但是,当旋转到横向时,必须将其大小调整为300 x 290,以适合状态栏下

我真的很想知道最好的方法,以及不同的方法。我已经看到了一些可能的方法,例如在设备旋转时以编程方式创建新约束,以及根据设备旋转方向加载两个单独的NIB


谢谢你的帮助

好的,有几种方法

第一种方法:以智能方式使用自动布局 所以你知道正方形有多宽,它会粘在左边和上面。因此,请设置自动布局,以设置左侧和顶部偏移以及宽度和高度。按钮底部为y像素,右侧为x像素,具有固定的宽度和高度。这些约束总是可以满足的

这对于像iPad或iPhone这样的单一习惯用法很好

要获得290而不是300,您还需要设置底部的偏移量,即>10,优先级为1000,而高度=250(或任何您喜欢的值)的优先级为1000。我应该在一个真实的故事板中进行测试,以正确地测试它,在没有警告或问题的情况下设置它不是一件容易的事情

最后,我用很多软尺寸和优先级来设置它。例如,290像素高度的优先级仅为250

第二种方法:灵活的大小布局
下一种方法是针对Xcode 6中已经存在的新的、大小不限的习惯用法。很明显,这是未来,我建议你的应用程序适应这一点。您必须告诉我更多关于您的应用程序以及您希望它如何扩展的信息,因为现在已经没有真正的大小概念,只知道最宽的部分在哪里,最窄的部分在哪里。

感谢您的见解。关于如何把按钮放在正确的位置有什么想法吗?只有相反的方法才是相同的。我现在正在工作,如果你愿意,我可以在几个小时内完成。基本思想是设置从底部和右侧的偏移,如果要从顶部进行校正,可以为此添加另一个约束。因此,顶部偏移量大于等于150px,prio 1000为顶部偏移量;底部偏移量大于等于150px,prio 750为底部偏移量。将按钮对齐并将其链接到屏幕的右边缘。设置宽度和高度。如果你被什么事缠住了,请告诉我!谢谢,我会查出来的。我今天没有时间,但我会尽快回来的!不过,我确实让视图工作了,我明白了你对按钮的意思。我用它做了一个项目,基本上强迫自己一直使用它。最重要的是,您在任何时候都不应该看到任何警告,您需要设置比最初预期更多的约束。例如,我使用了三个高度约束。我也有一本电子书专门介绍它,但我必须承认,我只是把它翻了一遍。还有一些东西仍然只能通过代码或用户定义的运行时变量使用。您可以做一些很酷的事情,比如将此视图的宽度设置为其他视图宽度的两倍,这样可以很好地缩放嵌套视图