我正在创建一个应用程序,用户可以将图像(用户想要的数量)上传到画布上并对它们执行相同的手势 . 我写的功能只设法在最近创建的图像上执行手势而不是其他图像 . 有人可以给我一些关于如何解决这个问题的想法,以便我可以控制我选择的任何一个(通过点击它们)?
var tag = 1
func createImageOnCanvas(){
let ratio = imageOnCanvas.size.width/imageOnCanvas.size.height
if ratio > 1.0 {
imageView = UIImageView(frame: CGRect(x: (scrollView.bounds.size.width-200)/2, y:(scrollView.bounds.size.height-100)/2, width: 200*ratio, height: 200))
}else{
imageView = UIImageView(frame: CGRect(x: (scrollView.bounds.size.width-200)/2, y:(scrollView.bounds.size.height-100)/2, width: 200, height: 200/ratio))
}
imageView.tag = tag
tag += 1
imageView.image = imageOnCanvas
imageView.contentMode = .scaleAspectFill
imageView.clipsToBounds = true
scrollView.addSubview(imageView)
imageViewArray.append(imageView)
for i in imageViewArray{
addImageInteraction(for: i)
}
}
func addImageInteraction(for imageView: UIImageView){
imageView.isUserInteractionEnabled = true
let panRecognizer = UIPanGestureRecognizer(target: self, action: #selector(dragImage))
imageView.addGestureRecognizer(panRecognizer)
let pinchRecognizer = UIPinchGestureRecognizer(target: self, action: #selector(scaleImage))
imageView.addGestureRecognizer(pinchRecognizer)
let rotateRecognizer = UIRotationGestureRecognizer(target: self, action: #selector(rotateImage))
imageView.addGestureRecognizer(rotateRecognizer)
let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(tapImage))
imageView.addGestureRecognizer(tapRecognizer)
print(imageView.tag,"Tap Gesture add")
}
这是应用程序的样子 . 如您所见,创建了三个图像,但只能控制最顶层的图像 .