Получить текущую позицию анимированного прокрутки

У меня возникла следующая проблема.

i подклассифицировал uiscrollview, который contentOffset анимируется этим кодом:

[UIView animateWithDuration:1.0 
                      delay:1.0
                    options:options
                 animations:^{
                     self.contentOffset = CGPointMake(label.frame.size.width, 0);

                 }
                 completion:^(BOOL completed) {
                     //some other stuff
                 }];

Теперь, когда пользователь "willBeginDragging" scrollview, я хочу остановить текущую анимацию и установить scrollview.contentoffset в текущую позицию, которую он имеет в uianimation.

например, пользователь входит в экран, через 1 секунду прокрутка начинает прокрутку, если пользователь коснется прокрутки через 2 секунды и перетащит ее, scrollview.contentoffset должен иметь точное положение текущей позиции анимации.

если я получаю значение смещения содержимого в методе willbegindrag, оно уже как последнее значение анимации, так как uianimation устанавливает значения в конечное состояние, а затем анимирует.

как получить текущую позицию смещения содержимого от запущенной анимации?

NSLog(@"pos of content x %f, y %f", [[self.layer presentationLayer] frame].origin.x, [[self.layer presentationLayer] frame].origin.y);

Я прочитал о слое презентации, но сам вид не анимирован, мне нужен scrollview.contentoffset.

mhh, любые идеи? ТНХ

УЖЕ РЕШЕННО:

Слой представления self.layer абсолютно корректен.

Но мне пришлось использовать границы, а не кадр....

Извините, теперь вы и я это знаем: P

Итак, правильный код:

CGPoint pos = [[self.layer presentationLayer] bounds].origin;

чтобы получить текущую позицию анимированного прокрутки во время анимации.

Ответ 1

Вы можете получить смещение содержимого во время прокрутки ScrollView с помощью следующего кода...

-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{

 NSLog(@"%f", scrollView.contentOffset.x);

}