我在每個單元格中都有一個UITextfield,我爲其分配一個等於當前行號的標籤。在UITableviewcell裏面UITextfield返回的錯誤行刪除後
cell.textfield.tag = indexPath.row;
我需要indexpath.row當用戶結束編輯文本框。我在這裏面臨
-(void) textFieldDidEndEditing:(UITextField *)textField{
CustomCell *cell = (CustomCell *) [[textField superview]superview];
if([cell isKindOfClass:[UITableViewCell class]]){
//NSIndexPath *indexPath = [Table indexPathForCell:cell];
int row = textField.tag;
NSLog(@"indexpath: %d",row);
NSString *str = [datasource objectAtIndex:row]; //get exception here
.............. }
問題是,當我刪除使用deleteRowsAtIndexPaths
一排,然後結束編輯最後一個單元格,我拿錯標籤號,因爲數據源不包含元素索引處。此外,我不能使用indexPathForCell:
,因爲如果我的正在編輯文本字段的單元格不在屏幕上,它將返回空值。
我能做些什麼來獲得正確的標籤號碼?我不想重新加載表格,因爲它沒有任何動畫。什麼可以替代?任何建議都是值得歡迎的。謝謝。
您是否正在刪除此標記中的行'[tableView BeginUpdates]'&'[tableView endUpdates]'? – 2013-03-22 07:05:37
是的,我在做這些標籤。 – NightFury 2013-03-22 07:06:44
不要使用indexPath.row來分配標籤,你可以定義你的值。 – iphonic 2013-03-22 07:06:55