【问题标题】:How to Disable Tap Gesture for Scroll view's sub view?如何禁用滚动视图子视图的点击手势?
【发布时间】:2016-02-16 09:39:19
【问题描述】:

我创建了一个用于注册的滚动视图。我还使用 tableview 进行下拉(男性/女性)并在滚动视图上点击 Gesture 以隐藏所有输入视图,因为 touchesBegan 方法不会调用。每当我点击表格视图单元格时,它不会调用 didselect 方法,而是认为是点击滚动视图。

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;
}

【问题讨论】:

  • 我想为部分表格视图禁用点击手势。或任何其他可选解决方案。
  • @Hemang 你的意思是我必须在表格视图中创建注册页面吗?

标签: ios uitableview uiscrollview uitapgesturerecognizer


【解决方案1】:

对我来说有两种选择:

1:在scrollViewsuperView中添加tableview

2:子类UIScrollView,覆盖方法:

 -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{
       //if the touch point in the tableview.
       //return NO;
       //else
       //return YES;
}

【讨论】:

    【解决方案2】:
    - (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;
    }
    

    【讨论】:

    • 这不是我想要的。谢谢分享。
    • 你也可以使用“tapGesture.cancelsTouchesInView = NO”
    • 它不适用于 UITableview 或 UITableviewCell。触摸表格视图(滚动视图的子视图)视为 TapGesture 的触摸。
    猜你喜欢
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    相关资源
    最近更新 更多