繁体   English   中英

当用户在iPhone中触摸其子视图时,如何实现关闭子视图?

[英]How to implement close a subview when user touched its superview in iphone?

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

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

在您的viewDidLoad中添加以下内容:

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

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

然后添加功能:

- (void) handleSingleTap: (id) sender
{

    [secondView removeFromSuperView];
}

为了更好地控制何时要删除子视图,可以重写mainViewController的responseer方法,如下所示:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM