Просмотр домашнего экрана в приложении iOS (Swift) - PullRequest
0 голосов
/ 28 апреля 2019

Как сделать фон UIView полупрозрачным, чтобы пользователь мог видеть его (размытый) домашний экран?

Если это невозможно, возможно, я могу сделать снимок экрана домашнего экрана и добавить эффект полупрозрачности,В таком случае, как мне сделать снимок главного экрана пользователя?

У Apple жесткие представления о конфиденциальности (которые я поддерживаю), поэтому я понимаю, что ни одно из перечисленного не может быть разрешено.

1 Ответ

1 голос
/ 28 апреля 2019

1. Чтобы иметь фон предыдущего UIViewController, представьте следующий контроллер с presentationStyle как overFullScreen.

let vc = ViewController()
vc.modalPresentationStyle = .overFullScreen
self.present(vc, animated: true, completion: nil)

При необходимости использования эффекта полупрозрачности

let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.dark)
blurEffectView = UIVisualEffectView(effect: blurEffect)
blurEffectView.frame = view.bounds
blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
view.addSubview(blurEffectView)

2. Сделать скриншот.

func takeScreenshot(view: UIView) -> UIImageView {
     UIGraphicsBeginImageContext(view.frame.size)
     view.layer.render(in: UIGraphicsGetCurrentContext()!)
     let image = UIGraphicsGetImageFromCurrentImageContext()
     UIGraphicsEndImageContext()
     UIImageWriteToSavedPhotosAlbum(image!, nil, nil, nil)
     return UIImageView(image: image)   
}

let view = HomeScreen().view
let image = taketakeScreenshot(view)
...