Даже самый красивый дизайн превратится в хаос, если не адаптировать его под разные размеры экранов. Рассказываем, как избежать типичных ошибок:
Пример на SwiftUI:
Лайфхак: Если интерфейс «ломается» на маленьких экранах, спросите себя: можно ли перенести часть функций в дополнительное меню или использовать скролл?
Вопрос для обсуждения:
С какими сложностями адаптивной вёрстки вы сталкивались и как их решили?
1.
Не используйте фиксированные размеры! Привязывайте элементы через констрейнты. Например, для кнопки «Далее» задайте отступы от краёв экрана, а не фиксированную позицию по X/Y.Пример на SwiftUI:
Swift:
VStack(spacing: 20) {
Text("Добро пожаловать!")
.font(.title)
Button("Начать") { /* ... */ }
.padding(.horizontal, 40)
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
.background(Color(.systemBackground))
2.
Используйте горизонтальные и вертикальные размеры (Compact, Regular), чтобы менять layout. Например, на iPad в ландшафтном режиме можно показать боковую панель, которая на iPhone будет скрыта в меню.3.
- Шрифты должны масштабироваться: используйте UIFontMetrics.
- Для изображений применяйте векторные ассеты (PDF) или добавляйте @1x, @2x, @3x версии.
4.
Настройте превью для нескольких устройств сразу:
Swift:
#Preview {
ContentView()
.previewDevice("iPhone 15 Pro")
.previewDisplayName("iPhone 15 Pro")
}
Лайфхак: Если интерфейс «ломается» на маленьких экранах, спросите себя: можно ли перенести часть функций в дополнительное меню или использовать скролл?
Вопрос для обсуждения:
С какими сложностями адаптивной вёрстки вы сталкивались и как их решили?