Swift 向下滑动以关闭UIView,并使用UIPanGesture处理保留周期

Swift 向下滑动以关闭UIView,并使用UIPanGesture处理保留周期,swift,uipangesturerecognizer,Swift,Uipangesturerecognizer,我从tableView中的didSelectRow调用了一个UIView,我尝试向下滑动一个UIView,以关闭显示在UIPanGestureRecognizer中的视图,并在需要时处理保留周期。但我的视图仍在右角可见。这是我的密码 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let video = videoDataSource.videos[indexPath.

我从tableView中的didSelectRow调用了一个UIView,我尝试向下滑动一个UIView,以关闭显示在UIPanGestureRecognizer中的视图,并在需要时处理保留周期。但我的视图仍在右角可见。这是我的密码

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let video = videoDataSource.videos[indexPath.row]

        let window = UIApplication.shared.keyWindow!

        let videoPlayerView = Bundle.main.loadNibNamed("PlayerView", owner: self, options: nil)?.first as! VideoPlayerView
        videoPlayerView.frame = view.frame
        videoPlayerView.video = video

        window.addSubview(videoPlayerView)
    }
这是我想放弃的观点

@objc func handleSwipe(gesture: UIPanGestureRecognizer) {
        switch gesture.state {
        case .changed:
            let translation = gesture.translation(in: self.superview)
            self.transform = CGAffineTransform(translationX: 0, y: translation.y)

        case .ended:
            let translation = gesture.translation(in: self.superview)
            UIView.animate(withDuration: 0.5, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 1, options: .curveEaseOut, animations: {

                if translation.y > 50 {
                    self.layoutIfNeeded()
                    if let theWindow = UIApplication.shared.keyWindow {
                        gesture.view?.frame = CGRect(x:theWindow.frame.width - 15 , y: theWindow.frame.height - 15, width: 10 , height: 10)
                    }
                }

            }, completion: nil)
        default:
            print("Failed to swipe")
        }
    }

您是否试图从superview中删除您想要删除的视图?@SavcaMarin它工作正常谢谢,我忘了它有removeFromSuperview功能