所以这就是我想要做的事情:
这是初始屏幕:
当点击底部指向箭头时,会有一个较小的视图,从下到上过渡如下:
正如您所看到的,后面的视图变暗了。当我点击后视图时,较小尺寸的视图会通过向下动画来消失。
我尝试了几件事: 1.我试图以模态方式进行模拟,这似乎是正确的动画,即从下到上,但它覆盖了整个后视图。 2.我试图通过尝试复制这篇文章来使模态视图只占父级大小的一半:Present modal view controller in half size parent controller。但是,它没有用。 所以我决定将UIView置于我的后视图之上:
我将灰色视图与@IBOutlet weak var messageView: UIView!
连接起来。我尝试使用此代码:UIView.transitionWithView(messageView, duration: 1.0, options: UIViewAnimationOptions.CurveEaseIn, animations: nil, completion: nil)
。然而,似乎没有任何事情发生。有关如何实现这一目标的任何建议吗?
答案 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
}