我知道这个话题很受欢迎,但我在编程语言中遇到了一些问题,事实是我仍然不明白我把代码放在哪里。好吧,我就来说说整个案子:
我正在尝试制作一个与正常情况稍有不同的模态 Swift:通过单击按钮,ViewController 将显示在屏幕上(遵循模态类型),但具有透明背景。仅显示带标签的蓝色视图。当此 ViewController 呈现时,它具有透明背景,但一旦完成转换,它将保持黑色背景。已经停用了不透明选项,并测试了一些选项,但没有解决此问题。
有人可以帮助我吗?
该视频是在模拟器中对案例进行的测试(https://www.youtube.com/watch?v=wT8Uwmq9yqY https://www.youtube.com/watch?v=wT8Uwmq9yqY).
我从 swift 开始,但我仍然对如何在 Xcode 中编程感到非常迷茫,我读到了一个问题的答案,其中包含以下代码来解决这个问题:
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
}
}
如果您正在使用故事板:
只需添加一个 Storyboard Segue 即可Kind
set to Present Modally
到您的模态视图控制器并在此视图控制器上设置以下值:
- 背景 = 清晰的颜色
- 绘图 = 取消选中不透明复选框
- 演示 = 当前上下文
As 克拉沙洛特 https://stackoverflow.com/users/144088/crashalot他在评论中指出:确保segue只使用Default
对彼此而言Presentation
and Transition
. Using Current Context
for Presentation
使模态变为黑色而不是保持透明。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)