gpt4 book ai didi

ios - 如何限制 UITableView 行重新排序到一个部分

转载 作者:IT王子 更新时间:2023-10-29 07:28:23 26 4
gpt4 key购买 nike

我正在为这个问题苦思冥想,但谷歌什么也没找到。我最终解决了这个问题,并认为为了下一个人我会把它写在这里。

您有一个包含多个部分的 UITableView。每个部分都是同类的,但整个表是异构的。因此,您可能希望允许对一个部分内的行进行重新排序,但不允许 部分。也许您甚至只想让一个部分完全可重新排序(这是我的情况)。如果您像我一样正在查看 UITableViewDataSourceDelegate,您将找不到关于何时让您在各部分之间移动一行的通知。当它开始移动一行时你会得到一个(这很好),当它已经移动时你会得到一个并且你有机会与你的内部东西同步。没有帮助。

那么如何防止部分之间的重新排序?

我会将我所做的作为一个单独的答案发布,让其他人发布更好的答案!

最佳答案

此实现将防止像 Phil 的回答那样在原始部分之外重新排序,但它也会将记录捕捉到该部分的第一行或最后一行,具体取决于拖动的位置,而不是拖动的开始位置。

- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath
{
if (sourceIndexPath.section != proposedDestinationIndexPath.section) {
NSInteger row = 0;
if (sourceIndexPath.section < proposedDestinationIndexPath.section) {
row = [tableView numberOfRowsInSection:sourceIndexPath.section] - 1;
}
return [NSIndexPath indexPathForRow:row inSection:sourceIndexPath.section];
}

return proposedDestinationIndexPath;
}

关于ios - 如何限制 UITableView 行重新排序到一个部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/849926/

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