Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何在视图控制器滑出时产生模糊效果_Objective C_Ios7 - Fatal编程技术网

Objective c 如何在视图控制器滑出时产生模糊效果

Objective c 如何在视图控制器滑出时产生模糊效果,objective-c,ios7,Objective C,Ios7,我有一个带滑出菜单的程序。菜单按钮BarbuttonItem位于正确的位置。当视图控制器加载时,我将执行下一步操作 _menuBarButton.target = self.revealViewController; _menuBarButton.action = @selector(revealToggle:); 因此,当我单击此按钮时,视图控制器向右滑出,我看到另一个视图控制器 所以,我想在主视图控制器滑出时使其模糊。我有一个代码来实现模糊,但是我不能实现这个代码,因为当我点击bat按钮时

我有一个带滑出菜单的程序。菜单按钮BarbuttonItem位于正确的位置。当视图控制器加载时,我将执行下一步操作

_menuBarButton.target = self.revealViewController;
_menuBarButton.action = @selector(revealToggle:);
因此,当我单击此按钮时,视图控制器向右滑出,我看到另一个视图控制器

所以,我想在主视图控制器滑出时使其模糊。我有一个代码来实现模糊,但是我不能实现这个代码,因为当我点击bat按钮时,它会运行Revealtogle:selector

我试过: 1.设置工具栏按钮的操作。首先,模糊视图控制器:

- (IBAction)menuBarButtonTapped:(UIBarButtonItem *)sender {
    [self setBlurEffect];
    _menuBarButton.target = self.revealViewController;
    _menuBarButton.action = @selector(revealToggle:);
    [self.menuBarButton.target performSelector:@selector(revealToggle:)];
}
但应用程序崩溃,无法识别选择器。此问题的解决方案不起作用 我也帮不上忙

我想使用willDisapear方法,但它没有运行,因为主视图控制器没有disapear。它只是滑出来的。 那么,你能帮我解决这个问题吗

另外,如果您为主视图控制器提供除模糊之外的任何其他效果,我将非常高兴。
P.P.S.对问题中的许多错误表示抱歉。

我找到了一个很好的答案。我不使用几个视图控制器来实现菜单面板。 现在我正在使用另一个名为menuPanel的UIView。它包含tableViewUITableView和blurViewUIView。第二个在第一个下面。 您可以通过以下方式模糊此视图:

从代码中使用下一个方法

     (void) setBlurEffect {// Add blur view

    CGRect boundsView = self.someView.bounds;
UIVisualEffectView *tableViewVisualEffect = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleExtraLight]];

    self.tableViewVisualEffect.frame = boundsView;
    self.tableViewVisualEffect.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    self.tableViewVisualEffect.backgroundColor = [UIColor clearColor];

    [UIView transitionWithView:self.view
                      duration:0.3
                       options:UIViewAnimationOptionTransitionCrossDissolve
                    animations: ^ {
                        [self.someView addSubview:self.tableViewVisualEffect];
                    }
                    completion: nil ];


    // Here you can add visual effects to any UIView control.
    // Replace custom view with navigation bar in above code to add effects to custom view.
}
其中someView是您要执行的视图或任何其他效果

从具有视觉效果视图的故事板。我选择了 毕竟,我已经将tableView和blurView设置为menuPanelView,并以0距离固定在menuPanel的所有边上

我做的最后一件事是用动画改变menuPanelView的位置:

        [self.menuPanelView setFrame:self.visibleTableViewFramePosition];

         [UIView animateWithDuration:0.8
                          animations:^{
                     [self.menuPanelView setFrame:self.invisibleTableViewFramePosition];
         } completion:nil];
其中invisibleTableViewFramePosition是CGRect变量,该变量包含menuPanelView在必须不可见时的位置。您还需要创建visibleTableViewFramePosition

就这些。希望它能对某人有所帮助=