2012-03-29 9 views
0

Я делаю классный CA3DTransform, в то время как UIScrollview прокручивается в методе делегата scrollViewDidScroll. Он отлично работает, когда вы используете свой палец для прокрутки, поэтому при прокрутке вручную все идеально.CATransform3D weird UIScrollView contentOffset

Но, когда я установил Scrollview contentoffset программно, как:

[scrollView setContentOffSet:CGPointMake(0,460) animated:YES]; 

Он по-прежнему вызывает метод делегата scrollviewdidscroll, поэтому одни и те же методы анимации называются, так что я до сих пор вижу правильную анимацию, но как-то части вид отсутствует во время и после анимации! Я попытался установить layer.zPosition на все, и это, похоже, не помогает. Это должно быть хорошо, так как ручная прокрутка работает без того, что части представлений пропадают ... Как-то вызов этого метода программно отличается, и я понятия не имею, почему!

+0

Опубликовать код CATransform3D, более чем вероятно, что-то странно с вашей перспективой или отсечения самолетов. В качестве альтернативы отключите трехмерную перспективу и убедитесь, что представления все еще отображаются правильно. Затем вы можете принести свой 3D-код по частям, пока не решите проблему. – Sam

+0

Я отключил 3D, а затем никаких проблем, поэтому это определенно что-то с 3D, но только при прокрутке программно. –

ответ

0

Опубликовать свой вопрос таким образом не очень понятно, учитывая, что с делегатом scrollViewDidScroll я могу распечатать код, как вручную, так и программно.

... 
UIScrollView *sv = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 10, 320, 200)]; 
[sv setContentSize:CGSizeMake(640, 200)]; 
sv.delegate = self; 
[sv setContentOffset:CGPointMake(320, 0) animated:YES]; 
[self.view addSubview:sv]; 
... 

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    NSLog(@"---%@---", NSStringFromCGPoint(scrollView.contentOffset)); 
} 

В этом простом примере вы можете видеть, что делегат действительно работает. Извините простоту ответа, но единственный вопрос, который вы задаете, трудно помочь вам.

0

У меня была аналогичная проблема (в контексте использования scrollview для слайд-шоу), но она была решена с помощью scrollRectToVisible:NO (НЕТ без анимации) и завернута в блок анимации UIView, где я также поместил код анимации.

+1

hm интересно, может попробовать это сегодня .. –