У меня возникла следующая проблема.
Я разделил 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.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.
ммм, есть идеи?thx
УЖЕ РЕШЕНО:
Уровень представления self.layer абсолютно корректен.
Но мне пришлось использовать границы, а не рамку ....
Извините, теперь вы и я это знаем: P
Итак, правильный код:
CGPoint pos = [[self.layer presentationLayer] bounds].origin;
, чтобы получить текущую позицию анимированного прокрутки при анимации.