Swift之高仿QQ侧滑

作者: 百舸争流111 | 来源:发表于2016-07-30 20:34 被阅读283次

    侧滑是App开发中非常常见的功能,目前大部分App都有实现这个功能.

    简单介绍一下这个QQ侧滑的实现的步骤
    添加拖拽手势

     //添加拖拽手势
            let pan:UIPanGestureRecognizer = UIPanGestureRecognizer(target: self, action: "didPanEvent:")
            self.view.addGestureRecognizer(pan)
    

    设置侧滑出来的view,view的宽高,则是滑出view的尺寸.

    // 1. 获取手指拖拽的时候, 平移的值
            let translation:CGPoint = recognizer.translationInView(recognizer.view)
        // 2. 让当前控件做响应的平移
            
        recognizer.view!.transform = CGAffineTransformTranslate(recognizer.view!.transform, translation.x, 0);
         // ================
    
            UIApplication.sharedApplication().delegate!.window!!.subviews.first?.transform.tx = (recognizer.view?.transform.tx)!/3
            
        
             // 3. 每次平移手势识别完毕后, 让平移的值不要累加
            recognizer.setTranslation(CGPointZero, inView: recognizer.view)
            
    

    设置侧滑动画的时间.

    if (recognizer.state == UIGestureRecognizerState.Ended){
            UIView.animateWithDuration(0.2, animations: { () -> Void in
                
                if (recognizer.view!.frame.origin.x > KSCREEN.width*0.5) {
                    
                    recognizer.view!.transform = rightScopeTransform;
    
                    UIApplication.sharedApplication().delegate!.window!!.subviews.first?.transform.tx = (recognizer.view?.transform.tx)!/3
                    
                }else{
                    
                    recognizer.view!.transform = CGAffineTransformIdentity;
    
                    UIApplication.sharedApplication().delegate!.window!!.subviews.first?.transform.tx = (recognizer.view?.transform.tx)!/3
                    
                }
    
            })
    
    

    仅仅添加了手势侧滑,部分功能还待于完善,本demo仅供个人学习

    Swift之QQ.gif

    DEMO地址:https://github.com/baiGenZhengliu/Swfit-QQ.git

    相关文章

      网友评论

        本文标题:Swift之高仿QQ侧滑

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