2017-02-22 6 views
0

Я пытаюсь изменить размер UIImage, чтобы он соответствовал аннотации вида карты в слоте leftCalloutAccessoryView. Я попытался (плохо) добавить ограничения, но изображение не появляется - без ограничений, которые он обнаруживает, но он слишком велик. Теперь с ними он вообще не появляется, я думаю, потому что он был изменен из представления. Я попробовал добавить leftAnchor и topAnchor, но получил ошибку, потому что я не совсем уверен, что мне следует привязать к этому аксессуару? Просмотр аннотаций? Во всяком случае вот код до сих пор:Изменение размера изображения в соответствии с левым окном MapViewAccessoryView

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? { 
    let identifier = "Restaurants" 

    if annotation is Restaurants { 
     var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: identifier) 

     if annotationView == nil { 
      annotationView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: identifier) 
      annotationView!.canShowCallout = true 

      let infoButton = UIButton(type: .detailDisclosure) 
      let imgView = UIImageView(image: UIImage(named: "TTT")) 

      // constraints 
      imgView.translatesAutoresizingMaskIntoConstraints = false 
      imgView.widthAnchor.constraint(equalToConstant: 20).isActive = true 
      imgView.heightAnchor.constraint(equalToConstant: 20).isActive = true 

      annotationView!.rightCalloutAccessoryView = infoButton 
      annotationView!.leftCalloutAccessoryView = imgView 
     } else { 
      annotationView!.annotation = annotation 
     } 
     return annotationView 
    } 
    return nil 
} 

ли мне просто нужно быть добавив сбоку и сверху якорей, или есть другой способ идти об этом полностью?

Спасибо!

ответ

1

Вы можете попробовать установить UIImageView размер созданных MKPinAnnotationView

, а затем вызвать аспект подгонку на это так:

let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: annotationView!.frame.height, height: annotationView!.frame.height)) 

imageView.image = UIImage(named: "TTT") 
imageView.contentMode = .scaleAspectFit 

annotationView!.leftCalloutAccessoryView = imageView 
+0

Работал как волшебство, спасибо! – KingTim

Смежные вопросы