Захват и остановка распространения пользовательского взаимодействия iOS UITableViewCell - PullRequest
0 голосов
/ 05 августа 2011

Я делаю пользовательский чертеж UITableViewCell, который я вложил в подкласс.Там есть элемент управления OpenGL ES 2.0, который требует взаимодействия с пользователем для работы ... теперь, если я начинаю перетаскивать горизонтально, элемент управления отвечает, но как только я иду в вертикальном направлении, он начинает перемещать область просмотра табличного представления.Как мне остановить это взаимодействие от перехода к UITableView и ограничить его собственным UIView в UITableViewCell?

Ответы [ 2 ]

1 голос
/ 07 августа 2011

Вы можете попытаться создать подкласс UITableView и переопределить следующие методы

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {  
    UITouch *touch = [touches anyObject];

    // if user tapped on your custom view, disable scroll        
        self.scrollEnabled = NO;
    // end if

    [super touchesBegan:touches withEvent:event];
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    self.scrollEnabled = YES;
    [super touchesEnded:touches withEvent:event];
}

- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
    self.scrollEnabled = YES;   
    [super touchesCancelled:touches withEvent:event];
}
1 голос
/ 07 августа 2011

Я не думаю, что вы можете предотвратить взаимодействие с пользователем в UITableView, поскольку это повлияет на все подпредставления.
Я попытаюсь отправить взаимодействие UITableView тому методу, который вы хотите, чтобы он использовал.

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
   [MyClass myScrollDidStartMethod]; 
}

или используйте - (void) scrollViewDidScroll: (UIScrollView *) sender, чтобы вы могли работать с contentOffset отправителя, чтобы получить направление прокрутки (см. этот пост для получения дополнительной информации оэто)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...