我有一个带滑出菜单的程序。菜单按钮(BarButtonItem)位于正确的位置。当视图控制器加载我正在进行下一步
_menuBarButton.target = self.revealViewController;
_menuBarButton.action = @selector(revealToggle:);
因此,当我点击此按钮时,View Controller向右滑动,我看到另一个View Controller。
所以,我想让主视图控制器在滑出时模糊。我有一个代码如何模糊,但我无法实现此代码,因为当我点击bat按钮时,它会运行revealToggle:selector。
我试过了: 1.设置条形按钮的操作。首先模糊视图控制器:
- (IBAction)menuBarButtonTapped:(UIBarButtonItem *)sender {
[self setBlurEffect];
_menuBarButton.target = self.revealViewController;
_menuBarButton.action = @selector(revealToggle:);
[self.menuBarButton.target performSelector:@selector(revealToggle:)];
}
但是应用程序崩溃了"无法识别的选择器" (这个问题的解决方案没有 也帮忙。)
那么,你能帮我解决这个问题吗?
P.S。如果您为主视图控制器提出除模糊之外的任何其他效果,我会很高兴。 P.P.S.很抱歉有很多错误。
答案 0 :(得分:0)
我找到了一个很好的答案。我没有使用几个ViewControllers来实现菜单面板。 现在我正在使用另一个UIView调用menuPanel。它包含tableView(UITableView)和blurView(UIView)。第二个是第一个。 您可以将此视图模糊为:
使用下一个方法的代码。
(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.
}
在某些视图中,你想要模糊(或任何其他效果)
毕竟我将tableView和blurView设置为menuPanelView,固定在menuPanel的所有边上,距离为0。
我做的最后一件事我正在用动画改变menuPanelView的位置:
[self.menuPanelView setFrame:self.visibleTableViewFramePosition];
[UIView animateWithDuration:0.8
animations:^{
[self.menuPanelView setFrame:self.invisibleTableViewFramePosition];
} completion:nil];
其中invisibleTableViewFramePosition
是CGRect变量包含menuPanelView的位置,当它必须是不可见的时。您还需要创建visibleTableViewFramePosition。
这就是全部。希望它可能对某人有帮助=)