2016-02-16 5 views
1

Я создал один проспект для регистрации. Я также использую tableview для раскрывающегося списка (Мужской/Женский) и нажмите «Жест» на scrollview, чтобы скрыть все входные представления, потому что touchhesBegan метод доза не вызывает. всякий раз, когда я нажимаю на ячейку таблицы, он не будет вызывать метод didselect, но рассматривайте его как tap на scrollview.Как отключить жестов касания для подзаголовка прокрутки?

enter image description here

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)]; 
tap.numberOfTapsRequired=1; 
[_scrollview_out addGestureRecognizer:tap]; 

Метод: -

-(void)dismissKeyboard 
{ 
    [_txt_name resignFirstResponder]; 
    [_txt_mname resignFirstResponder]; 
    [_txt_surname resignFirstResponder]; 
    [_txt_gender resignFirstResponder]; 
    [_txt_dob resignFirstResponder]; 
    _tbl_view_gender.hidden=true; 
    _txt_dob.hidden=false; 
    _lbl_dob.hidden=false; 

} 

Просмотр таблицы didSelect Метод: -

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    [_scrollview_out endEditing:YES]; 

    str2=[gender_arr objectAtIndex:indexPath.row]; 
    _txt_gender.text=str2; 


    _tbl_view_gender.hidden=true; 
    _txt_dob.hidden=false; 
    _lbl_dob.hidden=false; 
} 
+0

Я хочу, чтобы отключить Tap Жест для только части Tableview. Или любое другое необязательное решение. –

+0

@Hemang Вы хотите сказать, что мне нужно создать страницу регистрации в виде таблицы? –

ответ

1
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
    if ([touch.view isDescendantOfView:Your Tableview]]) { 

     // Don't let selections of auto-complete entries fire the 
     // gesture recognizer 
     return NO; 
    } 

    return YES; 
} 
+0

Это не то, чего я хочу. Спасибо, что поделились. –

+0

вы также можете использовать «tapGesture.cancelsTouchesInView = NO» –

+0

Это не работает для UITableview или UITableviewCell. Прикоснитесь к табло (sub view of scrollview) в качестве касания TapGesture. –

1

для меня есть два варианта:

1: добавить tableview в scrollView «s superView

2: перезапись метод подкласса UIScrollView,:

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
     //if the touch point in the tableview. 
     //return NO; 
     //else 
     //return YES; 
} 
Смежные вопросы