如何使视图控制器具有部分透明度?

时间:2015-02-06 10:29:33

标签: ios xcode swift

我的下面的代码显示了一个弹出窗口。弹出窗口有一个黑色的主视图和一个白色的子视图,该子视图有一些标签,按钮和用户交互的东西。我希望周围的黑色部分是部分透明的(alpha = 0.7),但其中的白色部分是完全不透明的(alpha = 1.0)。我无法实现这一点,由于某种原因,父级的值会覆盖其子值,并且我获得完全不透明的视图,或者标签和按钮部分透明的视图。

我该怎么办?

显示弹出窗口的代码:

@IBAction func getLocation(sender: AnyObject) {
    var p = PopupViewConrtoller(list: list, callback)
    var x = UINib(nibName: "PickerPopup", bundle: nil).instantiateWithOwner(p, options: nil)
    self.presentViewController(p, animated: false, completion: nil)
    }
  • 我仅在属性检查器中更改了不透明度。

2 个答案:

答案 0 :(得分:1)

看起来,在不影响添加到主视图的子视图的情况下,无法使主视图部分透明。

你能做的是,

-set mainView background color as clear color
-add one more subview1 to mainView with size same as main view and set the background color as blackColor with desired transparency(alpha=0.7 as in required)
-add your subview2(which is having labels, buttons etc.) to mainView but above subview1 in layer order.

我希望它可以帮助你实现你想要的。

答案 1 :(得分:0)

我认为按照我的方式去做是不可能的。 Rajeev有一个好主意,但最好的(也是苹果评论家可能认可的那个)正在使用popoverThis tutorialthis tutorial很有帮助。