Etui testowe jest łatwe do odtworzenia: pobierz przykładową aplikację Apple PhotoScroller i spróbuj ją dostosować, tak aby przesuwanie (zarówno wokół powiększonego obrazu, jak i pomiędzy zdjęciami) działa tylko na dwóch palcach .Paging UIScrollView z przesuwaniem dwoma palcami i powiększeniem
Ustawianie panGestureRecognizer
zarówno dla pagingScrollView
i imageScrollView
do jedynie zaakceptować min & max 2 akcentów wydaje się dobrym miejscem do rozpoczęcia, jednak nie działa. Pozwala przewijać obraz dwoma palcami, bez względu na to, jak działa stronicowanie.
Próbowałem już wielu kombinacji ustawień i niestandardowych rozpoznawania gestów, a ja jestem trochę zakłopotany. Czy niestandardowa podklasa widoków przewijania ma jakiekolwiek zastosowanie, czy też mogę w jakiś sposób manipulować metodami delegatów widoku przewijania, aby to działało?
* EDYCJA: W rzeczywistości nie przewija się dobrze w tej sytuacji. Widok nie przesuwa się gładko, jak jednym dotknięciem ...
AKTUALIZACJA: Nadal borykam się z tym. Byłbym wdzięczny za informacje od kogoś, kto bawił się z UIGestureRecognizer
s i UIScrollView
s.
EDIT:
Ustawienie klasę ImageScrollView
przyjąć tylko dwie poprawki:
- (id)initWithFrame:(CGRect)frame
{
// ...
// Template code
// ...
[self.panGestureRecognizer setMinimumNumberOfTouches:2];
[self.panGestureRecognizer setMaximumNumberOfTouches:2];
}
Ustawianie PhotoViewController
„s pagingScrollView
przyjąć tylko dwie poprawki:
- (void)loadView
{
// ...
// Template code
// ...
[pagingScrollView.panGestureRecognizer setMinimumNumberOfTouches:2];
[pagingScrollView.panGestureRecognizer setMaximumNumberOfTouches:2];
}
Te modyfikacje są wykonane bezpośrednio na PhotoS próbna aplikacja croller. Spodziewam się, że te proste zmiany zadziałają w przypadku interakcji dwóch palców, jednak efekty uboczne są dziwne (jak wyjaśniono powyżej).
Pobieranie. 108mb o_O – 0xSina
@PragmaOnce: Tak, przykro mi linkować tak dużą próbkę. Zawiera wszystkie obrazy w pełnym rozmiarze i kafelki dla widoku przewijania stronicowania. Ładne zdjęcia nie są konieczne, aby pokazać mój punkt widzenia, ale hej ...! – Stuart
UIScrollView ma własne, prywatne detektory gestów. Nawet odsłonięty panGestureRecognizer jest prywatną klasą. 'NSLog (@"% @ ", [pagingScrollView valueForKeyPath: @" gestureRecognizers.class "]);' -> '(UIScrollViewDelayedTouchesBeganGestureRecognizer, UIScrollViewPanGestureRecognizer, UIScrollViewPagingSwipeGestureRecognizer)'. Myślę, że musisz wybrać inny interfejs. –