Как добавить булавки (аннотации) с помощью Xcode 6 (Swift)

Я новичок в быстром языке и еще не сделал приложения с mapkit. Но у меня есть карта и регионы, но я повесил трубку на том, как разрешить пользователям добавлять булавки. Позвольте мне пояснить, я даже не знаю, с чего начать. Все, что у меня есть в данный момент (для контактов), является моей переменной, но я даже не уверен, правильно ли это. Любая помощь приветствуется!! Что у меня есть...

var MyPins: MKPinAnnotatoinView!

......

override func viewDidLoad() {
    super.viewDidLoad()

Код карты

..... ..... }

Ответы

Ответ 1

Ваша переменная булавки правильная. Теперь вам просто нужно добавить эту аннотацию к MKMapView.

Вы также можете создать собственный класс для MKAnnotation, чтобы добавить пользовательскую аннотацию к отображению карты.

Бета-версия для MapExampleiOS8 = > Что поддерживает Swift 2.1

Выполните следующие шаги:

1. Добавьте MapKit.framework к проекту.

enter image description here

2. Создайте переменную Storyboard IBOutlet элемента управления отображением карты или создайте ее в виде контроллера. Установите делегат для этой переменной, чтобы переопределить его методы делегирования:

Добавить подпись делегата для просмотра интерфейса контроллера:

class ViewController: UIViewController, MKMapViewDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Set map view delegate with controller
        self.mapView.delegate = self
    }
}

3. Переопределите его методы делегирования:

Здесь нам нужно переопределить метод mapView(_:viewForAnnotation:), чтобы отображать значки аннотаций на карте.

func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {
    if (annotation is MKUserLocation) {
        return nil
    }

    if (annotation.isKind(of: CustomAnnotation.self)) {
        let customAnnotation = annotation as? CustomAnnotation
        mapView.translatesAutoresizingMaskIntoConstraints = false
        var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: "CustomAnnotation") as MKAnnotationView!

        if (annotationView == nil) {
            annotationView = customAnnotation?.annotationView()
        } else {
            annotationView?.annotation = annotation;
        }

        self.addBounceAnimationToView(annotationView)
        return annotationView
    } else {
        return nil
    }
}

4. Добавьте MKPointAnnotation для отображения карты.

Вы можете добавить контакт к местоположению в виде карты. Для простоты добавьте код в метод viewDidLoad().

override func viewDidLoad() {
    super.viewDidLoad()

    // Set map view delegate with controller
    self.mapView.delegate = self

    let newYorkLocation = CLLocationCoordinate2DMake(40.730872, -74.003066)
    // Drop a pin
    let dropPin = MKPointAnnotation()
    dropPin.coordinate = newYorkLocation
    dropPin.title = "New York City"
    mapView.addAnnotation(dropPin)
}

Ответ 2

Вам нужно будет вызвать метод для того, когда и где пользователь должен добавить контакт. Если вы хотите, чтобы он добавил булавку, в которой пользователь нажимает и удерживает на карте, вам нужно будет вызвать gestureRecognizer, но если вы хотите сделать это с помощью кнопки, вы, очевидно, просто вызовите это в действии. В любом случае документация для добавления булавок подробно обсуждается Здесь