シートをiPhone Xのセーフエリアに合わせようとすると、シートの下に透明な領域が残ります。
シートを拡張せずにその領域の塗りつぶしを設定したり、安全な領域の外側に揃えたりする方法はありますか?
これが私の小さな拡張機能です。「マジックナンバー」タグで追加されたビューにアクセスしないようにするための改善を誰かが提案できる場合-ようこそ!
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
}
}