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

标签 ios autolayout ios-autolayout ios-animations

我使用 AutoLayout 显示了 3 个 UIView。

  1. UI标签
  2. 用于浏览日历的 UIView。该 View 是一个自定义 UIView,其中包含一个 UIView,而 UIView 又包含两个 UIButton 和几个 UILabels
  3. 约会的 UiTableView

View 2 有一个约束,即其顶部位置等于 View 1 的底部 View 3 有一个约束,即其顶部位置等于 View 2 的底部

非常简单的东西,下面是一张显示 View 2 约束上的常量动画的图片。

enter image description here

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

黑色空间是最终将由当前动画 View 2 填充的未着色区域

我正在使用 Monotouch,执行动画的代码是

// calendarDateBrowseYConstraint Is View 2
this.calendarDateBrowseYConstraint.Constant = value;

UIView.Animate(
    5.25f,
    0.0f,
    UIViewAnimationOptions.TransitionFlipFromBottom,
    () =>
    {
        this.calendarDateBrowse.LayoutIfNeeded();
    },
    null);

最佳答案

请确保在容器 View 上调用layout if LayoutIfNeeded()。您没有提到您的 View 层次结构,但我假设您有类似的内容:

ViewController:
-view
---myContainerView
------label
------viewWithCalendar
------viewWithTableViewOrTableView

调用动画的正确方法是否正确(首先是简单动画):

this.calendarDateBrowseYConstraint.Constant = value;
UIView.animateWithDuration(durationTime) {
    myContainerView.layoutIfNeeded()
}

还有你的:

this.calendarDateBrowseYConstraint.Constant = value; UIView.Animate(
    5.25f,
    0.0f,
    UIViewAnimationOptions.TransitionFlipFromBottom,
    () =>
    {
        myContainerView.LayoutIfNeeded();
    },
    null);

关于ios - 动画 UIView 的同级立即进入最终位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32434105/

相关文章:

ios - 插入导航 Controller 时的 tableView 奇怪行为

ios - UIScrollView contentInset 自动布局问题

ios - 较大设备中的自动布局问题

ios - 向谷歌地图搜索字符串添加边界会导致无结果

ios - 为 iOS 构建 block 功能的方向

ios - 部署目标 5.0 在 xcode 中不适用于 cordova 应用程序

ios - 以编程方式自动布局和 UIImageView

ios - 使用 AVFoundation 访问图像和音频

ios - 使用 ScrollView 时自动布局和 StackView 的问题

iOS >> 自动布局 >> iPhone 4 与 iPhone 5 >> 设置多个对象来改变大小