我試圖在我的視圖控制器中註冊一個方法作爲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(_ :))) –