菜鸟教程小白 发表于 2022-12-13 11:35:56

ios - 动画 UIView 的 sibling 立即进入最终位置


                                            <p><p>我使用 AutoLayout 显示了 3 个 UIView。</p>

<ol>
<li>UILabel </li>
<li>用于浏览日历的 UIView。此 View 是一个自定义 UIView,其中包含一个 UIView,而该 UIView 又包含两个 UIButton 和几个 UILabel</li>
<li>约会的UiTableView</li>
</ol>

<p> View2 有一个约束,将其顶部定位为 View1 的底部
View3 有一个约束,将其顶部定位为 View2 的底部</p>

<p>非常简单的东西,下面是一张图片,显示了 View 2 的 Constraint 上的常量被动画化。</p>

<p> <a href="/image/LXm08.png" rel="noreferrer noopener nofollow"><img src="/image/LXm08.png" alt="enter image description here"/></a> </p>

<p>问题是 View3 立即占据其最终位置。为什么在动画过程中它没有保持在 View 2 的底部?</p>

<p>黑色空间是最终将由当前动画 View2 填充的未着色区域</p>

<p>我正在使用 Monotouch,执行动画的代码是</p>

<pre><code>// calendarDateBrowseYConstraint Is View 2
this.calendarDateBrowseYConstraint.Constant = value;

UIView.Animate(
    5.25f,
    0.0f,
    UIViewAnimationOptions.TransitionFlipFromBottom,
    () =&gt;
    {
      this.calendarDateBrowse.LayoutIfNeeded();
    },
    null);
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>确保在 <strong>container</strong>View 上调用 layout if <code>LayoutIfNeeded()</code>。您没有提到您的 View 层次结构,但我假设您有类似的东西:</p>

<pre><code>ViewController:
-view
---myContainerView
------label
------viewWithCalendar
------viewWithTableViewOrTableView
</code></pre>

<p>调用动画的正确方法是(首先是简单动画):</p>

<pre><code>this.calendarDateBrowseYConstraint.Constant = value;
UIView.animateWithDuration(durationTime) {
    myContainerView.layoutIfNeeded()
}
</code></pre>

<p>还有你的:</p>

<pre><code>this.calendarDateBrowseYConstraint.Constant = value; UIView.Animate(
    5.25f,
    0.0f,
    UIViewAnimationOptions.TransitionFlipFromBottom,
    () =&gt;
    {
      myContainerView.LayoutIfNeeded();
    },
    null);
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 动画 UIView 的 sibling 立即进入最终位置,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/32434105/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/32434105/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 动画 UIView 的 sibling 立即进入最终位置