gpt4 book ai didi

ios - 将项目从 Collection View 拖放到其他 View IOS 中

转载 作者:行者123 更新时间:2023-12-03 19:50:55 26 4
gpt4 key购买 nike

我有一个包含一些图像的 Collection View 。我还有另一个 UIView。我希望将 Collection View 中的图像拖放到 UIView 中,以便在拖放到 UIView 上时,某些操作会改变颜色。此外,图像在掉落后应保留在其原始位置。

这是我的 Collection View 代码。

-(UICollectionViewCell *) collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
UICollectionViewCell*aCell = [collectionView dequeueReusableCellWithReuseIdentifier:@"myCell" forIndexPath:indexPath];

UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(3,5,100,100)];
imgView.contentMode = UIViewContentModeScaleAspectFit;
imgView.clipsToBounds = YES;
imgView.image = [UIImage imageNamed: [imagePackArray objectAtIndex:indexPath.row]];
[aCell addSubview:imgView];
aCell.backgroundColor = [UIColor redColor];
return aCell;

}

我尝试使用平移手势来实现此目的,但没有成功。

- (IBAction)handlePan:(UIPanGestureRecognizer *)sender {
NSLog(@"panning");
CGPoint translation = [sender translationInView:self.view];
sender.view.center = CGPointMake(sender.view.center.x + translation.x,
sender.view.center.y + translation.y);
[sender setTranslation:CGPointMake(0, 0) inView:self.view];

}

请查看屏幕截图。我想将图像从 Collection View 拖动到购物车图像(位于 UIView 中) enter image description here

我应该采取什么方法?有人可以指导我或提供有帮助的代码片段/链接吗?

最佳答案

我通过Markus Gasser找到了一个图书馆。您可以在下面找到它:

Github上(权威):https://github.com/frenetisch-applaudierend/ios-drag-and-drop或者在 Bitbucket 上:https://bitbucket.org/foensi/ios-drag-and-drop

这是一个非常干净的库,附带一个示例应用程序。它展示了如何将 View 从一个堆栈移动到另一个堆栈;一切都动画精美。

警告:与 UICollectionView 一起使用

我已经用 CollectionViews 进行了尝试:如果您将整个 View 注册为 dragSource (如演示所示),我发现您无法再滚动内容。这是因为拖放 Controller 的手势识别器捕获所有手势事件,并且不会将其传递到底层 UICollectionView

我问过作者这个问题,他是这样说的:

I meant to implement a mechanism to provide a different gesture recognizer for dragging, but I never really needed it in my projects. What I'm currently doing in this situation is to define only a subview of the UICollectionViewCell as the drag source. So if the user scrolls over the collection view it'll still work, but dragging from let's say the cell's icon will start drag and drop. Another possible way would be to set a delegate to the UICollectionView panGestureRecognizer and implement -gestureRecognizer:shouldBeRequiredToFailByGestureRecognizer: to fail on other pan recognizers (though I never used this).

总而言之,非常有用 - 但我仍然需要弄清楚如何使滚动起作用。

关于ios - 将项目从 Collection View 拖放到其他 View IOS 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21497478/

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