2013-08-01 57 views
0

在屏幕上,用戶可以單擊文本字段以加載選擇器來選擇位置。然後,我使用基於此位置的自定義單元重新加載tableview中的所有元素。對於某些位置可能沒有加載任何內容,因此沒有單元格。當單元格不存在時點擊UITableView的方法,使鍵盤將消失

當我有細胞和用戶點擊過的這部分代碼被很好地敲擊鍵盤:

-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    [self.locationTextField resignFirstResponder]; 

    ... 
} 

我也有一段代碼是很好的把手不點擊任何東西

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [self.view endEditing:YES]; 
} 

但是當tableview沒有單元格時,當用戶單擊tableview的空間時,這些單元格都不會被觸發。還有什麼我可以設置來檢測該區域的觸摸?

+2

你可以水龍頭識別器添加到表視圖或表視圖的超級視圖。 – dasdom

回答

2

您可以嘗試使用UITapGestureRecognizer並將其添加到表格視圖中。 事情是這樣的:

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tableViewTap:)]; 
[self.myTableView addGestureRecognizer:tapRecognizer]; 

然後:

-(void) tableViewTap:(UIGestureRecognizer*)recognizer 
{ 
    CGPoint tapLocation = [recognizer locationInView:self.myTableView]; 
    NSIndexPath *indexPath = [self.myTableView indexPathForRowAtPoint:tapLocation]; 

    if (indexPath) //user tapped on a table cell 
     recognizer.cancelsTouchesInView = NO; 
    else //user tapped somewhere else on the table view 
    { 
     //your stuff here 
    } 
} 
相關問題