以实现顶部标题的“打包清单”-->“选择一个”的垂直(水平方向同理)动画为例,虽然简单,但这也是最基本最核心的ios动画知识了。
在storyboard中为标题定义两个constraint,并都拉个outlet,如下图代码区的最下面两行
屏幕快照 2018-10-08 下午11.39.41.png刚刚在storyboard上创建的两个约束,一个是动画开始时用的,还有一个是动画结束时用的。
1.把结束时约束的优先级改低一点---为性能考虑,
2.乘数变为0.67(原来是1)---你可以自由发挥
3.install
勾去掉---告诉app一开始不管这个约束
constraint属性面板里面这些属性不懂的话可以实际操作看一看,很简单不赘述。
viewcontroller核心代码
var menuIsOpen = false //用户是否点击了加号
//按钮的点击事件
@IBAction func toggleMenu(_ sender: AnyObject) {
menuIsOpen = !menuIsOpen
//isAvtive告诉app是否用这个约束
titleCenterY.isActive = !menuIsOpen
titleCenterY_open.isActive = menuIsOpen
//实现动画---这里用最简单的一款,其实够用了
UIView.animate(
withDuration:0.3,
animations: {
//更新布局
self.view.layoutIfNeeded()
})
}
其余动画大同小异,只要定义好动画开始时的constraint和结束时的constraint,然后加个animate函数就行。
以上。
网友评论