ios - 以编程方式更新约束 iOS
<p><p>我需要在我的项目中以编程方式<strong>更新约束</strong>,以相应地调整 View 的高度(基于不同的 subview )。我已经在我的 Controller 中消除了约束,但遇到了一个问题。</p>
<p>当我第一次尝试更新它时<em>(在 viewDidLoad 或 viewWillAppear</em> <em>方法</em>中),它没有更新。如果我之后更新它(因为一些旋转等),那么它是正确完成的。 <strong>请告诉我为什么会发生这种情况以及执行此操作的正确方法/地点是什么?</strong>(因为我觉得在 viewWillAppear/DidLoad 中更新后约束又在某处更新)。 </p>
<p>我也尝试了 <strong>view.layoutIfNeeded</strong>,但没有帮助。我猜它与 viewDidLoad 和其他 viewController 委托(delegate)方法有关 </p>
<p>附:我也在我的项目中使用 <em>size classes</em>,但我认为这与它无关,因为它在某些情况下有效。</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>更新约束在 <code>viewWillAppear</code> 中可能不起作用。
但是,它可以在 <code>viewDidAppear</code> 中工作。</p>
<p>还有其他地方可以覆盖,比如:(第一次使用<code>static BOOL shouldRefreshView = NO;</code>)</p>
<pre class="lang-swift prettyprint-override"><code>- (void)viewDidLayoutSubviews
{
;
if(shouldRefreshView) {
shouldRefreshView = NO;
;
}
}
</code></pre></p>
<p style="font-size: 20px;">关于ios - 以编程方式更新约束 iOS,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/34926436/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/34926436/
</a>
</p>
页:
[1]