簡體   English   中英

UITableView將不接受通過觸摸

[英]UITableView won't accept pass through touches

我試圖通過觸摸從自定義UIView到下面的UITableView(UIView直接在UITableView的頂部)。 但是,它似乎不起作用。

在我的自定義UIView中,我嘗試了以下所有方法(我以touchesMoved為例,但我已經為所有4種touch方法實現了此方法)

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
 {
  [self.nextResponder touchesMoved:touches withEvent:event];
 }

 - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {  [super
 touchesMoved:touches withEvent:event];
 }

我什至嘗試將指向UITableView的指針直接傳遞到自定義UIView中,並執行以下操作:

 - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
  [self.myTableView touchesMoved:touches withEvent:event];
 }

這些選項似乎都不起作用,因為我無法滾動UITableView。 有任何想法為什么這行不通嗎?

如果UIView不是UITableView的子視圖,它將不會傳遞它,從而將響應者鏈向上鏈接到UITableView。

但是,最可能的罪魁禍首是滾動視圖。 滾動視圖會在將所有觸摸發送到子視圖之前捕獲所有觸摸。 這與通常的設置相反。

由於UITableView使用滾動視圖,因此滾動視圖很可能會在觸摸到達UIView之前捕獲觸摸。

為了測試這一點,我建議將UIView放在“上方”,即使其成為普通視圖的子視圖,並使響應者鏈按您希望的方式工作。 然后換出UITableView的底部/超級視圖,看看它是否仍然有效。

如果不是,則問題在於表已嵌入其中的滾動視圖。我不知道可以解決該問題的方法。

暫無
暫無

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

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