当用户触摸 uiscrollview 时隐藏表格

Posted

技术标签:

【中文标题】当用户触摸 uiscrollview 时隐藏表格【英文标题】:Hiding the table when the user touches on uiscrollview 【发布时间】:2012-11-27 17:07:19 【问题描述】:

我在 UIview 中添加了 UIScrollView,并在滚动视图中添加了一个按钮,当我按下该按钮时,它会在 uiscrollview 中生成表格。现在我的问题是,当用户触摸内部的任何位置时,我想删除该表格scrollview。我尝试使用 touches started 方法,但对于滚动视图,它不起作用。如果有人知道,请帮助我

提前致谢

【问题讨论】:

【参考方案1】:

如果用户点击按钮,滚动视图将不会接收到触摸。相反,请创建如下所示的方法并将其添加为按钮的目标。

- (void)hideTable 
    [yourTableView setHidden:YES];

当您创建按钮时,或者在viewDidLoad 中,如果它是从 nib 加载的,则将该方法添加为按钮的目标:

[yourButton addTarget:self action:@selector(hideTable) 
    forControlEvents:UIControlEventTouchUpInside];

【讨论】:

【参考方案2】:

touchesBegan 方法将不起作用,除非您继承。

UITapGestureRecognizer 是适合您的解决方案。您可以按如下方式使用它。

...

UITapGestureRecognizer *tapRecognizer=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapScrollView)];
[scrollView addRecognizer:tapRecognizer];
[tapRecognizer release];  //If not ARC

-(void)didTapScrollView

    [tableView removeFromSuperview];

【讨论】:

以上是关于当用户触摸 uiscrollview 时隐藏表格的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 触摸和监听事件

当用户放大 UIScrollView 时如何隐藏某些内容,然后在缩小时显示它?

UIScrollView 触摸消散到父级

调整 UIView 的大小以便 UIScrollView 工作

ios在两个uiscrollview之间移动触摸事件

自动滚动时 UIScrollView 触摸不起作用