我有一個相當複雜的用戶界面的應用程序,有一個很大的UIView
被稱爲封面,它下面有一個UITableView
。 tableView
配置了與蓋子高度相同的tableHeaderView
。當tableView
向上滾動時,封面使用UIScrollViewDelegate
向上移動屏幕(使用各種花式動畫)。要允許用戶通過滑動封面來滾動tableView
,我已經覆蓋了- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
方法以始終返回false
。iOS - 查看手柄的水龍頭,但讓刷卡通過超級視圖
我現在在封面上添加了一些UIButton
的視圖。我設法改變我重寫了pointInside
方法這樣的方式,使他們能夠應對水龍頭:
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
BOOL isInside = [_directionsButton pointInside:[_directionsButton convertPoint:point fromView:self] withEvent:event];
return isInside;
}
只有現在的問題是,如果你在按鈕開始滑動手勢,它是由抓該按鈕和tableView
不滾動。我希望能夠忽略按鈕上的輕掃手勢(所以真的讓它們傳遞到下面的視圖)。
通常情況下,我只想將封面視圖tableHeaderView
,這似乎很好地處理這種行爲。不過,由於桌面滾動時在封面上做了一些獨特的動畫,因此我無法在此處進行此操作。
這是一個開始,但我真的在尋找一種解決方案,以便當在UIButton上檢測到滑動手勢時,它會將整個觸摸傳遞給它的超級視圖(這反過來讓它通過以下視圖) 。我相信我可以檢測到按鈕上的滑動,但是如何忽略它們呢? –
處理這些滑動時,找出滑動的起始位置,以及該點是否位於您曾經擁有UIView的地方。 –