扩展UiView动画

时间:2016-06-16 21:45:49

标签: ios swift animation uiview

我正在尝试在我的swift iOS应用程序中实现以下动画。屏幕底部目前有一个UIView,其中包含以下属性:

  let containerView : UIView = {
    let this = UIView(frame: CGRectMake(0,0, 600,150))
    this.backgroundColor = UIColor.clearColor()
    this.layer.cornerRadius = 5
    this.layer.borderColor = UIColor(red: (69/255.0), green: (209/255.0), blue: (153/255.0), alpha: 1.0).CGColor
    this.layer.borderWidth = 0.5
    return this
}()

在里面,有一个imageView,几个按钮和其他组件。 containerView也会对其实施模糊效果。当用户按下它时,我希望视图向上移动直到它到达屏幕顶部。同时我希望绘制边框,以填满整个屏幕,如下面的大纲所示。我还想将模糊效果作为动画以及边框应用到整个屏幕。最后,当这个动画结束时,我希望我的collectionView淡入已在展开视图中创建的空间。我几乎没有在Swift中制作动画视图的经验,但这些是我的想法:

  1. 应用移动动画,将视图顶部从当前位置移动到屏幕顶部。
  2. 在此过程中,逐渐淡出展开的视图,使其看起来好像视图本身正在展开。
  3. 最后,当两个动画完成时,淡入collectionView(这应该是最简单的部分)。
  4. 但是,我不确定我的思维方式是否正确,尤其是在动态绘制边框和背景动画方面。我正在寻找关于如何解决这个问题的一些建议。

    enter image description here

1 个答案:

答案 0 :(得分:0)

选择要设置动画的视图的heightConstraint的插座。 最初制作heightConstraint.constant = 0

点击点击这样做。

UIView.animateWithDuration(0.3) {
       self.heightConstraint.constant = YOURMAXVALUE
// perform fade in out tasks here 

        self.view.setNeedsUpdateConstraints()
        self.view.layoutIfNeeded()
    };

或者你也可以用topConstriant做到这一点.. 最初设置topConstaint使视图下降。 然后像这样动画来看效果