2013-07-12 41 views
1

我有一個包含一串子UIScrollViews的父級UIScrollView,每個scrollview都可以在每個方向上滾動。在每個孩子的頂部,有一個UIView,父母的子視圖。UIScrollView通過在框架內拖動來滾動

我想只在用戶從上面的UIView中的一個拖動時啓用父滾動。

任何想法這樣做?謝謝 !

回答

0

您可以嘗試使用touchesBegan檢測用戶觸摸的位置,如果它位於其中一個UIViews中,則可以禁用所有子scrollView的滾動(或甚至交互)。所以在代碼中:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 

     //check if touch is in one of the UIViews 

     //if so disable child UIScrollView interaction like so: 
     childScrollView.scrollEnabled = NO; 
    } 

然後在觸摸結束的方法剛剛重新啓用子scrollViews滾動。

+0

這是解決方案,我正在尋找,但不幸的是,那種,touchesBegan:在我滾動時不會被調用。 – Aladin

0

好的,我終於找到了一些東西!通過覆蓋父滾動視圖的回調-(UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event

' - (UIView的*)則hitTest:(CGPoint)點withEvent:方法(*的UIEvent)事件 {

if (CGRectContainsPoint(myFrame, point)) 
{ 
    self.scrollEnabled = YES; 
} 
else 
{ 
    self.scrollEnabled = NO; 
} 

return [super hitTest:point withEvent:event]; 

}`