-
SwiftUI Maps 68 - 맵 타입 변경하기(일반,위성,하이브리드)SwiftUI 100 레시피/Maps 2022. 6. 28. 12:59
#1. ContentView
import SwiftUI
import MapKit
struct ContentView: View {
@State private var mapType: MKMapType = .standard
var body: some View {
VStack{
Picker("Select", selection: $mapType){
Text("Standard").tag(MKMapType.standard)
Text("Satelite").tag(MKMapType.satellite)
Text("Hybrid").tag(MKMapType.hybrid)
}.pickerStyle(SegmentedPickerStyle())
MapView(mapType: mapType)
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
#2. MapView.swift
import Foundation
import SwiftUI
import MapKit
final class Coordinator: NSObject, MKMapViewDelegate{
var control: MapView
init(_ control: MapView){
self.control = control
}
}
struct MapView: UIViewRepresentable{
let mapType: MKMapType
func makeUIView(context: Context) -> some MKMapView {
let map = MKMapView()
map.showsUserLocation = true
map.delegate = context.coordinator
return map
}
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
func updateUIView(_ uiView: UIViewType, context: Context) {
uiView.mapType = mapType
}
}
standard satellite hybrid 'SwiftUI 100 레시피 > Maps' 카테고리의 다른 글
SwiftUI Maps 67 - 사용자 위치 표시하기 (0) 2022.06.28 SwiftUI Maps 66 - 커스텀 주석(Annotations) 만들기 (0) 2022.06.28 SwiftUI Maps 65 - 지도에 주석(Annotations) 달기 (0) 2022.06.27 SwiftUI Maps 64 - 지도 표시하기 (0) 2022.06.27