gpt4 book ai didi

swift 2 : multiline MKPointAnnotation

转载 作者:可可西里 更新时间:2023-11-01 02:16:50 36 4
gpt4 key购买 nike

有没有办法创建多行注释?

这是我的代码:

1) 我的自定义注释类

import UIKit
import MapKit

class CustomAnnotation: NSObject, MKAnnotation {

var title: String?
var subtitle: String?
var address: String = ""
var phoneNumber: String = ""
var workingHours: String = ""
var coordinate: CLLocationCoordinate2D


init( title: String,
subtitle: String,
address: String,
phoneNumber: String,
workingHours: String,
coordinate: CLLocationCoordinate2D ){

self.title = title
self.subtitle = subtitle
self.address = address
self.phoneNumber = phoneNumber
self.workingHours = workingHours
self.coordinate = coordinate

super.init()
}
}

2) 我的带有 map 的 View Controller :

类 MapViewController: UIViewController, MKMapViewDelegate {

@IBOutlet weak var theMapView: MKMapView!

override func viewDidLoad() {
super.viewDidLoad()


let latitude: CLLocationDegrees = 54.685290
let longitude : CLLocationDegrees = 25.279661

let latDelta : CLLocationDegrees = 0.2
let lonDelta : CLLocationDegrees = 0.2

let theSpan : MKCoordinateSpan = MKCoordinateSpanMake(latDelta, lonDelta)

let branchLocation : CLLocationCoordinate2D = CLLocationCoordinate2DMake(latitude, longitude)

let theRegion : MKCoordinateRegion = MKCoordinateRegionMake(branchLocation, theSpan)


let annotation = CustomAnnotation(title: "Brach1", subtitle: "some text for B1", address: "address str 12-12", phoneNumber: "123 321 123", workingHours: "00 - 24", coordinate: branchLocation)


self.theMapView.setRegion(theRegion, animated: true)

self.theMapView.addAnnotation(annotation)

}


override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()

}


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

let identifier = "MyPin"

if annotation.isKindOfClass(MKUserLocation) {
return nil
}

var annotationView: MKPinAnnotationView? = mapView.dequeueReusableAnnotationViewWithIdentifier(identifier) as? MKPinAnnotationView

if annotationView == nil {

annotationView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: identifier)
annotationView?.canShowCallout = true

let multiLineView = UIView(frame: CGRectMake(0, 0, 100, 40))

let label1 = UILabel(frame: CGRectMake(0,0,100,20))
label1.text = "Some text1"
multiLineView.addSubview(label1)

let label2 = UILabel(frame: CGRectMake(0,20,100,20))
label2.text = "some text2"
multiLineView.addSubview(label2)

annotationView!.rightCalloutAccessoryView = multiLineView

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

我得到的:

enter image description here

如果我会用

annotationView!.leftCalloutAccessoryView = multiLineView

我会得到:

enter image description here

我还没有找到任何其他方法。我希望像 bottomCalouttAccessoryView 这样的东西得到类似的东西:

enter image description here

注释的高度是不可修改的,这对我来说是非常有线的。 (这就是为什么我的三个标签放不下的原因)我正在尝试使用 annotationview 的 autoresize 方法但没有运气:(

最佳答案

副标题是打印到单行标签的字符串,您可能必须创建一个子类才能添加多行。

关于 swift 2 : multiline MKPointAnnotation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37446219/

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