是否可以将图像从collectionViewCell拖动到UIView?
我正在创建一个游戏,用户可以在下一个VC中选择要玩的项目。我将每个项目表示为图像,用户可以通过将图像拖动到屏幕底部来选择每个项目。 然后图像将重置为其原始位置。
如果我的代码中有UICollectionView函数,在UIViewCollectionView类中选择的图像都正确设置...我需要包含什么才能将图像从上半部分(在CollectionView内)移动到下半部分(在UIView内。)
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let Cell:BackpackCollectionVC = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! BackpackCollectionVC
Cell.backpackImage.image = UIImage(named: self.resultString[indexPath.row]["imageName"]!)!
return Cell
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.items.count
}
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
我可以使用下面的代码在UIView中移动图像。我无法弄清楚如何将其实现到UIViewCollectionView ...
在ViewDidLoad中:
let imageGesture = UIPanGestureRecognizer(target: self, action: #selector(self.imageInUIViewDragged(gestureRecognizer:)))
uiviewImage.isUserInteractionEnabled = true
uiviewImage.addGestureRecognizer(imageGesture)
func imageInUIViewDragged(gestureRecognizer: UIPanGestureRecognizer) {
let translation = gestureRecognizer.translation(in: view)
let uiviewImage = gestureRecognizer.view!
//self.view.bounds.width -
uiview.center = CGPoint(x: 52 + translation.x, y: 66 + translation.y)
if gestureRecognizer.state == UIGestureRecognizerState.ended {
if (uiviewImage.center.x > 100 && uiviewImage.center.x < self.view.bounds.width - 100) && (uiviewImage.center.y > self.view.bounds.height / 2 && uiviewImage.center.y < self.view.bounds.height - 100) { {
print("Item has been selected")
} else {
print("Not in backpack")
}
//self.view.bounds.width -
uiviewImage.center = CGPoint(x: 52, y: 66)
}
}
}
如果这不可能......
我正在考虑使用StackView并为20个项目设置水平滚动视图? 唯一的问题是如果我隐藏用户的某些项目,则会调整宽度以适合StackView。它看起来很糟糕,我不知道如何阻止宽度扩大。
感谢您的帮助。