移动对象,使用多个对象的手势识别器
Move objects around, with gesture recognizer for multiple Objects
我正在尝试制作一个应用程序,您可以在其中使用 Snapchat 和 Instagram 上的贴纸。它完全可以找到一种添加图像的技术,但现在我想要如果你在对象周围滑动对象会改变它的位置(我也想制作缩放/旋转功能)。
我的代码如下所示:
@objc func StickerLaden() {
for i in 0 ..< alleSticker.count {
let imageView = UIImageView(image: alleSticker[i])
imageView.frame = CGRect(x: StickerXScale[i], y:StickerYScale[i], width: StickerScale[i], height: StickerScale[i])
ImageViewsSticker.append(imageView)
ImageView.addSubview(imageView)
imageView.isUserInteractionEnabled = true
let aSelector : Selector = "SlideFunc"
let slideGesture = UISwipeGestureRecognizer(target: self, action: aSelector)
imageView.addGestureRecognizer(slideGesture)
}
}
func SlideFunc(fromPoint:CGPoint, toPoint: CGPoint) {
}
以下是您需要执行的高级步骤:
- 向上面有图像的父视图添加一个
UIPanGestureRecognizer
。
- 实施
UIGestureRecognizerDelegate
方法来跟踪用户触摸和释放屏幕。
- 第一次触摸时,循环遍历所有图像并调用
image.frame.contains(touchPoint)
。将触摸点下的所有图像添加到数组中。
- 遍历触摸图像列表,计算触摸点到图像中心的距离。选择中心最接近触摸点的图像。
- 将所选图像移动到视图堆栈的顶部。 [您现在已经选择了一张图片并使其可见。]
- 接下来,当您收到平移事件时,相应地更改所选图像的框架。
- 一旦用户释放屏幕,重置您可能拥有的任何状态变量,以便您可以在下一次触摸完成时重新开始。
以上将为您提供一个很好的 pan 解决方案。需要整理的东西很多,但不是很难。
正如我在评论中所说,scale 和 rotate 非常棘手。我建议您暂时忘记这一点,先实现应用的其他部分。
我正在尝试制作一个应用程序,您可以在其中使用 Snapchat 和 Instagram 上的贴纸。它完全可以找到一种添加图像的技术,但现在我想要如果你在对象周围滑动对象会改变它的位置(我也想制作缩放/旋转功能)。
我的代码如下所示:
@objc func StickerLaden() {
for i in 0 ..< alleSticker.count {
let imageView = UIImageView(image: alleSticker[i])
imageView.frame = CGRect(x: StickerXScale[i], y:StickerYScale[i], width: StickerScale[i], height: StickerScale[i])
ImageViewsSticker.append(imageView)
ImageView.addSubview(imageView)
imageView.isUserInteractionEnabled = true
let aSelector : Selector = "SlideFunc"
let slideGesture = UISwipeGestureRecognizer(target: self, action: aSelector)
imageView.addGestureRecognizer(slideGesture)
}
}
func SlideFunc(fromPoint:CGPoint, toPoint: CGPoint) {
}
以下是您需要执行的高级步骤:
- 向上面有图像的父视图添加一个
UIPanGestureRecognizer
。 - 实施
UIGestureRecognizerDelegate
方法来跟踪用户触摸和释放屏幕。 - 第一次触摸时,循环遍历所有图像并调用
image.frame.contains(touchPoint)
。将触摸点下的所有图像添加到数组中。 - 遍历触摸图像列表,计算触摸点到图像中心的距离。选择中心最接近触摸点的图像。
- 将所选图像移动到视图堆栈的顶部。 [您现在已经选择了一张图片并使其可见。]
- 接下来,当您收到平移事件时,相应地更改所选图像的框架。
- 一旦用户释放屏幕,重置您可能拥有的任何状态变量,以便您可以在下一次触摸完成时重新开始。
以上将为您提供一个很好的 pan 解决方案。需要整理的东西很多,但不是很难。
正如我在评论中所说,scale 和 rotate 非常棘手。我建议您暂时忘记这一点,先实现应用的其他部分。