こちらの記事や
こちらの記事を参考にさせていただきました。
プライバシーを保護するためにバックグラウンドの画面でもアプリの画面を見えなくする実装です。
簡易的なものとなっていますのでご了承ください。
Appdelegate.SwiftかSceneDelegate.Swiftにある
applicationWillResignActiveとapplicationDidBecomeActiveを使います
class AppDelegate: UIResponder, UIApplicationDelegate {
let view = UIView()
let blurView = UIVisualEffectView()
var window: UIWindow?
func applicationWillResignActive(_ application: UIApplication) {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
view.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: UIScreen.main.bounds.size.height)
view.backgroundColor = .white
self.window?.addSubview(view)
//ブラーヴュー使いたい場合はこっち
// blurView.effect = UIBlurEffect(style: .light)
// blurView.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: UIScreen.main.bounds.size.height)
// blurView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
// blurView.alpha = 1.0
// self.window?.addSubview(blurView)
}
func applicationDidBecomeActive(_ application: UIApplication) {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
self.view.removeFromSuperview()
// self.blurView.removeFromSuperview()
}
以下実装画像
これが
真っ白なviewでやったとき
ブラーviewの場合
こうなります。App Store Connectアプリ並みにはうまくいかないかもしれません。
あとキーボードは隠れないようです。
以上でした。
アプリ開発頑張っていきましょう。