SwiftUI и MapKit постепенно сближаются. Если раньше для работы с картами приходилось писать код на UIKit и оборачивать его в UIViewRepresentable, то теперь для этого есть нативный Map view. Разбираем, какие возможности появились и как их использовать.
Базовое отображение:
Самый простой способ - добавить карту одной строкой: Map(). Она автоматически заполнит доступное пространство. Ее можно оформлять как любой другой SwiftUI-компонент: добавлять скругление углов через .cornerRadius, ограничивать размер через .frame, настраивать отступы.
Настройка камеры:
Управлять тем, что видит пользователь, можно через MapCameraPosition. Камеру можно задать один раз при создании карты (параметр initialPosition) или связать с
@State через двухсторонний биндинг (position), чтобы менять положение динамически.Камера настраивается через MKMapCamera: указывается центр, расстояние, угол наклона (pitch) и направление (heading). Все это упаковывается в MapCamera, затем в
MapCameraPosition.camera.Ограничение видимой области:
Если нужно, чтобы пользователь не мог уйти за пределы определенной территории, используется MapCameraBounds. Задается регион, в котором должен оставаться центр карты. Например, можно запретить вертикальное перемещение, оставив только горизонтальное.
Интерактивность:
При инициализации карты можно задать допустимые режимы взаимодействия: .pan (перемещение), .zoom (масштабирование), .rotate (поворот). По умолчанию разрешены все, но их легко ограничить.
🔗 Читать подробнее
💡 Вывод:
Работа с картами в SwiftUI стала гораздо удобнее. Нативный Map view покрывает большинство сценариев: от простого отображения до управления камерой и ограничения видимой области. Если нужны совсем экзотические возможности, можно опуститься до UIKit-оберток, но в 90% случаев встроенных средств достаточно.
Подписаться на канал:
➡️ Telegram | Max
Закрытый канал:
🚀 Мобильный трудоголик PRO
