Robię niektóre niestandardowe rysowanie UITableViewCell, które mam podklasy. Tam jest kontrolka OpenGL ES 2.0, która wymaga interakcji z użytkownikiem, aby działać ... teraz, jeśli zacznę przeciągać poziomo, kontrolka reaguje, ale gdy tylko pójdę w kierunku pionowym, zacznie przesuwać widok tabeli. Jak zatrzymać tę interakcję przed przechodzeniem do UITableView i ograniczyć ją do własnego UIView w UITableViewCell?
2 odpowiedzi
Możesz spróbować podklasy UITableView i zastąpić następujące metody
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
// if user tapped on your custom view, disable scroll
self.scrollEnabled = NO;
// end if
[super touchesBegan:touches withEvent:event];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
self.scrollEnabled = YES;
[super touchesEnded:touches withEvent:event];
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
self.scrollEnabled = YES;
[super touchesCancelled:touches withEvent:event];
}
Nie sądzę, że możesz zapobiec interakcji użytkownika w UITableView, ponieważ wpłynęłoby to na wszystkie podwidoki.
Spróbuję wysłać interakcję UITableView do metody, która ma z niej korzystać.
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
[MyClass myScrollDidStartMethod];
}
Lub użyj - (void)scrollViewDidScroll:(UIScrollView *)sender, aby móc pracować nad przesunięciem treści nadawcy, aby uzyskać kierunek przewijania (patrz tego posta, aby uzyskać więcej informacji na ten temat)
Podobne pytania
Powiązane pytania
Nowe pytania
ios
iOS to mobilny system operacyjny działający na urządzeniach Apple iPhone, iPod touch i iPad. Użyj tego tagu [ios] w przypadku pytań związanych z programowaniem na platformie iOS. Użyj powiązanych tagów [objective-c] i [swift] w przypadku problemów specyficznych dla tych języków programowania.