弹出 iOS 中的黑色透明背景

Black transparent backdrop in iOS on popup

我需要在弹出窗口下方添加黑色半透明视图,使其覆盖背面的所有内容,并在关闭弹出窗口时将其删除。就像我们在 iPad 或 Actionsheet.

的弹出窗口中所做的一样

这是我想要实现的形象:

如果你看到透明视图也在状态栏和标签栏上方。

这是我为实现它而编写的代码:

bgView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].applicationFrame.size.width ,[UIScreen mainScreen].applicationFrame.size.height)];
bgView.center = self.view.center;
bgView.backgroundColor = [UIColor blackColor];
bgView.alpha = 0.70;  

-(void)showDatePicker:(InvoiceDateCell *)cell WithDatePickerView:(DatePicker *)dateView{ [self.view insertSubview:bgView belowSubview:dateView]; }

但是,这不包括状态栏,有时甚至不包括导航栏。

任何指针,这是如何在 iOS 中实现的。它在 iOS.

中使用非常频繁

Swift 4 / Swift 5

let containerView = transitionContext.containerView

// Backdrop
dimmedView.backgroundColor = .black
dimmedView.alpha = 0.0
containerView.addSubview(dimmedView)
dimmedView.frame = containerView.bounds

// Back animation
self.dimmedView.alpha = 0.8

你可以用另一种方式来做,你需要为弹出窗口创建一个新的viewController,在这个viewController中你需要将背景颜色设置为黑色,alpha 0.5,并且您需要在此 viewController 的中心创建一个视图作为弹出视图。

注意:你需要设置一些属性这个viewController如下图所示,

现在您需要在需要弹出窗口时显示此视图控制器,并在需要隐藏弹出窗口时关闭