次のコードに示すように、テーブルビューが引き伸ばされると(スクロールアップしない)、NSLog(@"tap is not on the tableview cell")
常に呼び出されます(indexPath は常に nil になると思っていたので)。しかし、セクション番号が 2 より大きいセクション ヘッダーでアバターをタップすると、NSLog
呼び出されません。奇妙だ、ここで何が起こっているか知っている人はいますか?
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
...
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)];
tapGesture.numberOfTapsRequired = 1;
[avatar addGestureRecognizer:tapGesture];
//avatar is UIImageView and the user interaction is enabled.
[headerView addSubview: aMessageAvatar];
return headerView;
...
}
-(void)handleTapGesture:(UITapGestureRecognizer *)sender
{
CGPoint point = [sender locationInView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:point];
if (!indexPath) {
NSLog(@"tap is not on the tableview cell");
}
}