菜鸟教程小白 发表于 2022-12-12 23:12:35

iOS 7 - 自动布局 - 如何在旋转时更改 View 的位置


                                            <p><p> <img src="/image/xS3xS.png" alt="Portrait"/>
<img src="/image/IbCJT.png" alt="Landscape left and right"/> </p>

<p>在这种情况下,我对使用自动布局处理 UI 旋转有点困惑。这些按钮不会改变大小或与边缘的距离,而是它们相对于彼此的位置。 </p>

<p>如何让这些 View 旋转和布局,如图所示?此外,纵向 View 为 300 x 300。但是,当旋转为横向时,必须将其大小调整为 300 x 290 以适应状态栏下方。 </p>

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

<p>感谢您的帮助!</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>好的,有几种方法。 </p>

<h1>第一种方法:巧妙地使用自动布局</h1>

<p>所以您知道正方形的宽度以及它会粘在左侧和顶部。所以设置你的自动布局,它设置左边和顶部的偏移量和宽度和高度。按钮从底部固定 y 像素,从右侧固定 x 像素,并且具有固定的宽度和高度。这些约束总是可以得到满足的。</p>

<p>这适用于 iPad 或 iPhone 等单一习语。</p>

<p>要获得 290 而不是 300,您还需要在底部设置一个偏移量,即 > 10,优先级为 1000,而 <=300 的高度优先级为 750,高度 >= 250 (或任何你喜欢的)再次具有 1000 的优先级。我应该在真实的 Storyboard中进行测试以正确测试,这不是最简单的设置,没有警告或问题。</p>

<p>我最终设置了很多带有优先级的软尺寸。例如,290 像素高度的优先级仅为 250。</p>

<p> <img src="/image/yuign.png" alt="Set up"/> </p>

<h1>第二种方法:灵活的尺寸布局</h1>

<p>下一个方法是针对已经在 Xcode 6 中的新的、无限大小的惯用语。显然这是 future ,我建议您的应用程序适应它。您将不得不告诉我更多关于您的应用程序以及您希望它如何扩展的信息,因为不再有真正的大小概念,只是知道最宽和最窄的部分在哪里。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iOS 7 - 自动布局 - 如何在旋转时更改 View 的位置,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/24394092/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/24394092/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS 7 - 自动布局 - 如何在旋转时更改 View 的位置