【问题标题】:ios: autolayout animation, how to prevent the subview be animated?ios:自动布局动画,如何防止子视图被动画?
【发布时间】:2015-05-02 15:09:59
【问题描述】:

我们可以更改 NSLayoutConstraint 的常量属性,然后使用 UIView 动画块来使更改动画化。

myLayoutConstraint.constant = 50;
[UIView animateWithDuration: .3 animations:^{
    [view layoutIfNeeded];
}];

但是,具有布局约束作为超级视图的视图的子视图将被动画化!它们将从原始零帧动画到自动布局的目标帧。如何解决这个问题?

【问题讨论】:

    标签: ios autolayout


    【解决方案1】:

    如果子视图有依赖于动画约束的约束,那么这是不可能的。

    您可以做的是使子视图的约束独立于动画约束。

    因此,如果您正在为预览的高度设置动画,则不要将子视图固定到其父视图的顶部和底部,因为这会使它们在动画时发生变化。仅将它们固定在顶部,以便它们从底部“掉落”。

    这样,当高度被动画化时,它会在不动画的情况下显示子视图。

    【讨论】:

      【解决方案2】:

      这表明您有待处理的布局操作。之前拨打layoutIfNeeded一次

      myLayoutConstraint.constant = 50;
      

      【讨论】:

        猜你喜欢
        • 2013-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-14
        相关资源
        最近更新 更多