Swift 3.0 使用UIview动画和CABasicAnimation做登录页面效果

效果图

qweqweqweqweqwe11.gif

登录页面可能被要求要炫一点,所以有了今天的代码......
直接上代码相信都能看的懂

        let textFild = UITextField()
        textFild.frame = CGRect.init(x: 20, y: -50, width: 200, height: 30)
        textFild.placeholder = "账号"
        textFild.borderStyle = .roundedRect
        self.view.addSubview(textFild)
        UIView.animate(withDuration: 1) {
            textFild.frame = CGRect.init(x: 20, y: 80, width: 200, height: 30)
        }
        login = UIButton.init(frame: CGRect.init(x: 100, y: self.view.bounds.size.height + 10, width: 50, height: 30))
        login?.backgroundColor = UIColor.blue
        login?.setTitle("登录", for: UIControlState.normal)
        login?.addTarget(self, action: #selector(btnClick), for: UIControlEvents.touchUpInside)
        self.view.addSubview(login!)
        
        let textFild1 = UITextField()
        textFild1.frame = CGRect.init(x: -210, y: 160, width: 200, height: 30)
        //        textFild.background = UIColor.orange
        textFild1.placeholder = "密码"
        textFild1.borderStyle = .roundedRect
        self.view.addSubview(textFild1)
        UIView.animate(withDuration: 1, delay: 0, options: .curveEaseInOut, animations: {
            textFild1.frame = CGRect.init(x: 20, y: 160, width: 200, height: 30)
        }) { (finish) in
            UIView.animate(withDuration: 1, delay: 0, usingSpringWithDamping: 0, initialSpringVelocity: 0, options: UIViewAnimationOptions.curveLinear, animations: {
                self.login?.frame = CGRect.init(x: 100, y: 300, width: 50, height: 30)
            }, completion: nil)
            
            
        }

按钮点击事件方法

    func btnClick() {
        let viewLayer:CALayer = (login?.layer)!
        let position:CGPoint = viewLayer.position
        let x:CGPoint = CGPoint.init(x: position.x + 2, y: position.y)
        let y:CGPoint = CGPoint.init(x: position.x - 2, y: position.y)
        let animation:CABasicAnimation = CABasicAnimation.init(keyPath: "position")
        ///设置运动形似
        animation.timingFunction = CAMediaTimingFunction.init(name: kCAMediaTimingFunctionDefault)
        //设置开始位置
        animation.fromValue = NSValue.init(cgPoint: x)
        animation.toValue = NSValue.init(cgPoint: y)
        //设置自动翻转
        animation.autoreverses = false
        //设置时间
        animation.duration = 1
        //次数
        animation.repeatCount = 3
        
        login?.layer.add(animation, forKey: nil)

    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,218评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,810评论 4 61
  • 1988年,我出生了,那个年代,妈妈说我长得很小,我的出生给家里带来了欢乐,但是对于爷爷奶奶来说却很苦恼,一切都是...
    倔强的小小强阅读 1,594评论 0 0
  • 我家乡有一种美食,以前没有现在的食物丰盛,只有过大年家里才蒸一种用玉米和软米和的面,中间包红小豆和柿皮,它就叫黄谷...
    流云碧草阅读 5,169评论 0 6
  • 前段时间比较流行的一句鸡汤歌词:生活不止有眼前的苟且,还有诗和远方。有时候怀疑想自己这样,成天宅在家里蓬头垢面的人...
    礽哥儿阅读 2,720评论 0 0

友情链接更多精彩内容