4

シートをiPhone Xのセーフエリアに合わせようとすると、シートの下に透明な領域が残ります。

シートを拡張せずにその領域の塗りつぶしを設定したり、安全な領域の外側に揃えたりする方法はありますか?

ここに画像の説明を入力

4

2 に答える 2

5

これが私の小さな拡張機能です。「マジックナンバー」タグで追加されたビューにアクセスしないようにするための改善を誰かが提案できる場合-ようこそ!

extension UIViewController {

private static let insetBackgroundViewTag = 98721 //Cool number

func paintSafeAreaBottomInset(withColor color: UIColor) {
    guard #available(iOS 11.0, *) else {
        return
    }
    if let insetView = view.viewWithTag(UIViewController.insetBackgroundViewTag) {
        insetView.backgroundColor = color
        return
    }

    let insetView = UIView(frame: .zero)
    insetView.tag = UIViewController.insetBackgroundViewTag
    insetView.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(insetView)
    view.sendSubview(toBack: insetView)

    insetView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
    insetView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
    insetView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
    insetView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor).isActive = true

    insetView.backgroundColor = color
}

}

于 2017-11-17T15:17:53.390 に答える