次の画像に示すように、注釈のタイトルを表示するのに問題があります。最初の画像は値を非常によく示しています。一方、値が 3 桁になると、2 番目の画像に示すように、タイトルに 3 つのドットが表示されます。この問題を解決する方法を知りたいです。どんなアイデアでも大歓迎です!よろしくお願いします。参照用にコードをここに配置しました!
- (MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation {
MKAnnotationView *pinView=nil;
if(![annotation isKindOfClass:[Annotation class]]) // Don't mess user location
return nil;
static NSString *defaultPinID = @"StandardIdentifier";
pinView = (MKAnnotationView *)[self.mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
if (pinView == nil){
pinView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID];
}
if ([annotation isKindOfClass:[Annotation class]]) {
Annotation *a = (Annotation *)annotation;
pinView.image = [ZSPinAnnotation pinAnnotationWithColor:a.color];
pinView.annotation = a;
pinView.enabled = YES;
pinView.centerOffset=CGPointMake(6.5,-16);
pinView.calloutOffset = CGPointMake(-11,0);
}
pinView.canShowCallout = YES;
UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[rightButton setTitle:annotation.title forState:UIControlStateNormal];
[pinView setRightCalloutAccessoryView:rightButton];
pinView.leftCalloutAccessoryView = [[UIView alloc] init];
pinView.leftCalloutAccessoryView=nil;
return pinView;
}
私の showCallout タイトルは、次のコードで更新されます。
NSNumber *attr2=[attr valueForKey:@"ozone_level"];
annotation.title=[NSString stringWithFormat:@"Ozone Level:%@",[attr2 stringValue]];