美文网首页
swift 关于layer层的简单动效

swift 关于layer层的简单动效

作者: 盗跖矢儿 | 来源:发表于2017-07-05 19:28 被阅读135次

    笔者性懒,腹中无墨
    APP开发无论复杂与否, 都会遇到一些交互的动效问题.本文讲一些展开,收起的效果,比如点击某个按钮,则下方出现选择框,非常简单的效果.
    点击之前


    1.png

    点击之后


    2.png
    选择之后
    3.png

    展开的可以是一个view,view上铺什么控件根据需求.
    最开始就可以将这个view放在父视图上,frame给完全展示时的frame.

    fileprivate lazy var complexityView: UIView = {
       let view = UIView(frame: CGRect(x: 0, y: 100, width: 200, height: 50))
        return view
    }()
    

    然后做一些变换让它的高度几乎为零.

      let beginScale = CATransform3DMakeScale(1, 0.0001, 1)
      let beginTranslation = CATransform3DMakeTranslation(1, -50, 1)
      let beginTransform = CATransform3DConcat(beginScale, beginTranslation)
      complexityView.layer.transform = beginTransform
    

    当然,这个view一般是自定义的view,不必是UIView
    当点击按钮,此时应展开view的frame了,给一个简单的动画延时

    UIView.animate(withDuration: 0.3, animations: {                   
                complexityView.layer.transform = CATransform3DIdentity    
           })
    

    基本上可以了,一般还需要对父视图的高度做处理,所以展开,收起的时候需要对父视图的
    frame.size.height = ??
    做相应的更改,之后通过闭包的形式让controller或者上一层及的view做出反应,若是简单的tableView,别忘了

        tableView.beginUpdates()
        高度变化逻辑
        tableView.endUpdates()
    

    下班.

    相关文章

      网友评论

          本文标题:swift 关于layer层的简单动效

          本文链接:https://www.haomeiwen.com/subject/manqhxtx.html