【问题标题】:How do I make a view controller be presented with partial transparency?如何使视图控制器呈现部分透明度?
【发布时间】:2015-04-06 11:18:04
【问题描述】:

下面的代码显示了一个弹出窗口。弹出窗口有一个黑色的主视图和一个白色的子视图,该子视图有一些标签、按钮和用户与之交互的东西。我希望周围的黑色部分是部分透明的(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)
    }
  • 我只在属性检查器中更改了不透明度。

【问题讨论】:

    标签: ios xcode swift


    【解决方案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
    【解决方案2】:

    我认为按照我尝试的方式是不可能的。 Rajeev 有一个好主意,但最好的(也是苹果评论家可能会认可的)是使用popovers。 This tutorialthis tutorial 很有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-25
      • 2016-01-21
      • 2015-02-24
      • 1970-01-01
      • 2014-08-01
      • 1970-01-01
      • 2012-11-29
      • 2015-02-20
      相关资源
      最近更新 更多