gpt4 book ai didi

ios - 如何将两个或多个按钮添加到annotationView : MKAnnotationView?

转载 作者:搜寻专家 更新时间:2023-10-31 22:28:22 25 4
gpt4 key购买 nike

我想在 map 上(使用 MapKit)为我的图钉添加一个 MKAnnotationView 并具有下一个属性:

1)图片

2) 详情按钮

3) 另一个详细信息按钮

4) 另一个详细信息按钮?

我已经使用下一个代码实际添加了图像和详细信息按钮:

annotationView.detailCalloutAccessoryView = snapshotView // snapshot view is a custom view
// with image and its constraints

let detailsButton = UIButton(type: .detailDisclosure)
annotationView.rightCalloutAccessoryView = detailsButton

那么,问题是如何向MKAnnotationView添加多个按钮?

因为我看过的所有教程都是“如何添加详情按钮”。

最佳答案

您可以使用 MKAnnotationViewdetailCalloutAccessoryView 来实现这一点。

如何使用 UIStackView 扩展 MKAnnotationView 的示例:

extension MKAnnotationView {

func conteiner(arrangedSubviews: [UIView]) {
let stackView = UIStackView(arrangedSubviews: arrangedSubviews)
stackView.axis = .vertical
stackView.distribution = .fillEqually
stackView.alignment = .fill
stackView.spacing = 5
stackView.autoresizingMask = [.flexibleLeftMargin, .flexibleRightMargin, .flexibleLeftMargin, .flexibleBottomMargin, .flexibleWidth, .flexibleHeight]
stackView.translatesAutoresizingMaskIntoConstraints = false

self.detailCalloutAccessoryView = stackView
}
}

以及如何实现:

extension ViewController: MKMapViewDelegate {
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {

let annotationIdentifier = "AnnotationIdentifier"

var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: annotationIdentifier)

if annotationView == nil {
annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: annotationIdentifier)
annotationView!.canShowCallout = true
annotationView!.conteiner(arrangedSubviews: [UIButton(type: .detailDisclosure), UIButton(type: .detailDisclosure), UIButton(type: .detailDisclosure)])

}
else {
annotationView!.annotation = annotation
}

return annotationView
}
}

结果: enter image description here

关于ios - 如何将两个或多个按钮添加到annotationView : MKAnnotationView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43407978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com