Если у вас есть несколько распознавателей жестов панорамирования для вида, вы можете пометить определенный с помощью связанного объекта.
Что такое objc_setAssociatedObject () и в каких случаях его следует использовать?
Таким образом, в верхней части вашего файла .m вы должны поместить
static char overviewKey;
, а затем непосредственно перед добавлением UIPanGestureRecognizer
к представлению вы пометите его какstring.
objc_setAssociatedObject(panGesture, &overviewKey, @"pan gesture for drawing", OBJC_ASSOCIATION_RETAIN_NONATOMIC);
[someView addGestureRecognizer:panGesture];
Если вы хотите удалить UIPanGestureRecognizer
, вы должны пройти через все распознаватели жестов в этом представлении, найти тот со строкой и удалить его.
for (UIGestureRecognizer *gesture in someView) {
NSString *gestureTag= objc_getAssociatedObject(gesture, &overviewKey);
if (gestureTag==nil) {
continue;
}
if ([gestureTag isEqual:@"pan gesture for drawing"]) {
[ someView removeGestureRecognizer:gesture ];
}
}