MonoTouch MapKit - Ek açıklama - balonuna bir düğme ekleyerek

oy
7

Bir açıklamaya üzerine bir düğme almak için yine de var mı bilen var mı?

Eğer konum seçmek .. demek ve butonuna tıklayarak bu konumdaki tüm olayları alabilirsiniz - konumu seçilebilir olmak istiyorum.

Mümkün mü?

ağırlık: //

Oluştur 02/03/2010 saat 18:19
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
13

İşte benim ek açıklaması için kullanılan kod, kabarcığın sağ tarafında bir düğme içerir bu. İstediğinizi görüntülemek için yığının üzerine yeni bir görünüm itmek için bir IBAction ayarlayabilirsiniz

- (MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation
{
    MKPinAnnotationView *pinAnnotation = nil;
    if(annotation != mapView.userLocation) 
    {
        static NSString *defaultPinID = @"myPin";
        pinAnnotation = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
        if ( pinAnnotation == nil )
            pinAnnotation = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease];

        pinAnnotation.canShowCallout = YES;

        //instatiate a detail-disclosure button and set it to appear on right side of annotation
        UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        pinAnnotation.rightCalloutAccessoryView = infoButton;

    }

    return pinAnnotation;
}
Cevap 02/03/2010 saat 20:39
kaynak kullanıcı

oy
5

Sadece objektif c bununla başkası yardımcı ama ben konsept mono ile aynı olduğundan emin değilim. Özel bir MKAnnotationView nesnesi oluşturmak ve geçersiz kılmak gerekir GetViewForAnnotation (obj-c viewForAnnotation) sizin MKMapViewDelegate sınıfının yöntemini ... diğer soruyu kontrol .

Bunu itiraz MKAnnotationView özel temelde haritası ek açıklamaları için yapılmış bir UIView olduğunu oluşturduğunuzda ... sadece görünümüne düğmesini ve diğer bilgileri ekleyebilir ve kullanıcı ek açıklama çarptığında o kadar gösterecektir.

temsilci yöntemi için bazı kaba kod Buraya:

public override MKAnnotationView GetViewForAnnotation(
                                         MKMapView mapView,NSObject annotation) {
      var annotationId = "location";
      var annotationView = mapView.DequeueReusableAnnotation(annotationId);
      if (annotationView == null) {
         // create new annotation
         annotationView = new CustomAnnotationView(annotation, annotationId);
      }
      else {
         annotationView.annotation = annotation;
      }
      annotation.CanShowCallout = true;
      // setup other info for view
      // ..........

      return annotationView;
   }
}
Cevap 02/03/2010 saat 18:30
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more