代码片段

swift
阅读 72 收藏 0 点赞 0 评论 0

pantodismiss.swift
    func panGestureAction(_ panGesture: UIPanGestureRecognizer) {
        let translation = panGesture.translation(in: view)
        
        if panGesture.state == .began {
            originalPosition = view.center
            originalPositionNC = navigationController?.navigationBar.center
            currentPositionTouched = panGesture.location(in: view)
        } else if panGesture.state == .changed {
            if (translation.y > 0){
                view.frame.origin = CGPoint(
                    x:  view.frame.origin.x,
                    y:  view.frame.origin.y + translation.y
                )
                self.navigationController?.navigationBar.frame.origin = CGPoint(
                    x: self.view.frame.origin.x,
                    y:  view.frame.origin.y + translation.y
                )
                panGesture.setTranslation(CGPoint.zero, in: self.view)
            }
            
        } else if panGesture.state == .ended {
            let velocity = panGesture.velocity(in: view)
            if velocity.y >= 150 {
                UIView.animate(withDuration: 0.2
                    , animations: {
                        self.view.frame.origin = CGPoint(
                            x: self.view.frame.origin.x,
                            y: self.view.frame.size.height
                        )
                        self.navigationController?.navigationBar.frame.origin = CGPoint(
                            x: self.view.frame.origin.x,
                            y: self.view.frame.size.height
                        )
                }, completion: { (isCompleted) in
                    if isCompleted {
                        self.dismiss(animated: false, completion: nil)
                    }
                })
            } else {
                UIView.animate(withDuration: 0.2, animations: {
                    self.view.center = self.originalPosition!
                    self.navigationController?.navigationBar.center = self.originalPositionNC
                })
            }
        }
    }
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号