Ios 在视图框架外轻敲时删除视图

Ios 在视图框架外轻敲时删除视图,ios,iphone,ipad,uiview,frame,Ios,Iphone,Ipad,Uiview,Frame,我使用的是一个复杂的视图层次结构,我希望当一个子视图在其边界外被点击时,它应该被删除。我已经尝试使用带有点击手势的透明视图,但它不允许我使用上述子视图 如何实现这一点?我将在子控制器上使用委托,如 [yourView removeFromSuperview]; /// if you want to show that view again you need to allocate it again. (or) [yourView setHidden:YES]; /// if you w

我使用的是一个复杂的视图层次结构,我希望当一个子视图在其边界外被点击时,它应该被删除。我已经尝试使用带有点击手势的透明视图,但它不允许我使用上述子视图


如何实现这一点?

我将在子控制器上使用委托,如

[yourView removeFromSuperview]; /// if you want to show that view again you need to allocate it again.  
  (or)

[yourView setHidden:YES]; /// if you want to show that view again Just set it as NO.  
@protocol ViewControllerDelegate <NSObject>

-(void)dismissPopupViewController;


@end
@protocol ViewControllerDelegate
-(作废)解除PopupViewController;
@结束

并将其设置为父控制器,这将带来子控制器,此方法将关闭子控制器。

创建如下层次结构(为此创建XIB):

1) 创建一个全屏大小的透明容器视图,并保留对它的引用

2) 添加一个全屏大小的透明UIButton并设置其操作方法

3) 在全屏透明按钮上添加子视图

现在,只要您想显示子视图,就可以显示这个容器视图。
每当用户在子视图外点击时,就会调用按钮点击时的操作方法。在此方法中,您可以使用removeFromSuperView删除整个容器视图。请使用UITouch委托方法:

–触摸开始:使用事件:

–触摸移动:带事件:

–touchesEnded:withEvent:

–触摸已取消:带有事件:


获取子视图的位置并进行相应的管理。

我使用点击手势而不是按钮,并使用点击点来比较它是否位于特定视图中。