覆盖视图控制器的视图,包括导航栏,但是当我添加子视图时它消失了
Posted
技术标签:
【中文标题】覆盖视图控制器的视图,包括导航栏,但是当我添加子视图时它消失了【英文标题】:View that covers viewController including navigation bar, but when I add subview it disappears 【发布时间】:2016-09-08 16:41:19 【问题描述】: let appDelegate = (UIApplication.sharedApplication().delegate! as! AppDelegate)
let backgrView = UIView(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.size.width, UIScreen.mainScreen().bounds.size.height))
backgrView.backgroundColor = UIColor.blackColor()
backgrView.alpha = 0.6
appDelegate.window!.addSubview(backgrView)
上面的代码允许我创建一个覆盖整个屏幕的视图,甚至是导航控制器
但是当我在backgrView
下面添加代码时消失了:
let sampleview = UIView(frame: CGRectMake(0, 0, 10.0, 10.0))
sampleview.addSubview(backgrView)
如何向backgrView
添加视图??
【问题讨论】:
我建议使用View Debugger 看看你的backgrView
是否存在,如果存在,它是否有一些奇怪的frame
值,被另一个视图挡住了,或者其他什么。如果你暂时给这个视图一个唯一的tag
数值(或一些自定义的UIView
子类),这将帮助你更容易地识别它。
【参考方案1】:
Sampleview 甚至没有添加到视图层次结构中,因此您可以添加 backgrView。 试试这个:
let sampleview = UIView(frame: CGRectMake(0, 0, 10.0, 10.0))
backgrView.addSubview(sampleview)
或者这个:
let appDelegate = (UIApplication.sharedApplication().delegate! as! AppDelegate)
let backgrView = UIView(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.size.width, UIScreen.mainScreen().bounds.size.height))
backgrView.backgroundColor = UIColor.blackColor()
backgrView.alpha = 0.6
appDelegate.window!.rootViewController!.view.addSubview(backgrView)
let sampleview = UIView(frame: CGRectMake(0, 0, 10.0, 10.0))
backgrView.addSubview(sampleview)
【讨论】:
【参考方案2】:你的代码是倒退的:
sampleview.addSubview(backgrView)
你的意思是:
backgrView.addSubview(sampleview)
【讨论】:
以上是关于覆盖视图控制器的视图,包括导航栏,但是当我添加子视图时它消失了的主要内容,如果未能解决你的问题,请参考以下文章