gpt4 book ai didi

ios - MapKit iOS 9 detailCalloutAccessoryView 用法

转载 作者:IT王子 更新时间:2023-10-29 08:10:56 27 4
gpt4 key购买 nike

看完WWDC video 206我认为将细节标注 View 添加到 mapView 注释 View 是一项微不足道的任务。

所以,我假设我做错了什么。

设置了我的图钉 View

func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {

let view:MKAnnotationView!

if let dequed = routeMapView.dequeueReusableAnnotationViewWithIdentifier("pin") {
view = dequed
}
else {
view = MKPinAnnotationView(annotation: annotation, reuseIdentifier: "pin")
}

let x = UIView(frame: CGRectMake(0, 0, 200, 200))
x.backgroundColor = UIColor.redColor()

// shows the red
//view.leftCalloutAccessoryView = x

// working as no subtitle - but no red view
view.detailCalloutAccessoryView = x

view.canShowCallout = true
return view
}

我只知道这个

enter image description here

我知道该 View 正在运行,因为如果我使用 leftCalloutAccessoryView 尝试它,我会得到 enter image description here

我一定是遗漏了什么。请注意,如果我只是将图像添加到 detailCalloutAccessoryView

view.detailCalloutAccessoryView = UIImage(named:"YourImageName")

图像在那里,大小正确等等

我只是不知道如何放入我自己的自定义 View 。

谢谢

最佳答案

您必须为 View 的宽度和高度添加一些约束:

func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {
var av = mapView.dequeueReusableAnnotationViewWithIdentifier("id")
if av == nil {
av = MKPinAnnotationView(annotation: annotation, reuseIdentifier: "id")
}

let myView = UIView()
myView.backgroundColor = .greenColor()

let widthConstraint = NSLayoutConstraint(item: myView, attribute: .Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: 40)
myView.addConstraint(widthConstraint)

let heightConstraint = NSLayoutConstraint(item: myView, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: 20)
myView.addConstraint(heightConstraint)

av!.detailCalloutAccessoryView = myView
av!.canShowCallout = true

return av!
}

Munich 1972

添加 intrinsicContentSize 也有效。

我做了一些测试,发现当您将 View 设置为 detailCalloutAccessoryView 时,MapKit 会自动将 translatesAutoresizingMaskIntoConstraints 设置为 false。

在 WWDC 2015 session 中 "What's New in MapKit"有人告诉我们,“支持自动布局”。我认为 Apple 的真正意思是,您必须使用自动布局?!

关于ios - MapKit iOS 9 detailCalloutAccessoryView 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32581049/

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