当前位置: 首页 > 知识库问答 >
问题:

设置NSLayoutConstraints更改的动画(以及对更改的对象具有约束的对象)

阳枫涟
2023-03-14

我有一个UIImageView对象,它可以在屏幕上打开和关闭,只需按一下UIButton,我就可以更改它的布局约束。我使用以下代码成功地为该“运动”设置了动画:

    self.addY.constant = 44.0f;
    [self.addingScreen setNeedsUpdateConstraints];
    [UIView animateWithDuration:0.50f animations:^{
        [self.addingScreen layoutIfNeeded];
    }];

其中addY是屏幕顶部的约束,addingScreen是我的UIImageView对象。我的问题是,我有一系列对象对addingScreen具有垂直行间距约束,我希望它们一起滑动。发生的情况是,这些对象瞬间移动到它们的最后一帧,而UIImageView在我在代码中设置的0.5秒内缓慢跟随。如何让这些对象与UIImageView一起移动?谢谢帮助:)

共有1个答案

胥良平
2023-03-14

我想你也应该调用layoutIfNeed到你想要移动的其他视图。例如,尝试在动画和持续时间块中调用[self.viewlayoutIfNeed]

 类似资料:
  • 问题内容: 我正在使用来更新旧的应用,并且当没有广告时,它会滑出屏幕。出现广告时,它会在屏幕上滑动。基本的东西。 旧样式,我将帧设置在动画块中。新样式,我对自动布局约束有一个确定Y位置,在这种情况下,它是距父视图底部的距离,并修改常量: 横幅完全按预期移动,但没有动画。 更新:我重新观看了WWDC 12讲的“掌握自动布局的最佳实践” ,其中涵盖了动画。它讨论了如何使用CoreAnimation更新

  • 许多有关自动布局约束动画的教程建议更新约束的常量属性,然后在动画块中调用。 我的处境有点棘手。我有一个包含3个子视图的视图。此超级视图的高度不是固定的-它是按其子视图的高度之和计算的。在某些情况下,我要求这3个子视图中的一个子视图切换其高度(它在0和30之间变化,即我希望平滑地隐藏和显示它)。代码类似于此: 不幸的是,这并不像我预期的那样有效。我可以看到子视图高度的平滑变化,但在为子视图高度约束设

  • 我在学习教程中的动画自动布局 http://weblog.invasivecode.com/post/42362079291/auto-layout-and-core-animation-auto-layout-was 一切都很顺利。 当我尝试在我的应用程序中使用这个概念,尝试从下到上设置设置屏幕(UIView)的动画时,当设置屏幕只是一个空的UIView时,效果非常好, 但如果我将UILabel

  • 问题内容: 我正在开发一个多人游戏。当我使用清单中的对象时,它应使用对象的属性值更新用户生物的统计信息。 这是我的代码: 现在,由于某种原因,这不能正确地执行操作,因此我尝试了: 哪个可行,但不是很方便(因为我需要一个大的if语句来更新该生物的不同统计信息) 所以我尝试了: 我进入日志,但是没有任何更改,所以我尝试了: 日志中仍然为“ 100”,但没有更改,因此我尝试: 仍然会在日志中写入100,

  • 我正在用更新一个旧的应用程序,当没有广告时,它就会滑出屏幕。当有广告时,它会在屏幕上滑动。基本的东西。 老风格,我设置了一个动画块的框架。新样式中,我有一个到auto-layout约束,它确定位置,在本例中是距离超级视图底部的距离,并修改常数: 和预期的一样,但没有动画。 更新:我重新观看了WWDC12讨论的最佳实践,以掌握自动布局,其中包括动画。它讨论了如何使用CoreAnimation更新约束

  • 我正在使用Android MVVM架构和LiveData。我有一个这样的物体 我的视图模型是这样的 如何确保用户对象中的某个字段发生更改时,观察员收到通知?顺便说一句,重要的是要将这些数据保存在单独的对象中,而不是在ViewModel中使用字符串等主要值。