Получить текущий кадр UIView во время анимации

У меня есть UIView, и я хочу получить его текущий кадр, пока он анимирован. Я использую базовую анимацию:

[UIView beginAnimations:@"MoveView" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDuration:3];
_testView.frame = CGRectMake(0, 100, 40, 40);
[UIView commitAnimations];

и у меня есть кнопка, которая должна добавить еще один UIView в текущую позицию первого во время анимации, но когда я нажимаю кнопку, она добавляет ее в конечную позицию анимации... Есть предложения? Заранее спасибо!


person Nick Marinov    schedule 22.02.2014    source источник


Ответы (1)


Скорее всего, вы устанавливаете недавно добавленные свойства UIView на основе слоя модели анимированного представления. Давайте попробуем настроить свойства UIView на основе presentationLayer анимированного представления:

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

Справочник по классу CALayer

person vbali    schedule 22.02.2014
comment
ах я должен был бросить это. ((CALayer *)_testView.layer.presentationLayer).frame Большое спасибо :)) - person Nick Marinov; 22.02.2014
comment
что насчет этого? [_testView.layer презентацияLayer].position [_testView.layer презентацияLayer].bounds - person vbali; 22.02.2014
comment
это здорово, я рад, что смог помочь :) - person vbali; 22.02.2014