Определите, есть ли у iphone экран надреза или обычный прямоугольный экран, чтобы избежать проблемы с размером навигационной панели? - PullRequest
0 голосов
/ 14 декабря 2018

Я столкнулся с проблемой при реализации расширяемого баннера сверху, как это делает WhatsApp на экране профиля.Когда пользователь прокручивает изображение, сжимает и конвертирует в панель навигации.Для этого я должен установить минимальную высоту в моем коде, но из-за надреза экрана в iphone X и других новых iphone это вызывает проблему.Потому что у старого iphone нет прорезного экрана, поэтому высота панели навигации меньше, чем у новых iphone?

Так есть ли способ узнать, является ли iphone экраном с надрезом или экраном обычного типа?

1 Ответ

0 голосов
/ 14 декабря 2018

Таким образом, вы можете обнаружить метку экрана:

extension UIDevice {
    var hasNotch: Bool {
        let bottom = UIApplication.shared.keyWindow?.safeAreaInsets.bottom ?? 0
        return bottom > 0
    }
}

if UIDevice.current.hasNotch {
            // consider notch
        } else {
            // don't have to consider notch
        }
...