我有一個透明UIView下的UIScrollView。我需要將所有平底鍋和水龍頭轉移到滾動視圖(僅水平滾動)。常規UIView使用UIPanGestureRecognizer的子類來跟蹤垂直平底鍋(Subclass found here)。在覆蓋視圖中,我重寫觸摸事件方法以將它們傳遞給UIScrollView。將觸摸信息傳遞給另一個UIView下的UIScrollView
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesBegan:touches withEvent:event];
[self.scrollView.panGestureRecognizer touchesBegan:touches withEvent:event];
[self.scrollView.singleTapGesture touchesBegan:touches withEvent:event];
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesCancelled:touches withEvent:event];
[self.scrollView.panGestureRecognizer touchesCancelled:touches withEvent:event];
[self.scrollView.singleTapGesture touchesCancelled:touches withEvent:event];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesEnded:touches withEvent:event];
[self.scrollView.panGestureRecognizer touchesEnded:touches withEvent:event];
[self.scrollView.singleTapGesture touchesEnded:touches withEvent:event];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesMoved:touches withEvent:event];
[self.scrollView.panGestureRecognizer touchesMoved:touches withEvent:event];
[self.scrollView.singleTapGesture touchesMoved:touches withEvent:event];
}
覆蓋視圖,垂直鍋完美的作品。在UIScrollView中,水龍頭也很完美。滾動,但不是很多。滾動視圖滾動大約三個點,然後停止(因爲我繼續水平平移。)如果我放開速度,滾動視圖然後拾取該速度並結束滾動。
什麼可能導致滾動視圖停止滾動,然後拿起速度的問題?
假設透明視圖需要響應至少一種類型的觸摸,例如滑動或其他。 –
嗯......我不知道爲什麼你的滾動停止和提取速度..但我會做的是..讓我的UIScrollView處理所有事件..包括滑動,透明UIView應該處理...並創建一個回調函數,將該事件傳遞給該UIView ...還禁用UIView上的userInteractionEnabled ..所以UIScrollView以它應該的方式工作。nd UIView將處理它應該處理的唯一事件,因爲UIScrollView會抓住它並傳遞它的UIView ...也許爲時已晚,你回去改變它..但抱歉,我不知道如何解決你的問題。 – chuthan20