2013-07-12 4 views
1

У меня есть родительский UIScrollView, содержащий кучу дочерних UIScrollViews, каждое прокручивание может прокручиваться в каждом направлении. В верхней части каждого дочернего элемента есть UIView, subview родителя.Прокрутка UIScrollView путем перетаскивания в кадр

Я хочу включить родительскую прокрутку, только если пользователь перетаскивает ее из одного из верхних UIView.

Любая идея для этого? Благодаря !

ответ

0

Вы можете попытаться определить, где пользователь прикасается с помощью touchhesBegan: и если он находится в одном из UIViews, вы можете отключить прокрутку (или даже взаимодействие) для всех дочерних прокрутки. Таким образом, в коде:

-(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; 
    } 

Затем в процессе контактирования завершается только прокрутка прокрутки на дочернем прокрутке.

+0

Это своего рода решение я ищу, но, к сожалению, , touchBegan: не вызывается, когда я прокручиваю. – Aladin

0

Хорошо, я наконец-то нашел что-то! Переопределяя обратный вызов -(UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event родительского прокрутки.

`- (UIView *) Трассировка: (CGPoint) пункт withEvent: (UIEvent *) событие {

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

return [super hitTest:point withEvent:event]; 

}`

Смежные вопросы