0
工作我做了一個自定義的UIControl它使用UIControlEvents
來識別特定的相互作用。它的工作都很好。現在,我也希望我的UIControl來識別UIPanGestureRecognizer
,這裏的代碼UIPanGestureRecognizer不UIControlEvents
fieldView.addTarget(self, action: #selector(willSelectField(sender:)), for: .touchDown)
fieldView.addTarget(self, action: #selector(didSelectField(sender:)), for: .touchUpInside)
fieldView.addTarget(self, action: #selector(canceledFieldSelection(sender:)), for: .touchUpOutside)
fieldView.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(draggingField(gesture:))))
所以,當我點擊我的的FieldView(定製UIControl)touchDown
將被識別。如果我不開始平移,touchUpInside
和touchUpOutside
也將得到認可。但是,如果我和平移例如放開我的FieldView外,touchUpOutside
不會被觸發。
注:touchDragInside
不是一個選擇,因爲它只能識別一個範圍內的大約100像素內拖動。
我嘗試過,但在'touchesCancelled'方法不會被調用,我也不能找到一種方法touchUpInside'或'touchUpOutside'之間'這個方法來區分 – Codey