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, я получаю постоянную ширину и высоту основного экрана.

Таким образом, в зависимости от ситуации вы можете использовать любое из этих двух решений.