2014-03-06 53 views
5

我有一個相當複雜的用戶界面的應用程序,有一個很大的UIView被稱爲封面,它下面有一個UITableViewtableView配置了與蓋子高度相同的tableHeaderView。當tableView向上滾動時,封面使用UIScrollViewDelegate向上移動屏幕(使用各種花式動畫)。要允許用戶通過滑動封面來滾動tableView,我已經覆蓋了- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event方法以始終返回falseiOS - 查看手柄的水龍頭,但讓刷卡通過超級視圖

我現在在封面上添加了一些UIButton的視圖。我設法改變我重寫了pointInside方法這樣的方式,使他們能夠應對水龍頭:

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event 
{ 
BOOL isInside = [_directionsButton pointInside:[_directionsButton convertPoint:point fromView:self] withEvent:event]; 
return isInside; 
} 

只有現在的問題是,如果你在按鈕開始滑動手勢,它是由抓該按鈕和tableView不滾動。我希望能夠忽略按鈕上的輕掃手勢(所以真的讓它們傳遞到下面的視圖)。

通常情況下,我只想將封面視圖tableHeaderView,這似乎很好地處理這種行爲。不過,由於桌面滾動時在封面上做了一些獨特的動畫,因此我無法在此處進行此操作。

回答

1

您是否嘗試過使用手勢識別器識別手勢並執行檢測到指定手勢時要調用的操作方法?

請檢查這個link。這可以幫助你。

+0

這是一個開始,但我真的在尋找一種解決方案,以便當在UIButton上檢測到滑動手勢時,它會將整個觸摸傳遞給它的超級視圖(這反過來讓它通過以下視圖) 。我相信我可以檢測到按鈕上的滑動,但是如何忽略它們呢? –

+0

處理這些滑動時,找出滑動的起始位置,以及該點是否位於您曾經擁有UIView的地方。 –