У меня 3 UIViews сложены друг на друга
UITableView
PlaneView
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.