Swift 具有透明背景的模态视图控制器
Swift Modal View Controller with transparent background
我知道这个话题很受欢迎,但我在编程语言方面遇到了一些问题,事实是我仍然不明白我把代码放在哪里。好吧,我来说说整个案子:
我正在尝试制作一个模态 Swift 与正常模式略有不同:通过单击一个按钮,屏幕上会显示 ViewController(跟随模态类型),但是透明背景。只会显示带标签的蓝色视图。当这个 ViewController 呈现时,它是透明背景,但是一旦它完成转换,它就会保持黑色背景。已经停用不透明选项,并测试了一些选项,但没有解决此问题。
有人可以帮我吗?
该视频是在模拟器上测试的案例(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
}
}
如果您正在使用故事板:
只需将 Kind
设置为 Present Modally
的 Storyboard Segue 添加到模态视图控制器,并在此视图控制器上设置以下值:
- 背景 = 清晰的颜色
- 绘图 = 取消选中不透明复选框
- 演示文稿 = 过电流上下文
正如 Crashalot 在他的评论中指出的那样:确保 segue 仅对 Presentation
和 [=16= 使用 Default
].将 Current Context
用于 Presentation
会使模态变黑而不是保持透明。
我知道这个话题很受欢迎,但我在编程语言方面遇到了一些问题,事实是我仍然不明白我把代码放在哪里。好吧,我来说说整个案子:
我正在尝试制作一个模态 Swift 与正常模式略有不同:通过单击一个按钮,屏幕上会显示 ViewController(跟随模态类型),但是透明背景。只会显示带标签的蓝色视图。当这个 ViewController 呈现时,它是透明背景,但是一旦它完成转换,它就会保持黑色背景。已经停用不透明选项,并测试了一些选项,但没有解决此问题。
有人可以帮我吗?
该视频是在模拟器上测试的案例(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
}
}
如果您正在使用故事板:
只需将 Kind
设置为 Present Modally
的 Storyboard Segue 添加到模态视图控制器,并在此视图控制器上设置以下值:
- 背景 = 清晰的颜色
- 绘图 = 取消选中不透明复选框
- 演示文稿 = 过电流上下文
正如 Crashalot 在他的评论中指出的那样:确保 segue 仅对 Presentation
和 [=16= 使用 Default
].将 Current Context
用于 Presentation
会使模态变黑而不是保持透明。