swift - 在多个 ImageView 上使用点击手势识别器

标签 swift imageview uitapgesturerecognizer sender

下面我的 swift 代码在 uiview Controller 上放置了 2 个不同的 ImageView 。当用户点击图像时,我希望特定的 ImageView 改变颜色。我不知道如何将该方法应用于多个 ImageView 。我认为你会使用发送者方法。

import UIKit

class ViewController: UIViewController {
var slider = UISlider()
var image1 = UIImageView()
var image2 = UIImageView()
var with = 80

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    [slider,image1,image2].forEach{
        $0.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview($0)
        $0.backgroundColor = .systemOrange
    }

    slider.frame = CGRect(x: view.center.x-115, y: view.center.y+200, width: CGFloat(with), height: 30)
    image1.frame = CGRect(x: view.center.x-115, y: view.center.y, width: CGFloat(with), height: 30)
    image2.frame = CGRect(x: view.center.x-115, y: view.center.y-200, width: CGFloat(with), height: 30)

    slider.minimumValue = 10
    slider.maximumValue = 150



    image1.isUserInteractionEnabled = true


    let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(imageViewTapped))
    image1.addGestureRecognizer(gestureRecognizer)
    image2.addGestureRecognizer(gestureRecognizer)



}


@objc func imageViewTapped(sender: UITapGestureRecognizer) {
    if let imageView = sender.view as? UIImageView {

        imageView.backgroundColor = .yellow



    }
}
}

最佳答案

我尝试了你的代码:

添加以下两行以启用@matt提到的用户交互:

image1.isUserInteractionEnabled = true
image2.isUserInteractionEnabled = true

并为手势创建两个单独的对象:

let gestureRecognizer1 = UITapGestureRecognizer(target: self, action: #selector(imageViewTapped))
image1.addGestureRecognizer(gestureRecognizer1)

let gestureRecognizer2 = UITapGestureRecognizer(target: self, action: #selector(imageViewTapped))
image2.addGestureRecognizer(gestureRecognizer2)

输出: enter image description here

祝你编码愉快...

关于swift - 在多个 ImageView 上使用点击手势识别器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59349483/

相关文章:

javascript - 仅缩放图像 JQuery 的点击部分

xaml - Xamarin TapGestureRecognizer 有时无法正常工作

ios - 在 ScrollView 中的 UIImage 中检测触摸位置

swift - Core Graphics 不绘制某些线条

swift - 为了测试从 Firestore 提取的 Swift 应用程序,如何模拟 QuerySnapshot?

android - 旋转 textview 及其背景 View

android - Android中如何显示大图

ios - 点击手势仅响应上次查看

ios - Swift:将 UIImage 保存并检索到 CoreData 中

Swift & Parse - 空 PFFile