MKPointAnnotation анимация из фиксированной позиции на экране - PullRequest
0 голосов
/ 02 апреля 2012

Я использую этот кусок кода для перехвата и настройки анимации отбрасывания булавки:

- (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), это убьет анимацию.Булавки просто появляются.

Есть идеи?

...