Я делаю некоторый пользовательский рисунок UITableViewCell, который я подклассифицировал. Там есть элемент управления OpenGL ES 2.0, для работы которого требуется взаимодействие с пользователем ... теперь, если я начинаю перетаскивать по горизонтали, элемент управления реагирует, но как только я иду в вертикальном направлении, он начинает перемещать окно просмотра таблицы. Как остановить это взаимодействие от перехода к UITableView и ограничить его моим собственным UIView в UITableViewCell?
Захват и прекращение распространения взаимодействия с пользователем iOS UITableViewCell
Ответы (2)
Вы можете попытаться создать подкласс 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];
}
person
Evgeny Shurakov
schedule
07.08.2011
Я не думаю, что вы можете предотвратить взаимодействие пользователя с UITableView, так как это повлияет на все подпредставления.
Я попытаюсь отправить взаимодействие UITableView тому методу, который вы хотите использовать.
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
[MyClass myScrollDidStartMethod];
}
или используйте - (void)scrollViewDidScroll:(UIScrollView *)sender, чтобы вы могли работать с contentOffset отправителя, чтобы получить направление прокрутки (см. этот пост для получения дополнительной информации об этом)
person
pasine
schedule
07.08.2011
Спасибо. Нет необходимости в подклассах.
- person Steve Moser; 19.12.2011