tukuyo's blog

へっぽこまん

スポンサーリンク

Home Indicatorの設定をする

はじめに

よく、アプリを使用していると、ホームバー(Home Indeicator)が消えていたり、二回スワイプしないといけないようなアプリがあります。

そのやり方を今回は紹介します。

表示 / 非表示

表示/非表示 だけであれば非常に簡単です。
ViewControllerのなかで、prefersHomeIndicatorAutoHiddenを設定してあげるだけです。 設定方法が以下のコードです。

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func prefersHomeIndicatorAutoHidden() -> Bool {
        return true
    }
}

また、上記の方法では、画面をタップするとホームバーが表示されてしまうので
合わせてpreferredScreenEdgesDeferringSystemGesturesを設定してあげましょう。

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func prefersHomeIndicatorAutoHidden() -> Bool {
        return true
    }

    // ↓追加  .bottomで画面下部分を触った時にだけ表示がされます。
    override var preferredScreenEdgesDeferringSystemGestures: UIRectEdge {
        return .bottom
    }
}

二回スワイプでホームへ

この場合も、先ほどの二つのインスタンスプロパティを使用して簡単に実現できます。

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func prefersHomeIndicatorAutoHidden() -> Bool {
        return false     // <- falseにする
    }

    override var preferredScreenEdgesDeferringSystemGestures: UIRectEdge {
        return .bottom
    }
}

これだけで二回スワイプアップすることでホーム画面へ戻れるように設定できました。

おわりに

今回は、HomeIndeicatorの表示・非表示・二回スワイプでホームへ戻る方法を紹介しました。
是非この機能?を使用して、ユーザーがアプリにアクティブな時間を増やしましょう。笑

参考

https://developer.apple.com/documentation/uikit/uiviewcontroller/2887509-setneedsupdateofhomeindicatoraut

https://developer.apple.com/documentation/uikit/uiviewcontroller/2887512-preferredscreenedgesdeferringsys

スポンサーリンク