iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 22
0
Mobile Development

[初探] 用 SwiftUI - 打造一個自助洗衣應用系列 第 22

第二十二日、MapKit 篇 - 座位標的設定

  • 分享至 

  • xImage
  •  

早安 今天是週二美好的早晨

https://ithelp.ithome.com.tw/upload/images/20200922/20130099yvKxlNRrcA.png
今天來做怎麼生成標記點以及自訂標記點

let createAnnotation = MKPointAnnotation()
// 設定大頭針座標
createAnnotation.coordinate = CLLocationCoordinate2D(latitude: 123, longitude: 123)
// 將大頭針加入 mapView 中
mapView.addAnnotation(createAnnotation)

這是一般加入大頭針的方式
然後老方法

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
            let identifier = "placemark"
            var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: identifier)
            if annotationView == nil {
                annotationView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: identifier)
                annotationView?.canShowCallout = true
                annotationView?.image = UIImage(named: "icon_map.png")
                //這裡是圖片樣子
                let infoButton = UIButton(type: .detailDisclosure)
                infoButton.setImage(UIImage(named: "nav_map_blue"), for: [] )
                // 按鈕按下後的動作
                infoButton.addTarget(self, action: #selector(Coordinator.onClickDetailButton(_:forEvent:)),
                 for: UIControl.Event.touchUpInside)
                annotationView?.rightCalloutAccessoryView = infoButton

            } else {
                annotationView?.annotation = annotation
            }
            return annotationView
}

並讓他在點擊的時候觸發
onClickDetailButton(_:forEvent:)
讓你利用 objc 做些什麼出來

我的話
是在點擊的時候生出視圖出來
https://ithelp.ithome.com.tw/upload/images/20200922/20130099OCO6FP4fK9.png

以及在點擊第二次後 出現sheet
sheet 就是判斷式的改變以及值的輸入
https://ithelp.ithome.com.tw/upload/images/20200922/20130099wxIHNcn75L.png


上一篇
第二十一日、MapKit 篇 - 開始
下一篇
第二十三日、MapKit 篇 - 定位元件製作
系列文
[初探] 用 SwiftUI - 打造一個自助洗衣應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言