菜鸟教程小白 发表于 2022-12-13 10:27:17

ios Autolayout - 当第一个 View 调整大小时移动第二个 View


                                            <p><p>我的主视图由一个 ScrollView 组成,其中有几个文本字段作为表单的一部分。
然后我有一个 textView(实际上是一个 HPGrowingTextView),它在添加文本/行时垂直调整 textview 的大小。
在这个 TextView 下面是一个 mkmapview。
自动布局适用于初始布局,但是当 textview 调整自身大小时,mapview 不会移动(您可以在屏幕截图中看到 textview 的边框如何消失在仍位于其原始位置的 mapview 后面。</p>

<p>mapview 的 TopSpace 约束从 GrowingTextView.Bottom 设置为 8,所以我认为它应该始终自动与 textview 保持 8 个像素(或其他任何值)。</p>

<p>(我正在使用 Storyboards...GrowingTextView 是拖入 Storyboard上并设置/子类化为 HPGrowingTextView 的 UIView。
除了 mapView 没有移动......它可以正常工作(在没有 mapView 的情况下进行了测试)</p>

<p> <a href="https://imgur.com/dkXX7FW" rel="noreferrer noopener nofollow"><img src="https://i.imgur.com/dkXX7FW.png?2" title="source: imgur.com"/></a> <a href="https://imgur.com/hYCrNxi" rel="noreferrer noopener nofollow"><img src="https://i.imgur.com/hYCrNxi.png?2" title="source: imgur.com"/></a> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>看来 <a href="https://github.com/HansPinckaers/GrowingTextView" rel="noreferrer noopener nofollow"><code>HPGrowingTextView</code></a>不是自动布局兼容的。它没有实现 <code>-intrinsicContentSize</code>。它也没有添加任何约束。相反,它只是设置自己的框架。</p>

<p>在自动布局中,设置框架无效。你必须调整约束。 (改变其内在内容大小的 View 具有调整系统隐式创建的某些约束的效果。)对帧的任何更改都将在下一次布局传递时撤消。</p>

<p>坦率地说,我对最初的布局是明智的感到有些惊讶。您是否有高度限制或其他东西来弥补 <code>HPGrowingTextView</code> 没有固有尺寸这一事实?</p>

<p>无论如何,您需要切换到自动布局感知 View 或修复 <code>HPGrowingTextView</code>。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios Autolayout - 当第一个 View 调整大小时移动第二个 View ,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/29314021/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/29314021/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios Autolayout - 当第一个 View 调整大小时移动第二个 View