用滑动手势解除视图 - Swift 4

问题描述:

在我的应用程序中,当用户在视图上向下滑动时,我希望视图关闭到某个框架。这是我迄今为止尝试,但由于某种原因,它不断给我这个错误:用滑动手势解除视图 - Swift 4

Argument of '#selector' does not refer to an '@objc' method, property, or initializer

这是我的代码楼下:

class VideoLauncher: NSObject { 

@objc func dismissView(myView: UIView) { 
    UIView.animate(withDuration: 0.4) { 
     if let theWindow = UIApplication.shared.keyWindow { 
     myView.frame = CGRect(x:theWindow.frame.width - 15 , y: theWindow.frame.height - 15, width: 10 , height: 10) 
     } 
    } 
} 

func showVideoPlayer() { 

    print("showing player") 
    if let keyWindow = UIApplication.shared.keyWindow { 
     let view = UIView(frame: keyWindow.frame) 
     view.backgroundColor = UIColor.spaceBlue 
     view.frame = CGRect(x: keyWindow.frame.width - 10, y: keyWindow.frame.height - 10, width: 10, height: 10) 
     let videoPlayerView = VideoPlayerView(frame: keyWindow.frame) 
     keyWindow.addSubview(view) 
     view.addSubview(videoPlayerView) 
     let slideDown = UISwipeGestureRecognizer(target: self, action: #selector(dismissView(myView: view))) 
     view.addGestureRecognizer(slideDown) 

     UIView.animate(withDuration: 0.5, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseOut, animations: { 
      view.frame = keyWindow.frame 
     }, completion: { (completedAnimation) in 
      UIApplication.shared.isStatusBarHidden = true 
     }) 
    } 
} 

} 

你必须使用这样的:

let slideDown = UISwipeGestureRecognizer(target: self, action: #selector(dismissView(gesture:))) 
slideDown.direction = .down 
view.addGestureRecognizer(slideDown) 

您的功能:

@objc func dismissView(gesture: UISwipeGestureRecognizer) { 
    UIView.animate(withDuration: 0.4) { 
     if let theWindow = UIApplication.shared.keyWindow { 
      gesture.view?.frame = CGRect(x:theWindow.frame.width - 15 , y: theWindow.frame.height - 15, width: 10 , height: 10) 
     } 
    } 
} 
+0

我这样做,它仍然是不运行该功能。 – vApp

+0

你可以发布你做了什么吗?因为这对我有用 –