Ios 如何在Swift中识别UIImage数组中的抽头UIImage
我正在用代码填充UIImage数组,并成功地将它们添加到UIScrollView中。我想确定点击的图像,以便我可以相应地运行操作 我感谢你的指导和时间 以下是我目前掌握的代码:Ios 如何在Swift中识别UIImage数组中的抽头UIImage,ios,swift,uiscrollview,uiimage,uigesturerecognizer,Ios,Swift,Uiscrollview,Uiimage,Uigesturerecognizer,我正在用代码填充UIImage数组,并成功地将它们添加到UIScrollView中。我想确定点击的图像,以便我可以相应地运行操作 我感谢你的指导和时间 以下是我目前掌握的代码: override func viewDidLoad() { super.viewDidLoad() let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.ima
override func viewDidLoad() {
super.viewDidLoad()
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.imageTapped(_:)))
}
func loadImagePicker(){
var contentWidth: CGFloat = 0.0
let imageWidth: CGFloat = 100.0
let imageHeight: CGFloat = 100.0
for x in 0...2 {
let image = UIImage(named: "item\(x).png")
let imageView = UIImageView(image: image)
imageView.isUserInteractionEnabled = true
myData.images1.append(imageView)
var newX: CGFloat = 0.0
newX = 10 + imageWidth * CGFloat(x) + (10 * CGFloat(x))
contentWidth += newX
scrollView.addSubview(imageView)
imageView.frame = CGRect(x: newX, y: scrollView.frame.size.height, width: imageWidth, height: imageHeight)
imageView.contentMode = .scaleToFill
}
print(myData.images1.count)
scrollView.clipsToBounds = false
scrollView.contentSize = CGSize(width: contentWidth, height: scrollView.frame.size.height)
imagePickerView.isHidden = false
}
TapGestureRecognitor
设置为全局或将其移动到loadImagePicker
功能isUserInteractionEnabled
设置为true后,添加手势
通过调用
imageView.addgestureRecognitizer(点击gestureRecognitizer)
imageTapped
函数,该函数接受类型为uitappesturerecognizer
sender as?访问点击的UIImageView?UIImageView
TapGestureRecognitor
设置为全局或将其移动到loadImagePicker
功能isUserInteractionEnabled
设置为true后,添加手势
通过调用
imageView.addgestureRecognitizer(点击gestureRecognitizer)
imageTapped
函数,该函数接受类型为uitappesturerecognizer
sender as?访问点击的UIImageView?UIImageView
将手势识别器添加到imageView,如下所示:
//Instance Variable
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.imageTapped(_:)))
tapGestureRecognizer.numberOfTapsRequired = 1
tapGestureRecognizer.numberOfTouchesRequired = 1
func loadImagePicker(){
// .....
for 0..<2 { //Assuming there are two images
// .....
// .....
imageView.addGestureRecognizer(tapGestureRecognizer)
}
}
func imageTapped(_ sender: UITapGestureRecognizer) {
let tappedImageView = sender.view as! UIImageView
let index = tappedImageView.tag // Do anything with the index by using it in your array
}
//实例变量
让tapGestureRecognizer=UITapGestureRecognizer(目标:self,操作:#选择器(self.imageTapped(:))
tapGestureRecognizer.numberOfTapsRequired=1
tapGestureRecognizer.numberoftouchsrequired=1
func loadImagePicker(){
// .....
对于0..将手势识别器添加到图像视图,如下所示:
//Instance Variable
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.imageTapped(_:)))
tapGestureRecognizer.numberOfTapsRequired = 1
tapGestureRecognizer.numberOfTouchesRequired = 1
func loadImagePicker(){
// .....
for 0..<2 { //Assuming there are two images
// .....
// .....
imageView.addGestureRecognizer(tapGestureRecognizer)
}
}
func imageTapped(_ sender: UITapGestureRecognizer) {
let tappedImageView = sender.view as! UIImageView
let index = tappedImageView.tag // Do anything with the index by using it in your array
}
//实例变量
让tapGestureRecognizer=UITapGestureRecognizer(目标:self,操作:#选择器(self.imageTapped(:))
tapGestureRecognizer.numberOfTapsRequired=1
tapGestureRecognizer.numberoftouchsrequired=1
func loadImagePicker(){
// .....
对于0..Hello Badhan,感谢您的回复。首先,循环上有三个图像,它也计数为0。我已尝试打印索引。因此,我加载了三个图像,您的代码识别最后一个图像上的点击,并将其打印/标记为0。您能帮助我为什么这样做吗?哦,我意识到我的循环没有添加imageView.AddGestureRecoginazer(点击手势识别器)对于所有图像。无法找出原因。只执行一次。这就是为什么它只被标记一次。但是我可以在scrollview中看到图像,所以它们就在那里。好的,现在请尝试将手势初始化代码放入for循环,而不是实例变量。巴丹,这很有效!非常感谢。但是,它仍然打印相同的标记,即0。尽管如此,我还是成功地在不使用标记的情况下获得了我想要的结果。再次感谢!您好Badhan,感谢您的回复。首先,循环中有三个图像,它也计数为0。我已尝试打印索引。因此,我的三个图像加载,您的代码识别单击最后一个图像,并将/标记打印为0。您能帮助我为什么吗是吗?哦,我意识到我的循环没有添加imageView.AddGestureRecognitizer(TapGestureRecognitizer)对于所有图像。无法找出原因。只执行一次。这就是为什么它只被标记一次。但是我可以在scrollview中看到图像,所以它们就在那里。好的,现在请尝试将手势初始化代码放入for循环,而不是实例变量。巴丹,这很有效!非常感谢。但是,它仍然打印相同的标记,即0.尽管如此,我还是成功地在不使用tag的情况下获得了我想要的结果。再次感谢!。