gpt4 book ai didi

iphone - 以编程方式将 UITableView 行从一个位置移动/动画化到另一个位置

转载 作者:可可西里 更新时间:2023-11-01 03:55:30 26 4
gpt4 key购买 nike

我有一个 UITableView,我想以编程方式将一行从位置 N1 移动到位置 N2,我希望它从旧位置到新位置进行动画处理。我查看了 UITableView 文档,但只看到插入、重新加载和删除。您知道我可以通过编程方式执行此操作的方法吗?

一些注意事项:

  • 我知道我可以设置从位置 N1 删除的动画,同时设置插入到位置 N2 的动画。这是我的后备方案,但我希望用户了解它确实是从 N1 转移到 N2。

  • 我不是在谈论允许用户将它从一个地方拖到另一个地方。我知道如何做到这一点,我正在寻找一种方法来以编程方式启动和动画移动。

最佳答案

我过去处理过类似的事情,解决方案不是很好,但它确实有效。

基本上,您必须进行一些数学运算才能计算出该行在屏幕上的位置。然后根据 UITableViewcontentOffsety 属性进行调整。

你可以这样做:

[myView convertPoint:localPosition toView:nil];

然后您将构造一个与您的 View 相同的新 UIView。将其框架直接设置在您要移动的 UITableViewCell 之上。将其添加为您应用的主 UIWindow 的 subview 。

您需要在 UITableView 上将 userInteractionEnabledscrollEnabled 设置为 NO 而所有这些都是继续这样用户就不会在整个过程中弄乱事物的位置(只要记住在一切都完成动画后将其设置回 YES)。

然后根据最合理的方式将其设置为新位置。

我知道您可能需要在所有这些过程中滚动 UITableView,这会使事情变得相当复杂,但您也可以为滚动设置动画。 p>

如果在您的应用中有必要,您当然必须对要设置动画的行执行类似操作。

就像我说的那样,这既不简单也不漂亮。但我确实理解您想要完成的事情,而且我认为如果正确实现,效果会非常棒。

如果有人对如何在不发疯的情况下完成这项工作有更好的想法,我很想知道,但这种类型的实现是我能做到的最好的。

关于iphone - 以编程方式将 UITableView 行从一个位置移动/动画化到另一个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5109250/

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