Я добавляю uipickerview в качестве подзапроса основного вида. Чтобы отклонить pickerview при нажатии на представление backgroud, я добавляю UITapGestureRecognizer к основному виду.Отклонение UIPickerView при нажатии фона
Я использую следующий код для добавления GestureRecognizer для главного вида
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
gestureRecognizer.numberOfTapsRequired=1;
gestureRecognizer.numberOfTouchesRequired=1;
gestureRecognizer.delegate = self;
[self.view addGestureRecognizer:gestureRecognizer];
[gestureRecognizer release];
В методе handleSingleTap я отклоняя pickerview.
Но проблема в том, что handleSingleTap также вызывается, когда я нажимаю внутри pickerview. Чтобы избежать этого я использовал следующий метод делегата от UIGestureRecognizer
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
/*
*If the tap is inside a button return NO, to ensure the button click is detected.
*/
if ([touch.view isKindOfClass:[UIButton class]]){
return FALSE;
}else if([touch.view isKindOfClass:[UIPickerView class]]) {
return FALSE;
}
return TRUE;
}
Он работает на кнопке, но не работает для UIPickerView
. Кто-нибудь может мне с этим помочь?
попробовать isMemberOfClass вместо isKindOfClass ... –
@Ankit не работает ... – PgmFreek