ios - 行删除后,UITableviewcell中的UITextfield返回的标签错误

标签 ios uitableview tags uitextfield

我在每个单元格中都有一个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:,因为如果我正在编辑其文本字段的单元格超出屏幕,它将返回null。

如何获得正确的标签号?我不想重新加载表格,因为它没有任何动画。有什么可以替代的?任何建议都欢迎。谢谢。

最佳答案

不要使用indexPath.row来定义您的值,如下所示

我是根据假设编写的以下代码,我不知道您的数据源可能有所不同。

for(int i=0;i<10;i++){
     Data *obj=[[Data alloc] init];
     obj.tag=i;//
     obj.value=@"your value";

     [dataSource addObject:obj];
}

Data *obj=[dataSource objectAtIndex:indexPath.row];
cell.textfield.tag = obj.tag;

而您将获取标签
-(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);

        Data *obj;
        for(Data *data in dataSource){
            if(data.tag == row){
                obj=data;break;
            }

        }

        NSString *str = obj.value;
    }

关于ios - 行删除后,UITableviewcell中的UITextfield返回的标签错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15564604/

相关文章:

ios - Xcode 无法生成 Swift UI 预览 - 由于内部错误 : planningFailed,构建中止

iphone - NSOperationQueue 并将委托(delegate)发送到主线程

android - iOS/Android Phonegap - 智能手机纵向,平板电脑横向

objective-c - cocoa 对关键字/标签的控制

ios - AppStore 图标变成全黑

ios - 项目列表与数据源

ios - 堆叠两个 UITableView

ios - 在里面放置一个 UImageView ?还是外面?一个 UITableView

javascript - 脚本标签和页面有效性的最低要求

iOS:UITableView cell.tag 数在进出 View 时不断增加