1

我正在尝试构建我的第一个 iphone 应用程序,请帮我解决这个问题!我将滚动视图作为控制器视图的子视图,并且标签、按钮、文本字段和表格视图等一些控件已作为此滚动视图的子视图放置。现在,当我点击按钮时,我的表格视图变得可见,但是在表格视图之外点击时我无法关闭此表格视图(我的意思是在滚动视图上点击时)。

下面是我的代码片段,我试图关闭我的表格视图,请帮助我!

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *aTouch = [touches anyObject];
    if (aTouch.tapCount == 1)
    {
        CGPoint p = [aTouch locationInView:self.scrollview];
        if (!CGRectContainsPoint(myTableView.frame, p))
        {
            myTableView.hidden = YES;
        }
    }
}
4

1 回答 1

0

你把这段代码放在 ViewController.m 中,这样当你点击 self.view 时它就处于活动状态。你的 scrollView 覆盖你的 self.view,这样操作就不会被激活。

子类化您的 scrollView 并在您的 IB 中选择类型,在 YourScrollView.m 中,添加以下代码:

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *aTouch = [touches anyObject];
    if (aTouch.tapCount == 1)
    {
        CGPoint p = [aTouch locationInView:self];
        for (UIView *aView in self.subviews) {
            if (([aView isKindOfClass:[UITableView class]])&&(!CGRectContainsPoint(aView.frame, p)))
            {
                [aView setHidden:YES];
            }

        }
    }
}
于 2013-03-17T16:05:45.703 回答