iOS-разработчик
Как получить размер экрана в SwiftUI
Позвольте мне рассказать вам 2 разных способа получить размер экрана
В моей последней разработке приложения на основе SwiftUI во многих ситуациях мне нужно было знать размер экрана или иногда доступный размер представления на экране. Когда я искал в Интернете везде, я нашел решение, используя GeometryReader
.
Используя GeometryReader
, мы можем узнать доступный размер, указав текущий вид родителем.
Иногда вам нужно заранее знать размер устройства
Затем я вспомнил, что есть старое решение, когда мы использовали UIKit для разработки приложения для iOS, и оно также работает в SwiftUI. В представлении SwiftUI вы можете запустить следующий код UIScreen.main.bounds.width
, чтобы получить ширину устройства, и UIScreen.main.bounds.height
, чтобы получить высоту устройства. Позвольте мне показать вам пример:
Здесь вы видите, первое представление 1, я использовал GeometryReader
, чтобы узнать доступный размер, заданный родительским представлением. Проверьте текст во всех представлениях.
В Вид 2 я также использовал GeometryReader
, но в этом случае размер родительского вида фиксируется параметром frame
.
Таким образом, в обоих случаях, Вид 1 и Вид 2, получите разные размеры, так как я использовал GeometryReader
.
Но когда я использую UIScreen.main.bounds.width
и UIScreen.main.bounds.height
, я получаю постоянную ширину и высоту основного экрана.
Таким образом, в зависимости от ситуации вы можете использовать любое из этих двух решений.