Работя върху приложение, при което повечето от жестовете с докосване ще бъдат жестове за панорамиране (но не използвам разпознавател на жестове за панорамиране). Използвам UIGestureRecognizerDelegate
и използвам touchesBegan
, touchesMoved
, touchesEnded
и touchesCancelled
. Има обаче няколко точки на екрана, където, ако там започне панорама, искам вместо това да го разпозная като събитие с докосване. Мога да направя това, като просто разпозная местоположението в touchesBegan. Въпросът ми е, мога ли да разпределя докосването в този момент, за да предотвратя продължаването на панорамата? Ако тиган започва от това място на екрана, гарантирано е, че няма да бъде наистина замислен като тиган от потребителя. Надявам се, че това има смисъл.
РЕДАКТИРАНЕ: Разбрах, че допълнителните разходи за управление на кран дори за точка, която трябва да се игнорира, са незначителни, така че мисля, че просто ще направя това. Ще запазя въпроса тук обаче, в случай че има начин да спрете проследяването на жеста.
Имам нужда и от предложение как да се справя със следната ситуация.
Да предположим, че потребителят стартира панорама (не в току-що описаната зона, а другаде, където наистина е предвидено да бъде панорама), и докато панорамата продължава, друга панорама се стартира другаде на екрана. Как да разпозная тази ситуация?
РЕДАКТИРАНЕ: Сега тествам дали този код ще реши този проблем:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
Редактиране: ARC забранява изричния dealloc, така че сега преразглеждам въпроса си към по-общ за това какво, ако изобщо мога да направя, за да потисна по-нататъшни действия. Или просто трябва да се справя с това?