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,
() =>
{
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,
() =>
{
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]