防止查看出现动画

Posted

技术标签:

【中文标题】防止查看出现动画【英文标题】:prevent to view appear with animmation 【发布时间】:2015-10-30 09:58:20 【问题描述】:

我的自定义导航栏第一次出现动画时遇到了问题。我认为它的发生是因为我使用了自动布局,它会自行将其设置为横向或纵向状态。但我想要一个功能,在我第一次进入屏幕后,一切都静止了,它属于哪里。之后,如果我转动屏幕或做某事,所有的动画都会像现在这样。

当视图创建自己时省略第一个动画有什么好的想法吗?

动画是:标签从左到右浮动。并且 1 个标签从 0px 宽度和高度显示为 100% 宽度和高度

代码:

[self.navigationController.navigationBar addSubview:self.topBar];

self.topbar 是 UIView。我已将它添加到阻止 [UIView performWithoutAnimation:^ ]; 但它没有帮助,每次第一次出现视图时,我的标签都会从左到右浮动。

【问题讨论】:

能否请您添加一些代码或图片以便我们了解场景? @Nik 嗨,场景是我在导航栏中有 3 个标签,即 UI 视图。它第一次出现动画从左到右浮动。 UI 视图是在 interfacebuilder 中创建的,它只链接动作,但我必须支持横向和纵向方向,这会将一个约束从宽度/3 缩小到 50(它是动画的),但第一个动画很奇怪。我没有他们的代码:(如果不清楚,请询问 【参考方案1】:

答案是我用了一些方法[self layoutIfNeeded];设置约束后。解决方案是设置这样的方法:

- (void) yourAnimation:(BOOL)animated
  if(animated) 
  [UIView animateWithDuration:0.3 animations:^
        //your animated code
        //[self layoutIfNeeded];
    ];
  else
  [UIView performWithoutAnimation:^
            //your stuff without animation
        ];
  

【讨论】:

以上是关于防止查看出现动画的主要内容,如果未能解决你的问题,请参考以下文章

在为约束设置动画时防止子视图上出现不需要的动画

单击后退按钮但不离开页面时防止自动滚动?

在 iOS 上的动画期间防止视图从左上角弹出

如何防止这种奇怪的 jQuery .animate() 滞后?

查看打开关闭应急模式(应急模式阻断所有网络连接,防止出现紧急状况)

如何防止jQuery对象动画重复执行