feat: 支持模拟器定位与地图 fallback

This commit is contained in:
2026-07-24 10:04:55 +08:00
parent 0e0415eec4
commit f87b13cc05
24 changed files with 4040 additions and 2161 deletions

View File

@ -4,10 +4,15 @@
//
import Kingfisher
import MAMapKit
import SnapKit
import UIKit
#if targetEnvironment(simulator)
import MapKit
#else
import MAMapKit
#endif
///
final class WildPhotographerReportListViewController: BaseViewController {
private let viewModel: WildPhotographerReportListViewModel
@ -1797,6 +1802,49 @@ private final class WildReportDetailMediaThumbnailView: UIView {
}
///
#if targetEnvironment(simulator)
private final class WildReportDetailMapPreviewView: UIView {
private let mapView: MKMapView
init(scenicName: String, detailAddress: String, coordinate: CLLocationCoordinate2D?) {
mapView = MKMapView(frame: .zero)
super.init(frame: .zero)
backgroundColor = AppColor.pageBackgroundSoft
layer.cornerRadius = 10
clipsToBounds = true
mapView.showsCompass = false
mapView.showsScale = false
mapView.isScrollEnabled = false
mapView.isZoomEnabled = false
mapView.isRotateEnabled = false
mapView.isPitchEnabled = false
addSubview(mapView)
mapView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
guard let coordinate else { return }
let annotation = MKPointAnnotation()
annotation.coordinate = coordinate
annotation.title = scenicName
annotation.subtitle = detailAddress
mapView.addAnnotation(annotation)
mapView.setRegion(
MKCoordinateRegion(
center: coordinate,
span: MKCoordinateSpan(latitudeDelta: 0.006, longitudeDelta: 0.006)
),
animated: false
)
}
@available(*, unavailable)
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
#else
private final class WildReportDetailMapPreviewView: UIView {
private let mapView: MAMapView
@ -1834,6 +1882,7 @@ private final class WildReportDetailMapPreviewView: UIView {
fatalError("init(coder:) has not been implemented")
}
}
#endif
/// 线
private final class WildReportDetailTimelineRowView: UIView {