如何在tableView的数据源和代理事件之外获取当前点击的是哪一行
来源:互联网 发布:ios数据存储方式 编辑:程序博客网 时间:2024/04/30 21:06
NSIndexPath *indexPathOfOwnerCell = nil; /* Also, make sure the selected text field is visible on the screen *///获取每个section里共有多少个cell NSInteger numberOfCells = [self.myTableView.dataSource tableView:self.myTableView numberOfRowsInSection:0]; NSLog(@"numberOfCells=%d",numberOfCells); /* So let's go through all the cells and find their accessory text fields. Once we have the refernece to those text fields, we can see which one of them is the first responder (has the keyboard) and we will make a call to the table view to make sure after the keyboard is displayed, that specific cell is NOT obstructed by the keyboard */ for (NSInteger counter = 0; counter < numberOfCells; counter++){ NSIndexPath *indexPath = [NSIndexPath indexPathForRow:counter inSection:0]; UITableViewCell *cell = [self.myTableView cellForRowAtIndexPath:indexPath]; UITextField *textField = (UITextField *)cell.accessoryView; if ([textField isKindOfClass:[UITextField class]] == NO){ continue; } if ([textField isFirstResponder]){ indexPathOfOwnerCell = indexPath; NSLog(@"indexPath.section=%d",indexPath.section); NSLog(@"indexPath.row=%d",indexPath.row); break; } } [UIView commitAnimations]; if (indexPathOfOwnerCell != nil){ [self.myTableView scrollToRowAtIndexPath:indexPathOfOwnerCell atScrollPosition:UITableViewScrollPositionMiddle animated:YES]; }