Я сделал это, используя два UIScrollView
экземпляра. Первый - это то, где отображается фактический контент, а второй (который находится позади первого в z-порядке) - мой медленный фон. Оттуда к верхнему UIScrollView
прикреплен делегат, который получает уведомление при изменении contentOffset
. Этот делегат, в свою очередь, программно устанавливает contentOffset
фоновой прокрутки, умноженной на константу, чтобы замедлить прокрутку вниз относительно переднего плана. Так, например, у вас может быть что-то вроде:
// Defined as part of the delegate for the foreground UIScrollView
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
UIScrollView* scroll_view(static_cast<UIScrollView*>(bkg_scroller_m.view));
CGPoint offset(scrollView.contentOffset);
offset.x = offset.x / 3;
offset.y = offset.y / 3;
// Scroll the background scroll view by some smaller offset
scroll_view.contentOffset = offset;
}