【问题标题】:How To Reposition Elements On Device Rotation In Xcode 5?如何在 Xcode 5 中重新定位设备旋转上的元素?
【发布时间】:2014-09-02 11:45:52
【问题描述】:

我正在开发一个应该支持纵向和横向的应用程序。使用自动布局来重新排列视图中的控件没有问题,但是我无法使用自动布局来做一些事情。我在纵向视图中有两个视图,我希望它们在横向视图中彼此相邻。我可以将底部视图移动到右侧 X 位置,但它仍位于顶部视图下方。这张图片描述了我想做什么:

http://www.hesamstore.ir/Orient.png

我该怎么做?

感谢阅读。

【问题讨论】:

    标签: ios iphone xcode autolayout device-orientation


    【解决方案1】:

    为所有 IBOutlets 添加约束。

    添加约束 - 1. 高度、宽度、尾随和前导,这将解决它, 如果您想要准确的比率,请选择两个出口并添加具有比率的水平约束。

    并且还选择一个标签及其对应的开关并添加水平间距并将其设置为 EQUAL。

    是的,应该这样做。

    【讨论】:

    • 是的,这称为自动布局,在 ios6 中出现自动布局后,为框架编写代码已过时(我认为)。 :)
    • 不错的解决方案。但有一些问题。我将前导 Space To Super View 添加到 4 第一对选项。他们坚持左边。我将尾随空间添加到超级视图到 4 秒。他们坚持向右,但仍处于第一组选项之下。怎么办?
    • 添加一组完整的约束到只有1个标签+开关集从任一侧,在它们下面的,只需选择具有所有约束n在下面设置和垂直间距的一个,然后按照相同的到它们下面的那些,它就像一个方程,你必须将它设置为 1,然后将 1 与正确的连接起来,它就变成了正确的,然后像这样继续,但这取决于你的应用程序的布局。
    • 它是成功的,但在纵向模式下,这两组选项相互重叠。 :| .这是正常现象吗?
    • 到具有所有约束的标签开关集,添加一个约束(如果已经存在则进行编辑:)顶部空间到超级视图(考虑到集合是最顶层的,)选择每个并添加/编辑这些约束,使用 RATIO ,猜测纵向与横向的比率应该如何,并设置该距离,以及小于尾随空间但大于高度的优先级。
    【解决方案2】:

    只需在您的代码中实现此方法...

    - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
    {
    
        BOOL isPortrait = UIDeviceOrientationIsPortrait(self.interfaceOrientation);
        if(isPortrait == NO)
        {
            // this is landScape mode....
            // here give the frames that you want for your controls...
        }
        if(isPortrait == YES)
        {
            // this is portrait mode....
            // here give the frames that you want for your controls...
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-05
      • 2018-08-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多