Как получить реальное местоположение UIImageView во время анимации?

Всем привет,


For the animation i used:

[UIView commitAnimation:@"anim" context:nil];
[UIView setAnumatioDuration:10];
imageView.center=CGPointMake(100,100);
[UIView commitAnimation];


The thing is that when i call with timer every 0.5 seconds:

CGRect rect=[[imageview.layer presentationLayer]frame];
CGPoint point=rect.origin;
NSLog(@"x:%f,y:%f",origin.x,origin.y);


I will always get x:100,y:100
And I what i want to get is the true location on the view
while the imageview heading to (100,100)

10x a lot


person user1010046    schedule 24.10.2011    source источник
comment
Бенни, во-первых, в FAQ запрещены подписи. Кроме того, вам не нужно писать свой вопрос в HTML. StackOverflow позволяет использовать форматирование Markdown, поэтому вы можете просто писать в виде простого текста. ;)   -  person sudo rm -rf    schedule 24.10.2011


Ответы (1)


Анимации обновляются на уровне представления представления. Вы можете получить значения, представляющие текущее состояние представления изображения во время анимации, просмотрев этот слой.

CGPoint center = [[imageView.layer presentationLayer] center];
person Simon Lee    schedule 24.10.2011
comment
Это выглядит в основном так же, как и то, что он делает, за исключением того, что он пытается получить начало координат из свойства фрейма, а не из центра. Но это должно работать так же, не так ли? - person acjay; 25.10.2011
comment
Нет, свойства в кадре объекта будут немедленно установлены в их окончательные положения, однако слой представления переместит свойства из их исходного положения в новое, поэтому вы можете запросить этот слой в любое время и получить текущую позицию во время анимации. , использование слоя объектов этого не обеспечивает. - person Simon Lee; 26.10.2011
comment
Но он использует кадр презентации, вот что он написал: CGRect rect=[[imageview.layer PresentationLayer]frame]; - person acjay; 27.10.2011
comment
Не забудьте добавить QuartzCore.framework и включить QuartzCore/QuartzCore.h в свой код. - person antonio081014; 22.10.2013