Объединение UITableViews в стек не передает события касания под своим представлением

У меня есть 3 UIView, сложенные один поверх другого

UITableview
planeView
{{1 }} rootView

TableView находится вверху, а rootView - внизу. (rootView не виден, так как TableView находится поверх него)

Я реализовал следующий код в rootView

/*code in rootView*/



- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {}  

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {} 

, ожидая, что эти функции будут вызываться при касании или перемещении самого верхнего представления, т.е. TableView, но наоборот ни одна из функций не вызывалась.

Я также попытался поместить следующий код в TableView, чтобы вызывались методы rootView

 /*code in TableView so that the rootView methods are called(TableView is the subview of rootView)*/

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
 {
[super touchesBegan:touches withEvent:event];
[self.superview touchesBegan:touches withEvent:event];
 }

Как и ожидалось, это произошло, но проблема в том, что делегаты TableView, подобные

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath    

, не вызываются.

Есть ли способ гарантировать, что делегаты TableView, реализованные в классе TableView (didSelectRow :) и функции touchesBegan:, touchesMoved .. в rootView, также вызываются соответствующим образом?

т.е. TableCell вызываются как функция (didSelectRow: atIndex) в -> TableView, так и метод (touchesBegan и touchesEnd) в -> rootView.

6
задан Infinite Recursion 12 August 2014 в 05:07
поделиться