我使用的股票UISplitViewController有开箱即用的Master和Detail视图控制器.在故事板中,我将一个UIImageView添加到Detail控制器中,以便有效地用单个图像填充视图。
在Master控制器中,我使用了以下方法来模糊该控制器的背景:
// In viewDidLoad
self.tableView.backgroundColor = [UIColor clearColor];
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
UIVisualEffectView *visualEffectView = [[UIVisualEffectView alloc]
initWithEffect:blurEffect];
self.tableView.backgroundView = visualEffectView;
self.tableView.separatorEffect = [UIVibrancyEffect effectForBlurEffect:blurEffect];当Master控制器出现在Detail控制器上方时,请注意Master控制器的边缘是如何围绕内部边缘形成暗阴影的。
这些“阴影”怎么才能被移除,而变成一个统一的模糊?

更多细节

调试IB中的视图层次结构会显示(私有的?)视图名为_UIPopoverSlidingChromeView。它有一个嵌入的灰色框架,这无疑是造成不均匀模糊外观的原因。
完全禁用模糊视图,然后离开self.tableview.backgroundColor = [UIColor clearColor]就会显示_UIPopoverSlidingChromeView的灰色框架。

关于在使用_UIPopoverSlidingChromeView时如何避免UISplitViewController的思考
发布于 2016-05-28 20:11:08
问题是它是一个私有类,您无法对它进行测试。
幸运的是,_UIPopoverSlidingChromeView是公开的UIPopoverBackgroundView的子类(因为在常规的popover实现中,流客户端可以通过提供一个子类UIPopoverBackgroundView__来自定义popover背景铬)。
for (UIView *subview in self.viewController.view.superview.superview.subviews) {
if ([subview isKindOfClass:[UIPopoverBackgroundView class]]) {
subview.alpha = 0.0;
}
}这应该隐藏_UIPopoverSlidingChromeView。
发布于 2014-12-14 15:30:04
//как убрать дурацкий прямоугольник при прозрачном фоне maser окна в режиме UISplitViewControllerDisplayModeOverlay
CALayer* v_1 = self.view.superview.superview.superview.layer.sublayers[0];
CALayer* v_2=v_1.sublayers[0];
v_2.borderWidth=0;https://stackoverflow.com/questions/26164982
复制相似问题