合并UITableViewCells

Cla*_*lay 5 iphone uitableview ios

我希望能够将一个单元格拖到另一个单元格上,当我释放它时,它将有效地"合并"单元格(显示不同的单元格).我不确定a UITableView是最好的控件还是a UICollectionView.有没有人对如何进行有任何想法?

Cla*_*lay 2

这是我用来以伪代码开发它的解决方案。

  1. 添加一个UILongPressGestureRecognizer到UITableView
  2. 在 上UIGestureRecognizerStateBegan,使用[UITableView indexPathForRowAtPoint]来确定哪个单元格被“长按”。您将把这个单元格变成悬停 UITableViewCell单元格。
  3. 将引用变量设置为相应的模型对象。
  4. 使用UIGraphicsBeginImageContextWithOptions来渲染实际 UITableViewCell 内容的图像。创建一个UIImageView并向其添加一些自定义镶边(阴影等)
  5. 将自定义 UIImageView 作为子视图添加到 UITableView,并删除原始选定的固定UITableViewCell (removeFromSuperview)。
  6. 在 上,计算悬停在 中UIGestureRecognizerStateChanged的位置并为固定单元格设置动画。(您还需要切换先前突出显示的固定单元格的动画)。 UITableViewCellUITableView
  7. 当用户释放长按时,您需要重新排序模型数组,删除底层固定单元,然后UITableViewbeginUpdates调用中重新加载所有内容。

还有一些其他事情需要注意,例如当遇到边界条件时滚动、将悬停单元放在原始位置上等,但这就是它的基本要点。希望这有帮助。