gpt4 book ai didi

objective-c - 在使用额外行插入新记录的同时在编辑模式之间切换时如何使用核心数据并正确显示动画?

转载 作者:行者123 更新时间:2023-11-28 23:17:48 24 4
gpt4 key购买 nike

我正在尝试在我的 UITableView 底部使用一个额外的行来插入一条记录。这工作正常,但我无法正确设置动画。要么正确显示了额外的行,但我没有得到任何动画(通过在 setEditing: 方法中使用 [self.tableView reloadData]。或者,我得到了动画,但没有使用 reloadData 得到额外的行。我知道我可能没有显示正确地添加额外的行(在我的 numberOfRowsInSection 方法中再返回一行,并使用 reloadData 强制刷新。)。

我知道一定有一个正确的方法来做到这一点,但我还没有看到任何例子。

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {


[super setEditing:editing animated:animated];

[self.tableView setEditing:editing animated:animated];


}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

id <NSFetchedResultsSectionInfo> sectionInfo = [[fetchedResultsController sections] objectAtIndex:section];
if (self.editing == YES) {
return [sectionInfo numberOfObjects] + 1;
}
return [sectionInfo numberOfObjects];

}


- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath {

if (indexPath.row + 1 > [fetchedResultsController.fetchedObjects count]) {
cell.textLabel.text = @"Add New Row...";
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
} else {

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
MyManagedObject *aManagedObject = [fetchedResultsController.fetchedObjects objectAtIndex:indexPath.row];
cell.textLabel.text = aManagedObject.planName;
}
}

最佳答案

使用 insertRowsAtIndexPaths:withRowAnimation: 通知 TableView 您在编辑开始时在必要位置“插入”了一行,并使用 deleteRowsAtIndexPaths:withRowAnimation: 通知表查看您在编辑完成后“删除”了该行。

关于objective-c - 在使用额外行插入新记录的同时在编辑模式之间切换时如何使用核心数据并正确显示动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5205788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com