我有一个 UITableView,我想以编程方式将一行从位置 N1 移动到位置 N2,并且我希望它能够从旧位置到新位置进行动画处理。我浏览了 UITableView 文档,只看到插入、重新加载和删除。您知道我可以通过编程方式执行此操作的方法吗?
一些注意事项:
我过去处理过类似的事情,解决方案并不漂亮,但它确实有效。
基本上你必须做一些数学计算来计算该行在屏幕上的位置。然后根据y
的财产contentOffset
你的UITableView
.
你可以这样做:
[myView convertPoint:localPosition toView:nil];
然后你会构建一个新的UIView
这与你的观点相同。将其框架设置为直接位于UITableViewCell
你正在尝试移动。将其添加为应用程序主视图的子视图UIWindow
.
你会想要设置userInteractionEnabled
or scrollEnabled
to NO
在你的UITableView
当所有这一切都在进行时,用户就不能在整个过程中弄乱事物的位置(只需记住将其设置回YES
当一切都完成动画时)。
然后将其动画到新的位置,然而这是最有意义的。
我了解您可能需要滚动UITableView
在这一切的过程中,事情变得相当复杂,但是你can也为滚动设置动画。
当然,您必须对要设置动画的行执行类似的操作to如果您的应用程序中有必要。
就像我说的,这并不容易或漂亮。但是我do了解你想要实现的目标,我认为当它正确实现时,效果是超级棒的。
如果有人对如何在不发疯的情况下实现这一目标有更好的想法,我很想知道,但这种类型的实现是我能做的最好的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)