【问题标题】:Swift Modal View Controller with transparent background [duplicate]具有透明背景的 Swift 模态视图控制器 [重复]
【发布时间】:2016-01-11 07:49:57
【问题描述】:

我知道这个话题很流行,但我对编程语言有点挑剔,事实是我仍然不明白我把代码放在哪里。好吧,我会告诉整个案子:

我正在尝试使模态 Swift 与普通的有点不同:通过单击一个按钮,ViewController 会显示在屏幕上(按照模态类型),但具有透明背景。只会显示带有标签的蓝色视图。当这个 ViewController 出现时,它是透明背景,但一旦完成过渡,它就会保持黑色背景。已停用 opaque 选项,并测试了一些选项,但没有进行此故障排除。

有人可以帮助我吗?

该视频是在模拟器中对案例 (https://www.youtube.com/watch?v=wT8Uwmq9yqY) 进行的测试。

我从 swift 开始,但我仍然对如何在 Xcode 中编程感到迷茫,我阅读了一个问题的答案,其中包含以下代码来解决这个问题:

self.presentingViewController.providesPresentationContextTransitionStyle = YES;
self.presentingViewController.definesPresentationContext = YES;
modal.modalPresentationStyle = UIModalPresentationOverCurrentContext;

我把这段代码放在哪里?

【问题讨论】:

标签: ios swift swift2 modalviewcontroller swift2.1


【解决方案1】:

你可以这样做:

在您的主视图控制器中:

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 的 Storyboard Segue 添加到您的模态视图控制器,并在此视图控制器上设置以下值:

  • 背景 = 清除颜色
  • 绘图 = 取消选中不透明复选框
  • 演示 = 过电流上下文

正如Crashalot 在他的评论中指出的那样:确保segue 只对PresentationTransition 使用Default。将Current Context 用于Presentation 会使模态变为黑色而不是保持透明。

【讨论】:

  • 您在使用情节提要吗?请参阅我编辑的答案。我刚试了一下,效果很好
  • 确保 segue 仅对 PresentationTransition 使用 Default。将Current Context 用于Presentation 会使模态变为黑色而不是保持透明。
  • Swift3 - slideMenuController.modalPresentationStyle = .overCurrentContext present(slideMenuController, animated: true, completion: nil)
  • 只是为了非常准确,因为这是一个繁琐的。在情节提要中,它的 View 控制器 需要将 Presentation 设置为“Over Current Context”,view 背景颜色为透明(并且取消勾选不透明)
  • 设置 viewController.modalPresentationStyle = .overFullScreen 解决了!
猜你喜欢
  • 2015-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多