Я использую этот кусок кода для перехвата и настройки анимации отбрасывания булавки:
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views {
MKAnnotationView *aV;
for (aV in views) {
MKPointAnnotation *annotation = aV.annotation;
CGRect endFrame = aV.frame;
aV.frame = CGRectMake(aV.frame.origin.x, aV.frame.origin.y - 230.0, aV.frame.size.width*5.0f, aV.frame.size.height*5.0f);
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.45];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[aV setFrame:endFrame];
[UIView commitAnimations];
}
}
В приведенном выше примере булавка появляется на 230 пикселей выше своей точки назначения.В результате получается анимация, в которой вывод «падает» на место.
Я хотел бы иметь возможность установить исходное положение вывода относительно экрана, а не сам вывод.Например, я бы хотел, чтобы штифт начинался с верхнего левого угла.Но если я установлю aV.frame на CGRectMake(0.0f, 0.0f, aV.frame.size.width*5.0f, aV.frame.size.height*5.0f)
, это убьет анимацию.Булавки просто появляются.
Есть идеи?