2013-09-03 3 views
0

Я создал представление параллакса на представлении таблицы, на котором горизонтальное прокручивание за заголовкомTableView.Параллакс-эффект на UITableView с горизонтальным UIScrollView

Я установил tableView.backgroundColor = [UIColor clearColor];

то tableView.headerTableView.backgroundColor = [UIColor clearColor];

и установить мой Scrollview так:

[self.view insertSubview:scrollView belowSubview:tableview]; 

Параллакс эффект работает отлично, но моя проблема в том, что пользователь не может взаимодействовать с горизонтальным Scrollview поскольку он находится за столомView;

Я попытался установить tableView.headerTableView.userInteractionEnabled = NO;, но он не работает.

Если я хочу взаимодействовать с scrollView, мне нужно установить tableView.userInteractionEnabled = NO;, но затем я больше не могу взаимодействовать с tableView.

Есть ли сложный способ взаимодействия с scrollView и tableView и сохранить эффект параллакса?

ответ

2

Если вы хотите передать штрихи через «просмотр», вы можете переопределить hitTest на просмотр и передать удар в Еще один.

В моем случае у меня был довольно узкий прокрутка, поместил его в контейнер большего размера и установил его как свойство (touchReceivingView). В контейнере я использовал следующий код, чтобы передать hitTest в другой вид:

- (UIView *) hitTest:(CGPoint)point withEvent:(UIEvent *)event { 
    if ([self pointInside:point withEvent:event]) { 
     return touchReceivingView; 
    } 
    return nil; 
} 
+0

Работает как шарм! Спасибо чувак ! – kschaeffler

0

Вы пытались отключить userInteraction для горизонтального прокрутки и реализовать UISwipeGestureRecognizer, чтобы поймать промах пользователя? После этого вы можете программно «перемещать» горизонтальное прокрутку в соответствии с событием, инициированным распознающим устройством.

+0

Я хоть об этом, но я нашел его слишком хаки. Как это делают другие приложения? – kschaeffler

+0

хм ... Я никогда этого не замечал и да, наверное, это слишком хаки –

Смежные вопросы