这里的情景。
我有一个UITableView
With Multiple Section。每个部分包含精确的1行。
每行包含UICollectionView
。
----------------------------------
TablViewSection 1
----------------------------------
|--------------| |--------------|
| Collection | | Collection |
| View Cell | | View Cell |
|--------------| |--------------|
----------------------------------
TablViewSection 2
----------------------------------
|--------------| |--------------|
| Collection | | Collection |
| View Cell | | View Cell |
|--------------| |--------------|
这就是它的样子。
这很完美。
但这是我想要做的:我想将第一部分的CollectionViewCell
拖到第二部分UICollectionView
。
我在PanGesture
上应用了CollectionViewCell
,而下面是panGesture的选择器方法。使用下面的代码,我可以拖动集合视图单元格,但无法删除到第二部分的集合视图。
-(void)handlePan:(UIGestureRecognizer *)panRecognizer {
UICollectionView *collectionViewRef = [[panRecognizer view] superview];
CGPoint locationPoint = [panRecognizer locationInView:[[panRecognizer view] superview]];
UICollectionViewCell *cellRef = [panRecognizer view];
if (panRecognizer.state == UIGestureRecognizerStateBegan) {
NSIndexPath *indexPathOfMovingCell = [collectionViewRef indexPathForItemAtPoint:locationPoint];
UICollectionViewCell *cell = [collectionViewRef cellForItemAtIndexPath:indexPathOfMovingCell];
UIGraphicsBeginImageContext(cell.bounds.size);
[cell.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *cellImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
if (panRecognizer.state == UIGestureRecognizerStateChanged) {
// [self.movingCell setCenter:locationPoint];
[cellRef setCenter:locationPoint];
}
if (panRecognizer.state == UIGestureRecognizerStateEnded) {
// [self.movingCell removeFromSuperview];
[cellRef removeFromSuperview];
}
}
答案 0 :(得分:0)
编辑:我的回答有点晚,但如果这对某人有帮助就可能很棒!
我有一天做完了,而且很难......
您需要做类似的事情:
CGRect frame = [self.collectionView convertRect:draggedCell.frame toView:self.view];
将拖动的单元格的点转换为父视图,然后计算屏幕上的位置。
之后,您需要将单元格的数据复制/粘贴到新位置。
希望这对我们有所帮助。
如果我错了或者我误解了这个问题,请不要犹豫,让我知道。