用滑动手势解除视图 - 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)
}
}
}
我这样做,它仍然是不运行该功能。 – vApp
你可以发布你做了什么吗?因为这对我有用 –