【发布时间】:2017-06-08 02:21:17
【问题描述】:
我有一个视图控制器 (PopOverViewController) 被另一个视图控制器 (ListViewController) 实例化。
在 ListViewController中,PopOverViewController 模态呈现:
popOverVC = self.storyboard?.instantiateViewController(withIdentifier: "sbPopUpID") as! PopUpViewController
popOverVC.modalPresentationStyle = .fullScreen
在 PopOverViewController内,PopOverViewController 使用 CGAfflineTransformation 进行动画输入/输出:
func showAnimate()
{
self.shadowView.transform = CGAffineTransform(scaleX: 0.7, y: 0.7)
self.view.alpha = 0.0;
UIView.animate(withDuration: 0.3, animations: {
self.view.alpha = 1.0
self.shadowView.transform = CGAffineTransform(scaleX: 0.7, y: 0.7)
});
}
func removeAnimate()
{
UIView.animate(withDuration: 0.3, animations: {
self.shadowView.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)
self.view.alpha = 0.0;
}, completion:{(finished: Bool) in
if (finished)
{
self.view.removeFromSuperview()
}
});
}
在PopOverViewController的viewDidLoad中,将背景颜色调低:
self.view.backgroundColor = UIColor(white: 0, alpha: 0.7)
我的问题: 当 PopOver 出现时,由于 PopOver 的 alpha,背景仍然可见。我想在呈现 PopOver 时模糊此背景,并在 PopOver 关闭时让模糊消失。
我对如何做到这一点感到困惑。
谢谢!
斯威夫特 3
【问题讨论】:
-
很确定这就是你要找的东西:stackoverflow.com/a/25706250/4008175
-
@AppDevGuy 感谢您提供链接。我会试一试的。
-
@AppDevGuy 模糊效果很好,但是它覆盖了整个屏幕而不是背景(在 Pop Over 后面)。
标签: ios swift modalviewcontroller uivisualeffectview