[英]Pass touch events from UIView on top of UITableView
我試圖建立一個UIView覆蓋它的自定義表視圖。 我正在嘗試識別常規UIView上的特殊手勢,特別是需要雙擊以激活它的平移手勢(點住並按住,然后平移)。
我目前有一個自定義UITableViewController,以及一個自定義UIView。 出於兼容性原因,我想嘗試將其保留為UITableViewController而不是UIViewController中的UITableView(輕松替換現有的UITableViewControllers)。
我可以雙擊並平移沒有問題,但是問題是我不再能夠在表視圖中實際選擇一行。 我可以在表格中滾動,但實際選擇不起作用。
理想情況下,我希望能夠在所有自定義表格視圖單元格中保留所有點擊,滑動和常規事件(例如,“清除”或“郵箱”,您可以在其中向左或向右滑動以激活特定操作)。
我知道我可以從表視圖的indexPathForRowAtPoint:
方法中獲取表視圖單元格,但這僅允許我選擇切換。
我也嘗試覆蓋像這樣開始的接觸:
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[self.nextResponder touchesBegan: touches withEvent: event];
}
以及其他相關事件,並已確認nextResponder是自定義UITableViewController,但無法執行任何操作。
我查看了許多其他帖子,但沒有解決方案對我有用。 我嘗試過的其他一些事情是:
添加一個點擊手勢識別器並將其轉發到UITableViewController
[_containingTableViewController gestureRecognizerShouldBegin: tapGesture];
實現了不同的手勢識別器委托
-(BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch: (UITouch *)touch{ return ( touch.tapCount >= 2 ); }
以及是和否:
-(BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
另外,在表格視圖上,我嘗試設置canCancelContentTouches
但是沒有一個值起作用。
任何幫助將不勝感激,我已經嘗試了很多,但就是不明白!
如果確實需要完成整個項目,我可以在GitHub上發布整個項目,但是我必須先清理一下。
謝謝!
我不明白您的麻煩,所以不確定是否可以幫到您,但是您可以使用setUserInteractionEnabled
*的UIView
, UITableView
等方法的FALSE/NO
禁用它的任何類型的事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.