我希望模态表单表格是透明的,这样我就可以看到它后面的UIView
(它是全屏的)。
这个可能吗?将UIView
设置为不透明并使用[UIColor clearColor]
的backgroundColor
并不起作用。
我注意到当我从UIModalPresentationFormSheet
切换到另一种呈现样式时,我的视图背景确实是透明的。
我哪里出错了吗?
我希望模态表单表格是透明的,这样我就可以看到它后面的UIView
(它是全屏的)。
这个可能吗?将UIView
设置为不透明并使用[UIColor clearColor]
的backgroundColor
并不起作用。
我注意到当我从UIModalPresentationFormSheet
切换到另一种呈现样式时,我的视图背景确实是透明的。
我哪里出错了吗?
[modalView.superview setBackgroundcolor:[UIColor clearColor]];
这将使背景视图透明地变暗,但不会用实心灰色覆盖它。
...............................................
我的先前解决办法在iOS 8中不再适用。要让类似的东西在iOS 8上工作还需要很多步骤。因此,我创建了一个不错的可重用解决方案:ModalController https://github.com/koreyhinton/ModalController。
它很容易使用并会自动关闭。
let modal = ModalController()
modal.content = myCustomView
presentViewController(modal, animated: true, completion: nil)
.OverCurrentContext
,我在初始化方法中进行分配。var content = UIView()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = UIColor.clearColor()
content.frame = CGRect(x:0, y:0, width:300, height:300)
content.backgroundColor = UIColor.blackColor()
view.addSubview(content)
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
view.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.7)
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
view.backgroundColor = UIColor.clearColor()
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
content!.center = view.center
}
UIView
,然后将它们作为子视图添加到我的主视图中。我必须先关闭我的表单视图,然后进行此演示。