0

我有一个视图控制器,我在同一个视图控制器中创建了另一个视图并将其添加为子视图。当单击按钮时,将出现子视图并占据屏幕的一半。当用户触摸时如何关闭子视图超级视图(背景中的主视图)?

4

2 回答 2

1

您可以使用手势识别器并在子视图上调用 removeFromSuperview 的超级视图上的单击操作。

在您的 viewDidLoad 添加如下内容:

    UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];

    [singleTap setNumberOfTapsRequired:1];
    [mainView addGestureRecognizer:singleTap];

然后添加函数:

- (void) handleSingleTap: (id) sender
{

    [secondView removeFromSuperView];
}
于 2012-12-11T15:32:41.323 回答
0

为了更好地控制何时删除子视图,您可以像这样覆盖 mainViewController 的响应器方法:

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
    [subview removeFromSuperView];
}

通过这种方式,您实际上可以看到用户在屏幕上点击的位置,并做出相应的响应。

于 2012-12-11T15:55:01.603 回答