2010-02-20 77 views
2

我想通過觸摸從自定義UIView傳遞到下面的UITableView(UIView是直接在UITableView之上)。但是,它似乎並沒有工作。UITableView不會接受通過觸摸

在我的自定義的UIView,我已經嘗試了所有以下的(我使用touchesMoved作爲一個例子,但我實現了這所有4個觸摸方法)

- (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。任何想法爲什麼這不起作用?

回答

1

如果UIView不是UITableView的子視圖,它將不會通過它觸發UITableView的響應鏈。

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

由於UITableView使用滾動視圖,因此滾動視圖可能會在觸及UIView之前將其觸碰。

爲了測試這個,我建議把你的UIView放在「over」,即使它成爲普通視圖的子視圖,並讓響應者鏈像你希望的那樣工作。然後換掉UITableView的底部/超級視圖,看看它是否仍然有效。

如果沒有,問題在於表格嵌入在scrollview中。我不知道這是一個解決方法。