簡體   English   中英

從UITableView頂部的UIView傳遞觸摸事件

[英]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 *的UIViewUITableView等方法的FALSE/NO禁用它的任何類型的事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM