当前位置: 首页 > 面试题库 >

如何使故事板上的UIImageView可单击(快速)

强烨
2023-03-14
问题内容

我是新手(通常是Xcode开发人员),我想知道如何使故事板上的ImageView可点击。我正在尝试做的是使它单击,从而显示另一个视图控制器。


问题答案:

您可以为此添加tapGesture。这是代码:

class ViewController: UIViewController {

@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
    super.viewDidLoad()
    // create tap gesture recognizer
    let tapGesture = UITapGestureRecognizer(target: self, action: "imageTapped:")

    // add it to the image view;
    imageView.addGestureRecognizer(tapGesture)
    // make sure imageView can be interacted with by user
    imageView.userInteractionEnabled = true
}

func imageTapped(gesture: UIGestureRecognizer) {
    // if the tapped view is a UIImageView then set it to imageview
    if let imageView = gesture.view as? UIImageView {
        println("Image Tapped")
        //Here you can initiate your new ViewController

        }
    }
}

斯威夫特3.0

class ViewController: UIViewController {

    @IBOutlet weak var imageView: UIImageView!
    override func viewDidLoad() {
        super.viewDidLoad()
        // create tap gesture recognizer
        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.imageTapped(gesture:)))

        // add it to the image view;
        imageView.addGestureRecognizer(tapGesture)
        // make sure imageView can be interacted with by user
        imageView.isUserInteractionEnabled = true
    }

    func imageTapped(gesture: UIGestureRecognizer) {
        // if the tapped view is a UIImageView then set it to imageview
        if (gesture.view as? UIImageView) != nil {
            print("Image Tapped")
            //Here you can initiate your new ViewController

        }
    }
}

斯威夫特5.0

class ViewController: UIViewController {

    @IBOutlet weak var imageView: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // create tap gesture recognizer
        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.imageTapped(gesture:)))

        // add it to the image view;
        imageView.addGestureRecognizer(tapGesture)
        // make sure imageView can be interacted with by user
        imageView.isUserInteractionEnabled = true
    }

    @objc func imageTapped(gesture: UIGestureRecognizer) {
        // if the tapped view is a UIImageView then set it to imageview
        if (gesture.view as? UIImageView) != nil {
            print("Image Tapped")
            //Here you can initiate your new ViewController

        }
    }
}


 类似资料:
  • 假设我有一个故事板,其中包含作为初始视图控制器。它的根视图控制器是的子类,即。它有,它连接到导航栏的右导航按钮 从那里我想将情节提要用作其他视图的模板,而无需创建其他情节提要。假设这些视图将具有完全相同的界面,但具有类和的根视图控制器,它们是的子类 除了方法外,这两个视图控制器将具有相同的功能和界面 如下所示: 我能做那样的事吗? 我可以只是实例化故事板的,但有根视图控制器子类和? 谢谢。

  • 问题内容: 我有一个id为id的按钮。我将此元素附加了两个jQuery事件 1。 2。 但是每次它给我 问题答案: 您需要使用超时来检查第一次点击后是否还有另一次点击。 这是窍门: 用法:

  • 我在Android上有一个,我希望任何嵌入的URL都可以点击。我使用了类,它将它们变成蓝色并加下划线。然而,我不知道如何让它们真正可以点击。 谢谢!

  • Remove my password from lists so hackers won’t be able to hack me

  • 我最近从故事板转换到XIB。因为我有大量的视图,而且在git存储库上使用XIB更容易。(此外,该应用程序现在将可用于iOS4)。 下面是我以前拥有的代码,但我想知道如果没有故事板,但使用XIBs,我将如何实现同样的功能:

  • 问题内容: 我正在尝试获取所选项目,然后开始一些活动。不幸的是,我发现的大多数解决方案都在Objective-C或不起作用。 方法不打印标签。 有人可以帮我吗? 经过几次尝试,我将代码更改为与我发现的教程不同的代码。而且它也不起作用。现在我认为这是iOS模拟器的问题… 问题答案: 如果您想从单元格中获取值,则无需在 任务如下: 您还必须检查您必须设置的标识符。 希望能帮助到你。