Ios 具有透明背景的Swift模态视图控制器
我知道这个话题很流行,但我对编程语言有点不感兴趣,事实上我还是不明白我把代码放在哪里了。好吧,我来告诉你整个情况: 我试图使一个模式Swift与普通的有点不同:通过点击一个按钮,ViewController在屏幕上显示(遵循模式类型),但背景是透明的。仅显示带标签的蓝色视图。显示此ViewController时,它的背景是透明的,但一旦完成转换,它将保持黑色背景。已经停用了不透明选项,并测试了一些选项,但没有任何问题 有人能帮我吗 该视频是在模拟器上测试的一个案例() 我从swift开始,我对如何在Xcode中编程仍然很迷茫,我阅读了一个问题的答案,其中有以下代码可以解决这个问题:Ios 具有透明背景的Swift模态视图控制器,ios,swift,swift2,modalviewcontroller,swift2.1,Ios,Swift,Swift2,Modalviewcontroller,Swift2.1,我知道这个话题很流行,但我对编程语言有点不感兴趣,事实上我还是不明白我把代码放在哪里了。好吧,我来告诉你整个情况: 我试图使一个模式Swift与普通的有点不同:通过点击一个按钮,ViewController在屏幕上显示(遵循模式类型),但背景是透明的。仅显示带标签的蓝色视图。显示此ViewController时,它的背景是透明的,但一旦完成转换,它将保持黑色背景。已经停用了不透明选项,并测试了一些选项,但没有任何问题 有人能帮我吗 该视频是在模拟器上测试的一个案例() 我从swift开始,我对
self.presentingViewController.providesPresentationContextTransitionStyle = YES;
self.presentingViewController.definesPresentationContext = YES;
modal.modalPresentationStyle = UIModalPresentationOverCurrentContext;
我应该把代码放在哪里?您可以这样做: 在主视图控制器中:
func showModal() {
let modalViewController = ModalViewController()
modalViewController.modalPresentationStyle = .overCurrentContext
presentViewController(modalViewController, animated: true, completion: nil)
}
class ModalViewController: UIViewController {
override func viewDidLoad() {
view.backgroundColor = UIColor.clearColor()
view.opaque = false
}
}
在模态视图控制器中:
func showModal() {
let modalViewController = ModalViewController()
modalViewController.modalPresentationStyle = .overCurrentContext
presentViewController(modalViewController, animated: true, completion: nil)
}
class ModalViewController: UIViewController {
override func viewDidLoad() {
view.backgroundColor = UIColor.clearColor()
view.opaque = false
}
}
如果您正在使用故事板:
只需将Kind
设置为Present Modally
的故事板序列添加到模态视图控制器,并在此视图控制器上设置以下值:
- 背景=清晰的颜色
- 绘图=取消选中不透明复选框
- 演示=在当前上下文中
正如他在评论中指出的那样:确保segue只对
演示和转换使用默认值。使用当前上下文
进行演示
会使模式变黑,而不是保持透明。请参见:我必须保持按钮和ViewController(模式)之间的间隔?因为没有follows就什么都没有了,下面的功能是黑色背景。请参考:您正在使用故事板吗?请看我编辑的答案。我刚刚试过,它可以工作。请确保segue仅对演示文稿
和转换使用默认值
。使用Current Context
进行Presentation
会使模式变为黑色,而不是保持透明。Swift3-slideMenuController.modalPresentationStyle=.overCurrentContext呈现(slideMenuController,动画:true,完成:nil)非常精确,因为这是一个精细的呈现。在故事板中,需要将演示文稿设置为“过当前上下文”的视图控制器,将视图背景颜色设置为透明(且不勾选不透明)设置为viewController.modalPresentationStyle=。过全屏解决了此问题!