Swift:removefromSuperview删除约束

时间:2016-01-10 12:03:03

标签: ios swift animation constraints xcode-storyboard

目前正在开展一些快速的计划,并且我已经打电话给我,我从超视图中移除了模糊视图,同时我动画了2个按钮。

一切都像它应该的那样,但有一个小问题。当我从超级视图中删除模糊视图时,我的2个按钮的约束在底部设置为0并从该位置设置动画。

我不希望他们转移到0.如果我不删除模糊视图,我的动画效果很好。我已经检查过我的按钮限制是否与模糊视图有关,但事实并非如此。因为我认为它只能在相对于blurview时重置我的约束。

我的故事板看起来如下:

top: 80px;

我执行的代码如下:

view
  |->  camera_view
  |->  blur_view
  |->  record_label
  |->  record_button

我做错了什么?

亲切的问候,

的Wouter

2 个答案:

答案 0 :(得分:3)

而不是从blurView移除superview,您可以隐藏它。

替换

self.blurView?.removeFromSuperview()

self.blurView?.hidden = true

答案 1 :(得分:2)

问题是你在使用约束时动画帧。您应该动画约束更改/约束常量值更改。

如果不删除视图,则不会重新计算布局,因此帧动画“有效”。这是不正确的,将来会在某个时候进行重组。

当您移除视图时,将重新计算布局,并且在动画开始之前一切都会移动。

您没有提供约束的详细信息,但似乎您应该在删除视图之前设置约束动画,然后删除并确保约束在完成时都是合理的。