从弹出的IOS7中删除UIview表单

时间:2014-04-22 07:20:42

标签: ios uiview dismiss

在我的应用程序中,当用户点击按钮时,我将UIView显示为弹出窗口,问题是当点击应用程序中的某处时,请不要忽略该问题,请告诉我如何解雇UIView弹出窗口。

以下是用户弹出窗口的代码。

- (void) showPopView
{
   self.popview.alpha = 1;
   [self.popview setFrame:CGRectMake(15, 100, 300, 300)];
   //[self dismissPopoverAnimated:NO];
}

弹出按钮代码。

- (IBAction)click:(id)sender {
   [self showPopView1];
}

viewDidLoad中,我使用了此代码。

self.popview.alpha = 0;

以上代码我用来显示UIView作为弹出窗口,请告诉用户在外面点击时如何关闭弹出窗口。

感谢。

3 个答案:

答案 0 :(得分:1)

在弹出视图的后台添加自定义按钮(UIButton)以隐藏弹出窗口。由于是自定义按钮,用户可以看到背景视图。确保按钮占据整个屏幕。此外,当您显示弹出视图显示按钮时,当用户隐藏弹出视图时,也会隐藏按钮,以便用户可以访问所有区域。这是最简单的方法。其他选项包括点击手势或检查触摸,但背景中的自定义按钮可以最大限度地降低风险。

答案 1 :(得分:1)

我要做的是在弹出窗口后面添加一个可触摸的叠加层。

在你的.h

@interface YourController : UIViewController{
    UIView *overlay;
}
在您的视图中

加载了

overlay = [[UIView alloc] initWithFrame:self.view.frame];
overlay.bakcgroundColor = [UIColor clearColor];
UITapGestureRecognizer *singleFingerTap = 
[[UITapGestureRecognizer alloc] initWithTarget:self 
                                      action:@selector(handleSingleTap)];
[overlay addGestureRecognizer:singleFingerTap];

然后你的方法看起来像:

- (void) showPopView
{
   [self.view addSubview:overlay];
   self.popview.alpha = 1;
   [self.popview setFrame:CGRectMake(15, 100, 300, 300)];
   //[self dismissPopoverAnimated:NO];
}

- (void)handleSingleTap{
    [overlay removeFromSuperview];
    self.popview.alpha = 0;
    [self.popview setFrame:CGRectZero];
}

答案 2 :(得分:0)

我确实使用UIButton创建了一个演示,它正在运行,请查看下面的内容 -

- (void)viewDidLoad
{
 [super viewDidLoad];
 backgroundButton = [[UIButton alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height)];

 [backgroundButton addTarget:self action:@selector(tapDetected) forControlEvents:UIControlEventTouchUpInside];
}

-(void)tapDetected
{
 [backgroundButton removeFromSuperview];
 [tempView removeFromSuperview];
}

-(void)showPopup /* on button click I created popup view as you already had */
{
  [self.view addSubview:backgroundButton]; //Adding button to self.view

 tempView = [[UIView alloc] initWithFrame:CGRectMake(15, 100, 300, 300)];
 [tempView setBackgroundColor:[UIColor redColor]];

 [backgroundButton addSubview:tempView];  //Adding popup view to button.
 [tempView setAlpha:1];
}