在iOS上的黑色透明背景弹出窗口

时间:2016-02-05 06:53:58

标签: ios swift transparent uiactionsheet

我需要在弹出窗口下方添加黑色半透明视图,使其覆盖背面的所有内容,并在弹出窗口被取消时删除。就像我们在iPad或Actionsheet的popover中所做的那样。

这是我想要实现的形象: enter image description here

如果您看到透明视图位于状态栏和标签栏之上。

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

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中经常使用。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您可以用另一种方法来完成此操作,您需要为弹出窗口创建一个新的viewController,在该viewController中,您需要将背景颜色设置为alpha 0.5黑色,并且还需要在该控件的中心创建一个视图此viewController作为弹出视图。

注意:您需要设置此viewController的某些属性,如下图所示,

enter image description here

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