gpt4 book ai didi

ios - 在使用 CoreData 的 TableView 中将行移动到底部

转载 作者:行者123 更新时间:2023-11-29 11:04:47 25 4
gpt4 key购买 nike

在我的应用程序中,我有一个文件夹文件(一对多关系)。因此,当我打开我的应用程序时,我的 firstViewController 包含所有文件,当单击每个文件夹时,它会打开一个 tableViewController 显示该文件夹中的文件。

现在每当我滑动任何一行时,它都会移到底部行并且表格会相应更新,下一个滑动行将位于第一个滑动行之上。

例如,目前如果我的表包含

0 1 2 3
A B C D

刷A后

0 1 2   3
B C D **A**

刷B后

0 1   2 3
C D **B A**

等等,

要实现这个功能,我还应该更新 NSOrderedSet如下所示

for (int i = 0; i < [self.folder.file count]; i++)
{
File *file = [self.folder.file objectAtIndex:i];
if(file.completedStatus == false)
{
m_position = i;
m_finalIndexPath = [NSIndexPath indexPathForRow:i inSection:0];
}
}

file.completedStatus = YES;

id obj = [self.folder. file objectAtIndex:row];

NSMutableOrderedSet *files = [self.folder.file mutableCopy];
[files removeObjectAtIndex:row];
[files insertObject:obj atIndex:m_position];


NSIndexPath *currentIndexPath = [NSIndexPath indexPathForRow:row inSection:0];
[m_tableView moveRowAtIndexPath:currentIndexPath toIndexPath:m_finalIndexPath];
self.folder.file = files;
}
[self.managedObjectContext save:nil];
[m_tableView reloadData];

这在这个 View 中工作正常,这里的 self.folder 是用户点击的特定文件夹

现在我有另一个名为 TestViewController 的 ViewController,其中我有一些文件对象,而不管它们存在于哪个文件夹中。我已经用这些文件填充了这个 TestViewController 的表格,现在在这里,当我滑动单元格时,它们会改变颜色但不会像上面那样移动它们的位置

例如

0 1 2 3
A C B D

after swiping A and B

0 1 2 3
**A** C **B** D

现在A可以属于文件夹1,B可以属于文件夹2,

当我关闭(关闭)这个 TestViewController 时,应该发生的事情是

a) 它默认显示 fileViewControllerb) 文件 A 的颜色应该改变,并且它应该通过检查是否已经有任何被刷过的单元格移动到一个位置。如果是,则应将其放在上方或底部。

c) 颜色 B 也类似。

问候兰 git 。

最佳答案

兰 git ,

关于你的问题,我不明白你在这里问什么。所以,请提供一些其他详细信息。

要知道特定文件所属的文件夹,这很容易实现。

如果您在文件和文件夹之间设置了反向关系,只需访问该关系即可。

例如,如果反向关系称为toFolder,则可以像这样检索当前文件夹

Folder* currentFolder = currentFile.toFolder; // or access it through KVC

要创建反向关系,请看这里:Core data structure use multiple entities or not?

关于ios - 在使用 CoreData 的 TableView 中将行移动到底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14170772/

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