SwiftUI에서 MapKit을 사용 하는 방법을 찾아보고 있었는데.
UIKit을 사용해야지만 가능하다고 한다.
그 이유를 보니 SwiftUI는 모든것을 다 구현하지 않았으므로 UIKit을 사용하라고 하고, 기존의 호환성을 위하여 UIKit을 함께 사용 하는
방법을 제공해주고 있었다.
UIViewRepresentable 를 상속 받으면 SwiftUI에서 쉽게 사용이 가능하다고 한다.
struct GPSView : UIViewRepresentable {
let locationManager = CLLocationManager()
let view = MKMapView()
func makeUIView(context: UIViewRepresentableContext<GPSView>) -> MKMapView {
view.showsUserLocation = true
view.userTrackingMode = .followWithHeading
let longtap = UITapGestureRecognizer(target: context.coordinator, action: #selector(context.coordinator.longTap))
view.addGestureRecognizer(longtap)
view.delegate = context.coordinator
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
locationManager.desiredAccuracy = kCLLocationAccuracyBest
let zoom = CLLocationCoordinate2D(latitude: 35, longitude: 129)
let viewRegion = MKCoordinateRegion(center: zoom, latitudinalMeters: 200, longitudinalMeters: 200)
view.showsUserLocation = true
view.setRegion(viewRegion, animated: false)
return view
}
func updateUIView(_ uiView: MKMapView, context: UIViewRepresentableContext<GPSView>) {
}
}
SwiftUI에서 사용할려고 할 땐
GPSView() 호출 하면 바로 사용이 가능하다.
'차장님의 이야기' 카테고리의 다른 글
Swift에서 Udp 사용하기 성공! (0) | 2020.06.04 |
---|---|
IOS에서 Itunes에 파일 목록에 나오게 하기. (0) | 2020.06.03 |
IOS 13.5 업그레이드 시 테스팅이 불가능한 이유. (0) | 2020.06.01 |
Visual Studio For Mac의 WinForm 프로젝트 관련 문제 (0) | 2020.05.18 |
C# 다양한 Delay 함수와 Delay 함수를 만들어 보기. (1) | 2020.05.16 |