Вы можете выключить и включить .... в моем коде я сделал что-то вроде этого, так как мне нужно было выключить его, когда клавиатура не показывалась, вы можете применить его к вашей ситуации:
вызовите это viewdidload и т.д.:
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self selector:@selector(notifyShowKeyboard:) name:UIKeyboardDidShowNotification object:nil];
[center addObserver:self selector:@selector(notifyHideKeyboard:) name:UIKeyboardWillHideNotification object:nil];
затем создайте два метода:
-(void) notifyShowKeyboard:(NSNotification *)inNotification
{
tap.enabled=true; // turn the gesture on
}
-(void) notifyHideKeyboard:(NSNotification *)inNotification
{
tap.enabled=false; //turn the gesture off so it wont consume the touch event
}
Это отключает кран. Мне пришлось превратить tap в переменную экземпляра и выпустить его в dealloc.