0

私は tapOnMarker セレクターを実装しており、カスタムの annotationView を作成しています。それはannotationViewを表示していますが、ピンポイントをクリックすると、annotationViewは現在のピンポイントよりも少ないカウントのピンポイントを抽象化し、ピンポイントには最大カウントがannotationViewに表示されます。これが私の実装コードです。

- (void) tapOnMarker: (RMMarker*) marker onMap: (RMMapView*) map
{
    frame = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"redbox.png"]];
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.frame =CGRectMake(0, 0,0, 0);
    [button setBackgroundImage:[UIImage imageNamed:@"pinMarker.png"] forState:UIControlStateNormal];
    button.enabled = YES;
    button.userInteractionEnabled = YES;
    [button addTarget:self action:@selector(markerLabelButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
    [marker setLabel:frame];
}

4

1 に答える 1

1

マーカーをロードするときは、次の手順を実行します。

RMMarker *marker = [[RMMarker alloc]initWithUIImage:img anchorPoint:CGPointMake(0.5, 1.0)];
[marker setText:@"hello"  forMarker: marker];
[marker hideLabel];

- (void) setText: (NSString*) text forMarker: (RMMarker*) marker
{
  CGSize textSize = [text sizeWithFont: [RMMarker defaultFont]]; 
  CGPoint position = CGPointMake(  -(textSize.width/2 - marker.bounds.size.width/2), 0 );
  [marker changeLabelUsingText: text position: position font: [UIFont systemFontOfSize: 15.0]foregroundColor: [UIColor whiteColor] backgroundColor: [UIColor blackColor]];  
}

マーカーをクリックするたびに、これらのメソッドが呼び出され、マーカーが表示されます。

- (void) tapOnMarker: (RMMarker*) marker onMap: (RMMapView*) map
{
  NSArray* markers = [self.markerManager markers];
  for(RMMarker* m in markers) {
    if ([m class] == [RMMarker class])
      [m hideLabel];
  }
  [marker showLabel];   
}
于 2012-08-07T09:27:57.743 に答える