在不填满屏幕的情况下向上动画的视图

时间:2015-12-30 08:59:25

标签: ios swift uiview

所以这就是我想要做的事情:

这是初始屏幕:

enter image description here

当点击底部指向箭头时,会有一个较小的视图,从下到上过渡如下:

enter image description here

正如您所看到的,后面的视图变暗了。当我点击后视图时,较小尺寸的视图会通过向下动画来消失。

我尝试了几件事: 1.我试图以模态方式进行模拟,这似乎是正确的动画,即从下到上,但它覆盖了整个后视图。 2.我试图通过尝试复制这篇文章来使模态视图只占父级大小的一半:Present modal view controller in half size parent controller。但是,它没有用。 所以我决定将UIView置于我的后视图之上:

enter image description here

我将灰色视图与@IBOutlet weak var messageView: UIView!连接起来。我尝试使用此代码:UIView.transitionWithView(messageView, duration: 1.0, options: UIViewAnimationOptions.CurveEaseIn, animations: nil, completion: nil)。然而,似乎没有任何事情发生。有关如何实现这一目标的任何建议吗?

1 个答案:

答案 0 :(得分:0)

对于按钮的动画:

将自动布局约束添加到BottomLayout指南。并创建一个IBOutlet

@IBOutlet weak var bottomConstraint: NSLayoutConstraint!
var shouldAnimateView:Bool = true

在按钮的操作上,您需要使用约束

为视图设置动画
@IBAction func showOrHideViewBtn(sender: AnyObject) {

    if shouldAnimateView {
        self.bottomConstraint.constant = self.view.frame.size.height/2+5
         UIView.animateWithDuration(Double(0.2), animations: {
            self.bottomConstraint.constant = self.view.frame.size.height/2 - self.toanimateView.frame.size.height
            self.view.layoutIfNeeded()
        })


    }else{

        self.bottomConstraint.constant = self.view.frame.size.height/2 - self.toanimateView.frame.size.height
        UIView.animateWithDuration(Double(0.2), animations: {
            self.bottomConstraint.constant =  self.view.frame.size.height/2+5
            self.view.layoutIfNeeded()
        })


    }
    shouldAnimateView = !shouldAnimateView

}