Funziona perfettamente su iOS 7 ma la posizione di UIImageView si sposta su immagini simili a iO8 di seguito. Anche rightCalloutAccessoryView sposta la posizione nell'angolo in alto a destra.UIImageView come callout leftCalloutAccessoryView sposta automaticamente l'angolo in alto a sinistra
Qualcuno può aiutare?
Cheers.
In iOS 7
In iOS 8
- (void) MapView: (MKMapView *) MapView didSelectAnnotationView: (MKAnnotationView *) vista {
if(![view.annotation isKindOfClass:[MKUserLocation class]]) {
UBAnnotation *selectedAnnotation = view.annotation;
NSURL * imageUrlAtIndex = [NSURL URLWithString:[[self.objects objectAtIndex:selectedAnnotation.idx] ad_thumbImageUrl]];
UIImageView * leftCalloutView = [[UIImageView alloc] initWithFrame:CGRectMake(2, 2, 40, 40)];
[leftCalloutView setImageWithURL:imageUrlAtIndex];
leftCalloutView.layer.masksToBounds = YES;
leftCalloutView.layer.cornerRadius = 6;
view.leftCalloutAccessoryView = leftCalloutView;
}
}
- (MKAnnotationView *) MapView: (MKMapView *) MapView viewForAnnotation: (id) {annotazione
MKPinAnnotationView *annView=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"currentloc"];
if ([annotation isKindOfClass:[MKUserLocation class]]) {
return nil;
} else {
annView.image = [UIImage imageNamed:@"pin"];
annView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
annView.rightCalloutAccessoryView.tintColor = [UBColor ubGreenColor];
annView.animatesDrop= NO;
annView.canShowCallout = YES;
}
return annView;
}
Sembra un bug in iOS 8 se è necessario correggerlo in questo modo. – Ramis
Il 'leftCalloutAccessoryView' ha impostato l'autolayout in modo tale che il margine sinistro e il margine superiore siano gli stessi. Ed è centrato verticalmente con una priorità di '250'. Tuttavia, la priorità della resistenza alla compressione dell'etichetta è '750'. Quindi, se l'etichetta deve troncare, sposterà a sinistra la vista del callout, il che lo farà spostare verso l'alto. –