在框架外部轻敲时移除视图

时间:2013-12-24 12:32:30

标签: ios iphone ipad uiview frame

我正在使用复杂的视图层次结构,我希望当其中一个子视图被挖掘到其边界之外时,它应该被删除。我尝试使用带有水龙头手势的透明视图,但它不允许我使用上面提到的子视图。

我该如何实现?

4 个答案:

答案 0 :(得分:1)

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

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

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

3)在全屏透明按钮

上添加子视图

现在,只要您想显示subView,就会显示此容器视图。 每当用户点击子视图外,您的按钮点击操作方法将被调用。在此方法中,您可以使用removeFromSuperView

删除整个Container视图

答案 1 :(得分:0)

[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.  

答案 2 :(得分:0)

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

@protocol ViewControllerDelegate <NSObject>

-(void)dismissPopupViewController;


@end

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

答案 3 :(得分:0)

请使用UITouch委托方法:

- touchesBegan:withEvent:

- touchesMoved:withEvent:

- touchesEnded:withEvent:

- touchesCancelled:withEvent:

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