以下是创建我的自定义弹出窗口的代码:
extension UIViewController {
public func presentPopup(animated: Bool, completion: (() -> Void)? = nil) {
let popup = MBPopUpViewController(accentColor: UIColor(hexString: "E40C15"),
popUpTitle: "Hello",
popUpMessage: "Test PopUp",
popUpFirstButtonLabel: "1",
popUpSecondButtonLabel: "2")
popup.modalPresentationStyle = .overCurrentContext
present(popup, animated: animated, completion: completion)
}
}
有没有办法,当第二个视图控制器出现时,如何通过淡入淡出的动画使第一个视图控制器变暗?
Here,您可以看到我现在拥有的东西。
您可以在“照片”应用中查看示例here。当AlertViewController出现时,背景变暗。有什么想法要实现吗?谢谢:)
答案 0 :(得分:1)
这听起来像您想要Modal Popover
。
可以使放置在另一个视图上方的视图的背景色为透明色。您将需要在viewDidLoad
中设置该视图的颜色和所有内容。
确保将标记标记为Cover Vertical
,以便没有划像动画,并且平滑过渡。还要根据您的外观启用Over Current Context
或Over Full Screen
。
根据您要放置在第二个View Controller中的元素的不同,最终结果如下所示。 (注意:会加快gif中显示的动画。深灰色区域将包含您在视图中放置的内容。)
这里有一些很棒的资源可以帮助您完成这些工作。我可以推荐Mark Moeykens在YouTube上,他制作了有关此类视频的精彩视频。