我试图在我的视图控制器中注册一个方法作为UISwipeGestureRecognizer
的操作。目标视图是我用UIView
子类构建的自定义视图,因为这是我想要滑动的目标。我遇到的问题是我不知道如何将动作设置为UIViewController
中的方法。当我将手势拖放到界面构建器中的视图时,我可以做到这一点,然后将操作拖出到控制器。选择器找不到实例方法
func swiped(_ sender: UISwipeGestureRecognizer) {
}
func addGestureToView(_ view: CardView) {
let gesture = UISwipeGestureRecognizer(target: view, action: Selector("swiped:"))
gesture.direction = .up
view.addGestureRecognizer(gesture)
}
我还试图用
let gesture = UISwipeGestureRecognizer(target: view, action: #selector(swiped(_:)))
这两种方法给我的以下异常:
终止应用程序由于未捕获的异常 'NSInvalidArgumentException',原因:' - [testapp.CardView swiped:]:发送到实例的无法识别的选择器
我认为这是因为它正在寻找CardView
目标中的swiped:
,而不是控制器中存在的方法。我如何指定我希望它使用Controller作为动作,同时将手势本身只有应用于CardView
?
嗨@Johnathon Sullinger请再次看到我的答案我已更新我的答案,使用需要使用**自**而不是**查看** –
更改让手势= UISwipeGestureRecognizer(target:view,action:#selector( (_ :))) 到 let gesture = UISwipeGestureRecognizer(target:self,action:#selector(swiped(_ :))) –