UIScrollView меню и эффект параллакса - PullRequest
1 голос
/ 17 декабря 2011

Мне нужно создать главное меню для моего приложения с помощью UIScrollView. У меня есть несколько изображений внутри, которые можно нажать. Когда я прокручиваю UIScrollView, мне нужно, чтобы на заднем плане были два других вида, которые перемещаются, создавая эффект параллакса. Может ли кто-нибудь предоставить мне пример кода? Я пытаюсь работать с

-(void) scrollViewDidScroll:(UIScrollView *)scrollView

но я не могу найти какой-либо продуктивный пример подачи заявки на мой проект.

Ответы [ 2 ]

3 голосов
/ 17 февраля 2012

Как это? ImageView будет прокручиваться в два раза быстрее, чем UIScrollView.

    float y = scrollView.contentOffset.y;
    CGRect imageFrame = self.imageView.frame;
    imageFrame.origin.y = y/2;
    self.imageView.frame = imageFrame;
2 голосов
/ 20 ноября 2012

Этот репозиторий GitHub имеет удивительную реализацию, которая работает довольно хорошо: https://github.com/ralfbernert/RBParallaxScrolling

Вот мой тест кода с использованием UIScrollView с нумерацией страниц (спереди) и изображением на заднем плане: http://clrk.it/211o3h0A053m

Бит кода, который выполняет этот трюк с параллаксом, работает следующим образом:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if (scrollView == _scrollView) {
        float speedFactor = _headerImageScrollView.contentSize.width / _scrollView.contentSize.width;
        [_headerImageScrollView setContentOffset:CGPointMake(speedFactor * _scrollView.contentOffset.x, 0)];
    }
}

В этом коде у меня есть UIScrollView, который содержит UIImageView;Я называю это _headerImageScrollView.

Перед ним у меня есть второй UIScrollView с нумерацией страниц и тремя метками.Это называется _scrollView.

...