まだどこにもないアプリを作る

アプリ開発でつまづいたところなどを中心に記事にして行きます。

swift バックグラウンドの画面でアプリの内容を隠すやり方

developers.goalist.co.jp

 

 

こちらの記事や

 

UIViewに対してBlur処理を入れる - Qiita

 

こちらの記事を参考にさせていただきました。

 

プライバシーを保護するためにバックグラウンドの画面でもアプリの画面を見えなくする実装です。

簡易的なものとなっていますのでご了承ください。

 

 

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()

    }

 

 

以下実装画像

 

これが

f:id:rils_k:20200826054930p:plain

真っ白なviewでやったとき

f:id:rils_k:20200826055002p:plain

 

ブラーviewの場合

f:id:rils_k:20200826055403p:plain

 

こうなります。App Store Connectアプリ並みにはうまくいかないかもしれません。

あとキーボードは隠れないようです。

f:id:rils_k:20200826055335p:plain

 

以上でした。

 

 

 

 

アプリ開発頑張っていきましょう。